martes, 21 de enero de 2014

Proyecto vehiculo robotico


Este proyecto sera un vehiculo robotizado del cual habran dos versiones semi identicas.
Estara equipado con sonsores de temperatura , sensores ultrasonicos de distancia , encoders para obtener datos de distancias recorridas y opcinalmente un modulo GPS.

Estara dirigido por comandos llevados por un transceptor que estara conectado a una placa Arduino Mega o en modo autonomo por un ordenador de placa reducida basado en un microprocesador ARM llamado Raspberry Pi que inclulle una camara de 5 mpx  que sera capaz de reconocer rostros  discriminar colores e hacer que el vehiculo siga objetos de forma totalmente autonoma.

Primeras imagenes del prototipo modeladas en un software de creación de gráficos y animación 3D




















El vehiculo sera propulsado por 6 motores acoplados a las 6 ruedas de una potencia entre 2 a 5 watios cada uno , estos motores estan controlados por puentes en H LMD 18201 fabricados por Texas Instruments

Aqui esta la pcb de los puentes en H que controla 3 ruedas










De la pcb salen 3 terminales de control :

terminal de direccion : con el se puede controlar la direccion del giro del motor
terminal de PWM : con el se controla la potencia enviada a los motores
terminal de freno : con el puesto a nivel alto y el PWM tambien a nivel alto los motores se frenan


Me he topado con un problema para hacer funcionar los transceptores E07-M1101S con el Arduino ya que operan a 3,3v y el Arduino funcina a 5v y esto podria dañar los transceptores si el Arduino a la hora de la comunicacion  envia un 1 logico que dado el echo que se alimenta a 5v sera muy proximo a esta cifra sino igual, tambien habrian problemas si el transceptor se intente comunicar con el arduino ya que su 1 logico son 3,3v y esto podria confundir el Arduino . La primera solucion que vino a la mente era usar MOSFETS  2N7000 para poder comunicar el Arduino con el transceptor y viceversa a continuaccion podeis observar el circuito.





Este metodo resuelve el problema pero tiene inconvenientes para traducir un bit se necesita un MOSFET y 2 resistencias ,  un modulo transceptor dispone de 6 asi que el tamaño del sistema ya tendria un tamaño considerable y dado que se necesitaran muchos mas bits para traducir esto se vuelve inviable, asi que este sistema se usara en casos aislados donde no se necesite traducir muchas salidas, la solucion definitiva vino de la mano de Texas Instruments con el integrado TXB0108PWR  este integrado tiene un tamaño muy reducido y es capaz de traducir 8 bits de forma bidireccional por cada integrado.



     Lote de tres integrados TXB0108PWR en compracion a una moneda

Asi que he diseñado un simple circuito para integrar tres de estos integrado en una unica placa y obtener de esta forma 24 bits.




                       

                                                                Diseño en Eagle



                                                         Diseño en Fotolito




Mas imagenes :


 Transceptores  E07-M1101S



                            


Caja de plastico que servira de base para el robot


                                            Esto sera el alma de la maquina


          Arduino Mega 2560        Proyecto Pinguino      Clon de Arduino Uno







Se intentara repartir todas las funciones que tendra que que desempeñar el robot entre estos tres dispositivos.


GanttProject 



 Hoy he empezado a construir la suspension , concretamente el sistema diferencial .






            Este sistema compensa las diferencias en la suspension en terenos desiguales y evita que el robot se vuelque .

imagen del diferencial del curiosity


   Aqui se puede ver el funcionamiento del sistema





Todavia no she podido utlizar los transceptores E07-M1101S ya que los integrados TXB0108PWR son muy especiales y no funcionan bien para esta aplicaccion asi que los sustituire por los SN74LVC8T245
Estos inegrados carecen de autodeteccion como los que tenian los TXB0108 por eso se necesitara dos  integrados por cada modulo de radio por que solo se pueden poner como entrada o salida pero no las dos ala vez.

imagen de los integrados
                               
Si en el peor de los casos esta solucion tampoco funcionase tendria que usar MOSFETS 2N7000 y si los mosfet tampoco funcionasen usare los sigfuientes modulos de radio.





Estos modulos no son tan buenos ni potentes como los E07-M1101S pero solo ocupan una patilla del arduino tienen un gran margen de tensiones de alimentaccion de 3v hasta 12v , operan en una frecuencia fija de 433.92 Mhz y no se pueden utilizar dos al mismo tiempo ya que se interfieren uno al otro, su velocidad de transmision maxima es de 4kb/s en comparacion con los mas de 600kb/s de los E07-M1101S para usarlos es necesaria la libreria  Virtual Wire .





Debido a la falta de tiempo y los altos costes para finalizar el proyecto , he decidido realuizar otro que pueda terminarse en los plazos de tiempo que quedan.
El proyecto se realizo desde 0 en aproximadamente una semana.

 Este proyecto es parecido al proyecto principal pero mas pequeño con funciones similares

Esta basado en el chasis de un coche de radio control   lo controla un arduino mega que a su vez recibe los datos atravez de radio proporcionados por un arduino UNO conectado a Processing,

arduino uno







PCB que forma parte del robot debajo de la placa se conecta el arduino mega


 


Diagrama de estado



Consumo del robot

Parado 110ma
En marcha a toda potencia 320ma
Parado con el led de 10w encendido a toda potencia 1200ma
En marcha a toda potencia y con ela toda potencia  1550ma
Bateria del robot 3300ma/h
Autonomia teorica 1,49 horas

Video de funcionamiento







   Panel de control en Processing


Archivos de Arduino

Archivos processing



5 comentarios:

  1. Muy interesante. Un proyecto muy ambicioso.

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. Molaría que le pusieras una placa solar...
    Y más adelante un brazo con pinza.
    Muy chulo.

    ResponderEliminar
    Respuestas
    1. alomejor le pongo unas cuantas para que siempre este encendido un arduino y pueda transmitir datos aunque la bateria este gastada y no se pueda mover el robot.

      Eliminar