Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Buenas a todos, este es mi primer posteo y es para presentarme y para hacer una consulta a todos los usuarios interesados.
Hace tiempo me viene rondando por la cabeza la idea de hacer un robot que pueda esquivar obstaculos, pero con la capacidad de generar un mapa en memoria.
El otro dia desarme un ordenador antiguo y encontre que el Bios era una memoria de 256Kb (2048kbit) con la ventaja de que la tensióm de programación es de 5v y se me ocurrio poder usarla para guardar el mapa para luego usar Aplus para elegir el camino mas corto a un destino.
Hasta aqui todo teoria y nada en practica.
Mi pregunta es la siguiente, ¿alguien en este foro ha hecho algo similar? ¿alguien tiene alguna sugerencia? ¿a alguien le interesa?
Desde ya gracias.
joviwap, Si, claro PC seria lo mas facil, pero yo pensaba en algo (aclaro que estamos hablando en el aire sin nada concreto) solo con pic.
Unos encoders en las ruedas para saber cuanto recorre, y en memoria saber si ese espacio esta ocupado o no, claro si uno levanta el robot lo mueve ya las cosas quedan desfazadas, o sea un pulsador que active el reconocimiento y a partir de ahi va leyendo el entorno y sabe en que lugar se encuentra relativo al punto de partida.
Un A plus pero ejecutado por un PIC, el aplus lo use en PC y como la custion es saber si cada punto del mapa esta explorado, ocupado o libre lo unico de hardware mas critico es la memoria, aparte de los encoders y sensores claro.
Bastian, Gracias por la respuesta
...Hace tiempo me viene rondando por la cabeza la idea de hacer un robot que pueda esquivar obstaculos, pero con la capacidad de generar un mapa en memoria.
Aun recuerdo hace tiempo (mucho tiempo) que hice un programita para dibujar mi habitación marcando los obstáculos.... en un ZX Spectrum... 😉
Si las dimensiones maximas del area a inspeccionar es conocida todo depende del nivel de detalle que quieras, divides las dimensiones maximas en una cuadricula y procedes a rellenar las celdas 0 = libre, 1 = obstáculo, bien administrado para un escenario tipo laberinto convencional o una habitación con la propia memoria del micro te basta.
Si las dimensiones maximas no son conocidas.... hasta la memoria mas grande que puedas conseguir se te quedará pequeña....
Si, yo pensaba marcar las celdas con "sin identificar", "libre", "obstaculo" y cada celda tiene una celda madre que es de donde viene.
Si en el proceso de busqueda se encuentra una celda(A) que esta mas cerca del destino (y se puede pasar por ella) que tambien llega a esa celda(B) la celda (B) cambia de madre por (A) y asi se busca el camino mas corto evitando obstaculos (el aplus funciona asi)
yo pensaba hacer una grilla de x por y celdas y que partiera del centro... si son 100 x 100 celdas son 10000 celdas y para guardar la celda madre y todo eso nesecito al menos 3 bytes por celda o sea 29,3Kb
Celda madre se usa unicamente cuando se esta buscando un camino, lo que tambien se puede agregar si se quiere complicar es posibilidad de que la celda este ocupada, o sea cuanto mas veces se pase por una celda y este ocupada mas posibilidad hay de que la proxima vez este ocupada...
saludos
PD:Bastian, si creo que por el precio y la cantidad de pines mejor una memoria I2C toda la vida...
MarkKnopfler, necesitas solo dos bits por celda (00 libre, 11 obstáculo, 01 o 10 sin identificar), 10000 celdas serían 2,45kb.
Si quieres guardar la info de la celda madre se puede hacer en los 6 bits que te quedan libres en cada byte. (9,77kb)
S2
Ranganok Schahzaman
En 6 bits no puedo guardar celda madre, necesito al menos 14 bits.
El valor de celda madre seria desde 0 a 9999 (10011100001111 en binario) se podria reducir a 2 bytes minimos, eso si usamos una grilla de 100 x 100 ( que a 20x 20 cm por celda harian un terreno de 20 x 20 metros )
aunque tambien podria guardar celda madre en 3 bits si guardara la posicion de la celda madre con respecto a la actual 000= izquierda arriba 100= derecha abajo... ¿ no crees?
saludos