Tabla de contenido:
Video: Control remoto Bluetooth de madera para tren Lego Duplo: 3 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
A mis hijos les encantó este pequeño tren Lego Duplo, especialmente a mi hija menor, que lucha por comunicarse con palabras, así que quería construirle algo que la ayudara a jugar con el tren independientemente de los adultos o los teléfonos / tabletas. Algo que agregaría una dimensión adicional al tren y le daría un valor de juego extra
El set de Lego ya tiene pocas formas de controlar el tren, puedes empujarlo hacia adelante para arrancar y sostenerlo para detenerlo, puedes controlarlo usando etiquetas de colores que van en la vía para que cuando el tren lo pase por encima desencadena diferentes acciones, es decir. avanzar, retroceder, reproducir sonidos enciende las luces. También puede descargar una aplicación para su teléfono o tableta que se puede conectar al tren a través de bluetooth.
Aquí una revisión completa del tren.
Después de buscar en Internet, descubrí que había bastantes personas diferentes que tenían todo el código escrito listo para controlar el tren. El nodo 'Poweredup' escrito por nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) parecía un comienzo perfecto. Fue escrito usando Javascript con el que no estaba parcialmente familiarizado, pero pensé que si podría encontrar un microchip basado en Java, este sería un buen comienzo.
Nuevamente, después de buscar en Internet nuevamente, encontré el sistema espruino, esto es similar al ardiuno pero basado en javascript. El código espriuno se puede cargar en un mircochip MDBT42Q que tenga incrustación de bluetooth. Pensé que si podía cargar el módulo "encendido" estaría a la mitad del camino, sin embargo, este simple no era el caso, ya que el módulo contenido en muchas bibliotecas era demasiado grande para cargarlo en el MDBT42Q, así que parece que tengo que hacerlo. encuentre una solución más simple….
Paso 1: el código
Esprinuo
Para aquellos que no conocen la plataforma Espruino https://www.espruino.com (y yo no) es muy similar a Arduino, hay algunas diferencias principales, una que escribió para javascript en lugar de c, se siente un poco más nuevo así que no hay ejemplos, sin embargo, el soporte a través de los foros es excelente y muy útil.
Javascript conoce el tren
El primer obstáculo fue conectarse al tren a través de bluetooth. Esto se puede hacer usando la clase NRF que se envía con el código espruino.
NRF.connect se puede usar para conectarse al tren; sin embargo, su primera necesidad de encontrar la dirección del tren en sí, puede usar NRF.findDevices para obtener esta información
Una vez hecho esto, debe enviar el valor del tren dos al protocolo de enlace con el tren. Para mi tren, este fue "00001623-1212-efde-1623-785feabcd123" seguido de "00001624-1212-efde-1623-785feabcd123", creo. Esto será el mismo para todos los trenes de vapor, pero las otras versiones, es decir, el juego de carga, puede ser diferente.
Una vez que tenga esto, puede conectar el tren usando una función como la siguiente, ¿puede saber cuándo el tren se ha conectado, ya que parpadeará en los faros azules?
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). Luego (función (g) {
console.log ("Iniciando la conexión2"); gatt = g; return gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); }). then (function (service) {return service.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");}). then (function (feature) {Characteristic_store = feature; return feature.readValue ();}). then (value => {console.log (value);}). then (function () {console.log ("Train Connected"); connected = 1;
Las cosas divertidas
Ahora que está conectado al tren, es hora de todas las cosas divertidas, como moverlo hacia adelante, hacer sonidos y encender y apagar la luz. Es un trabajo simple de enviar al tren un valor de preparación, seguido del comando real, es decir
function play_horn () {
console.log ("mensaje =", Characteristic_store); const prepval = new Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x01, 0x11, 0x51, 0x01, 0x09]); Characteristic_store.writeValue (prepval).then (_ => {Characteristic_store.writeValue (sendvalue);}); }
Puede que tengas que investigar un poco para encontrar otro comando que no sea el que utilicé.
Botones y palancas
El lado físico del control remoto es muy sencillo, cuatro botones (para reproducir sonidos, encender y apagar las luces) y un potenciómetro que se conecta a la palanca para que puedas controlar la velocidad y la dirección del tren.
El botón no necesita resistencia de extracción, en su lugar, puede hacer esto en el código, es decir
pinMode (D15, 'input_pulldown');
Puede conectar el potenciómetro a una de las entradas y luego leer la señal analógica usando el siguiente comando
lectura var = analogRead (D31);
La otra diferencia con el arduino es que esprunio no tiene una configuración y un ciclo. Entonces, en lugar de eso, coloco todos los comandos / disparadores separados en funciones y luego configuro setInterval que se repite cada 100 milisegundos, escucho el botón y luego ejecuto la función requerida cuando se presiona el botón.
if (digitalRead (D15) == 1) {play_horn (); }
Accionar la palanca fue un poco más complicado, ya que quería poder ajustar gradualmente la velocidad, así que primero tuve que enviar el valor analógico para que funcionara.
lectura var = analogRead (D31);
train_direction (lectura * 1024);
Luego, en la función train_direction, dividí el comando en 6 incrementos diferentes según el valor del bote
Todo el camino hacia arriba, le dice al tren que avance a toda velocidad
A mitad de camino, le dice al tren que avance al 50% de velocidad.
Medio, le dice al tren que se detenga
A mitad de camino, le dice al tren que retroceda al 50% de velocidad.
Todo el camino hacia abajo, le dice al tren que vaya a toda velocidad en reversa
es decir
function train_direction (dir_val) {
//console.log("message = ", Characteristic_store); const prepval = new Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x00]); if (dir_val> 300 && dir_val 400 && dir_val 500) {const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x64]); } if (dir_val 200) {const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xe2]); } if (dir_val 100) {const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xce]); } if (dir_val {Characteristic_store.writeValue (sendvalue);}); }
El código completo puede estar abajo para el enlace a continuación
Paso 2: el cableado
El cableado fue la parte más simple.
Solo consistía en 4 pulsadores conectados a D15, D16, D17 y D18 sin ninguna resistencia de extracción, ya que esto se hizo en el código y 1 resistencia de 10k conectada a D31
Todavía estoy trabajando en la fuente de alimentación, pero actualmente toda la energía proviene de una ruptura micro usb y esto podría conectarse directamente a un banco de energía o un puerto USB.
Paso 3: la construcción
El control remoto es principalmente de hojas de madera contrachapada A4 de 3 mm, 6 mm o 9 mm, se cortaron en mi máquina CNC, sin embargo, utilizando la plantilla proporcionada, lo haría, aunque no sería imposible hacerlo a mano.
Espero que la plantilla y las fotos le brinden todo lo que necesita para rehacer, sin embargo, hay algunas notas que podrían ayudar
El soporte del botón pulsador de 3 mm es para pegar el botón pulsador, el espacio colocará el botón en el lugar correcto, pero le permitimos acceder a la pata en la parte posterior para que pueda soldar al microchip, en el reverso también puede montar el MDBT42Q usando un poco de pegamento. En el frente, deberá agregar espuma para que los botones reboten un poco cuando los presione hacia abajo, también puede usar resortes
Los botones de 9 mm necesitarán pintura, grabado o algo más del logotipo para mostrar qué botón hace qué
La palanca / mango deberá colocarse en capas, utilicé una clavija de 6 mm para ayudar a alinearlos en todas las posiciones correctas
Recomendado:
El control remoto de TV se convierte en un control remoto de RF -- NRF24L01 + Tutorial: 5 pasos (con imágenes)
El control remoto de TV se convierte en un control remoto de RF || Tutorial de NRF24L01 +: En este proyecto te mostraré cómo utilicé el popular nRF24L01 + RF IC para ajustar el brillo de una tira de LED de forma inalámbrica a través de tres botones inútiles de un control remoto de TV. ¡Empecemos
Cómo usar unas pocas piezas de madera para ensamblar en un brazo robótico de madera lindo y poderoso: 10 pasos
Cómo usar unas pocas piezas de madera para ensamblar en un lindo y poderoso brazo robótico de madera: El nombre del brazo robótico es WoodenArm. ¡Se ve muy lindo! Si desea obtener más detalles sobre WoodenArm, consulte www.lewansoul.com. Ahora podemos hacer una introducción sobre WoodenArm, ¡sigamos adelante
Convierta su control remoto IR en control remoto RF: 9 pasos (con imágenes)
Convierta su control remoto IR en control remoto RF: en el Instructable de hoy, le mostraré cómo puede usar un módulo RF genérico sin un microcontrolador, lo que eventualmente nos llevará a construir un proyecto en el que puede convertir un control remoto IR de cualquier dispositivo en un RF. Remoto. La principal ventaja de convertir un
Controle sus electrodomésticos con su control remoto de TV (control remoto por infrarrojos) con pantalla de temperatura y humedad: 9 pasos
Controle sus electrodomésticos con su control remoto de TV (control remoto por infrarrojos) con pantalla de temperatura y humedad: hola, soy Abhay y es mi primer blog sobre Instructables y hoy le mostraré cómo controlar sus electrodomésticos con el control remoto de su televisor construyendo esto. proyecto simple. gracias al laboratorio atl por el apoyo y el suministro de material
Liberación del cable del control remoto Olympus Evolt E510 (versión 2 con enfoque automático en el control remoto): 6 pasos (con imágenes)
Lanzamiento del cable del control remoto Olympus Evolt E510 (versión 2 con enfoque automático en el control remoto): Ayer construí un control remoto simple de un botón para mi Olympus E510. La mayoría de las cámaras tienen un botón disparador (el que presiona para tomar una foto) que tiene dos modos. Si se presiona suavemente el botón, la cámara se enfocará automáticamente y medirá la luz