Hola,
Soy nuevo en Arduino y quiero empezar un proyecto que me permita ir aprendiendo. Necesitaría unos pasos o comentarios mínimos, incluyendo si puede hacerse o no y qué me aconsejais leer o por donde empezar.
El proyecto que tengo en mente es controlar con un arduino un robot de ping pong que tira bolas.
El robot tiene un control muy sencillo con 2 controles (potenciometros o reguladores) que te permiten cambiar como sale la bola (más/menos rápido).
Este control o circuito se une al robot por un cable USB que le sirve de alimentación y para recibir las ordenes.
Bien, tengo en mente dos ideas:
Conectar el arduino con ese circuito y controlar los reguladores, simulando una acción manual y pudiéndolo controlar finalmente desde un movil/PC o script para subir, bajar, etc...
Esto no sé si puede hacerse o si es muy complicado. No sé cómo empezar y si el Arduino es capaz de leer valores de ese circuito externo y sobretodo modificarlo.
Como el robot es alimentado y controlado por USB, creo que sería posible conectar un arduino al usb de salida del robot y escuchar lo que hace y entender qué se manda desde dicho control. Luego reemplazar ese controlador por uno integrado en el arduino y reproducir lo que antes ha escuchado de una manera controlable. Esto pienso que puede ser más complicado.
Os agradecería si me indicáis si puede hacerse y algún proyecto similar que me permita aprender e ir adaptándolo.
Lo primero con lo que disiento y es porque tal vez desconozcas los límites del USB es que un USB 2.0puede alimentar hasta 500mA y hay muchos servos (supongo que usas alguno en tu robot) que superan o estan muy cerca de este valor.
Alimenta a tu robot con fuente externa y tu arduino de control via USB por este camino. Pero no ambos.
No es posible eso que sugieres, que un arduino este conectado al usb. Ademas se requiere que el controlador del Robot sea HOST o sea USB maestro y pocos tienes esa capacidad. El DUE por ejemplo.
Intenta dar mas datos del robot que tienes si es que lo tienes.
Moderador.
Aun no me decido en que sección va este tema.
Lo he movido a Software pero tal vez corresponda a hardware
El robot que ya tengo es el HP-07. En google puedes ver más si buscas por HP-07 table tennis robot.
Instrucciones aqui:
Si la opción de escanear o hacer un sniff del puerto USB de la máquina para decodificarlo y luego mandarlo a voluntad desde el Arduino no es buena idea o muy complejo/imposible, me gustaría saber qué piensas de la otra idea:
Conectar el arduino a los reguladores del mando del robot y modificar su señal para simular un aumento/disminución manual. No sé si esto es posible o como se podría hacer. Es decir "hackear" el controlador de la máquina para hacer girar los reguladores a voluntad desde el arduino.
Hola,
Dándole más vueltas he encontrado este tutorial que hace algo similar a lo que estoy buscando:
El tutorial es más sencillo porque te enseña a controlar botones. En mi caso sería más complicado pero creo que se podría hacer parecido con los potenciometros.
He abierto la máquina y este es el circuito a hackear:
Lo mismo conocéis de algún proyecto que permita controlar potenciometros (o reguladores o lo que sea) y juntando todo me sirva para tener suficiente para emprender este proyecto y aprender lo que haga falta, que ando muy mal de electrónica.
Una vez lo controlase desde el arduino mi idea sería hacer rutinas para manejar con Alexa o via app de telefono. La parte de software y programación no es problema (me dedico a ello).
No te he respondido adecuadamente a tus consultas asi voy de nuevo.
Tu robot recibe comandos via USB además de su energía desde un programa que sabe qué hacer. No es novedad!!.
Enviar comandos requiere conocerlos previamente, asi que la pregunta simple es si hay alguna documentación que los describa? Aunque por tu 2do punto supongo que no.
Ahora todo lo que involucre PC/movil/Tablet es tema de otro foro.
Para hacer cualquier cosa que involucre ingeniería inversa es decir, leer qué comandos hacen qué cosas, se requiere de conocimientos que creo en este momento no tienes y no te subestimo al decirlo, pero tal vez sea posible con paciencia y perserverancia.
Además, debes usar ciertos Arduinos que tienen la capacidad de funcionar como HOST USB que no son todos.
Puedes hacerlo con un UNO y un SHIELD HOST USB 2.0, con un Arduino DUE, con un Leonardo (si no me equivoco) y algun otro.
Resumiendo. Seria mas fácil empezar por algo manual y luego hacer via USB un control mas inteligente si crees que vale la pena el desafío y no pierdes el interés como pasa cuando ya se tiene algo que funciona.
En la opción manual que luego describes hay cosas simples y otras no tanto.
Emular un pulsador es relativamente simple. Sea con RELEs que es una alternativa que no me parece o con transistores o integrados que simulen el cierre que se requiere para poner en contacto la acción digital correspondiente.
Un pulsador basicamente establece un estado lógico reconocido por cierto circuito en tu caso, el del robot. Asi que eso lo puedes simular con transitores. Luego veremos de qué tipo.
El potenciómetro, lo podemos reemplazar po uno digital pero al hacerlo no podemos mantener los dos asi que habra que poner una especie de bypass manual/automatico que desconecte el cursor existente y conecte el de tu potenciómetro de reemplazo.
En este caso puedes usar un potenciómetro digital del mismo valor o levemente mayor. Funcionará perfectamente y tendras el mismo comportamiento.
Solo hay que agregar una especie de rele que conecte uno u otro (manual/automático).
El por qué de esto se debe a que dos resistencias en paralelo del mismo valor terminan actuando como una de mitad del valor. Si además son dos potenciómetro y uno deja el cursor cerca de 0 con una Resistencia baja, no importa que hagas con el potenciometro digital, no habra cambios en la acción que esperas cambiar.
Gracias nuevamente, voy haciéndome una idea de cómo afrontar el proyecto y descarto lo del sniffer e ingeniería inversa del USB.
Respecto a reemplazar los potenciómetros, me da un poco de miedo porque va a implicar desoldar y posiblemente romper la pieza original sino lo hago bien. Además tampoco tengo claro lo de los relés y la compatibilidad del potenciometro digital.
Tras pasar la tarde buscando, he pensado otra alternativa que puede ser interesante y más sencilla técnicamente. Usar servos que son fácilmente controlables por arduino y no tienen misterio. Estos servos los podría unir con algún engranaje o pieza a los potenciometros y así moverlos como si de una mano se tratase.
La duda que me quedaría es saber si hay servos que tengan fuerza para mover un potenciometro de una manera precisa (están un poco durillos). Aparte de poder encontrar algo que me permita unirlos y que al girar el servo gire el potenciometro.
Si tienes ideas de servos que tengan cierta fuerza y de engranajes que me permitan unir el servo al potenciometro te lo agradecería. El potenciometro tiene una punta que un destornillador puede hacerlo girar, si el servo acabase con una punta de destornillador plano sería el match perfecto y solo me quedaría hacer una estructura para fijar ambas partes.
Este método no es tan sofisticado como el leer el USB o hackear el potenciómetro pero parece más accesible para los que no tenemos mucha idea.
Si, hay servos BBB (buenos baratos y bonitos) que podrán con la tarea de mover un potenciómetro y no me parece mala idea. Luego te haré un comentario.
La pregunta siempre es como adaptar algo a un potenciómetro. Acá vas a encontrar muchas ideas.
podrías usar un trozo de manguera plástica de diametro interior algo menor que el diametro del vástago del potenciómetro.
Espero que la superposicion de círculos rojos te permita entender lo que quiero decir.
Eso rojo sería una manguera plastica que tendras que de algún modo unir al servo.
Resulta mas fácil si en el servo puedes poner algo de diametro similar al vástago del potenciometro y luego unir ambos con una cupla de plastico transparente como te he descripto.
tal vez si logras colocar una rueda dentada (engranaje) puedas transmitir el movimiento del servo al potenciómetro.
COmentario respecto de potenciómetros digitales.
Los potencíometros que se ven en la placa deben tener en la base circular una denominación. Dicha denominación los caracteríza con valor en ohmios 5k 10k 100k y su calidad y precisión.
Lucen muy bien soldados pero es lo que puedo apreciar de la foto que tomaste.
Tal vez una con mayor zoom a un solo potenciómetro permitiría dar algun mejor consejo.
Comparto que puede ser desafiante cortar la pista, mas que estas solo sin ayuda para hacerlo con el temor de quedarte sin nada.
Asi que no diré mas al respecto.