Tabla de contenido:
- Paso 1: MASTER y SLAVE en el mismo código
- Paso 2: Los módulos BLUETOOTH se comunican mediante lectura y escritura en serie
- Paso 3: controlar la carrera
- Paso 4: el resto del código
- Paso 5: ¿Qué sigue?
Video: Arduino Hot Wheels Speed Track Parte # 2 - Código: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
En la primera parte de este proyecto, construimos el hardware para el prototipo en 2 placas de prueba.
Y en esta parte repasaremos el código, cómo funciona y luego lo probaremos.
Asegúrese de ver el video de arriba para ver la revisión completa del código y la presentación del código de trabajo.
Paso 1: MASTER y SLAVE en el mismo código
El código está en 2 partes, pero dentro del mismo archivo. Utilizo #define y #ifdef para determinar qué código se compilará o ignorará para poder separar cualquier código que sea solo para la placa MASTER y el código que sea solo para la placa SLAVE.
Básicamente, si se encuentra el define MASTER, entonces se compilará cualquier código que se encuentre dentro del bloque de código MASTER y cualquier código fuera de ese bloque se eliminará en tiempo de compilación.
#ifdef MASTER
// El código maestro específico está aquí
#demás
#define ESCLAVO
// El código específico del esclavo está aquí
#terminara si
También estoy usando la misma técnica para #define SLAVE cuando MASTER está compilado, por lo que solo debe preocuparse por definir MASTER o no habilitar la definición de SLAVE.
Paso 2: Los módulos BLUETOOTH se comunican mediante lectura y escritura en serie
En este proyecto, solo la placa SLAVE habla con la placa MASTER. El MASTER nunca responde, solo escucha y luego actúa sobre los datos que ingresan.
Los módulos hablan y escuchan usando la clase serial incorporada en el ecosistema de codificación Arduino.
Los módulos Bluetooth se comunican a 38400 baudios, por lo que ambas rutas de código inicializan sus comunicaciones en serie usando:
Serial.begin (38400);
Y el ESCLAVO usa:
Serial.write (datos aquí);
Para hablar con el MAESTRO, y el MAESTRO usa:
datos = Serial.read ();
Para escuchar el flujo serial y leer su contenido y almacenarlo dentro de una variable.
Paso 3: controlar la carrera
El ESCLAVO le dice al MAESTRO si está en carrera más o en modo listo a través del botón verde conectado a su microcontrolador. En el modo listo, los sensores de infrarrojos no hacen nada y el MASTER mostrará 8 guiones en la pantalla para indicar que está en modo listo.
Cuando el ESCLAVO le dice al MAESTRO que una carrera va a comenzar, el ESCLAVO comienza a sondear los sensores de infrarrojos en su lado (El inicio de la pista de carreras) para que los autos pasen por debajo.
A medida que cada automóvil pasa por debajo de cada sensor de infrarrojos, envía una A (automóvil 1) o B (automóvil 2) al MAESTRO.
Cuando el MASTER recibe una A o B, habilita el temporizador para ese automóvil específico y luego espera a que el automóvil pase por debajo del sensor IR correspondiente en la línea de meta.
La pantalla se actualiza cada 50 ms para mostrar la hora actual de cada automóvil en segundos con 2 lugares decimales.
Una vez que ambos coches han llegado a la línea de meta, el MAESTRO decide qué coche fue el más rápido y muestra ese tiempo en la pantalla para indicar el ganador.
Paso 4: el resto del código
El resto del código es solo un código de utilidad que controla la visualización de datos en la pantalla de 8 dígitos o maneja la lógica de pulsación de botones, etc.
Al final del video en la sección de introducción de este proyecto, muestro un ejemplo del código que se ejecuta en las 2 placas de prueba, ¡así que asegúrese de verificarlo!
Puede obtener el código para este proyecto de mi repositorio de github.
Paso 5: ¿Qué sigue?
Eso es todo por ahora … en la parte 3 veremos cómo mover los componentes de la placa de pruebas y colocarlos en algo más permanente … ¡estad atentos!
¡Espero que estéis disfrutando de este proyecto!
Sígueme en:
www.youtube.com/c/unexpectedmaker
twitter.com/unexpectedmaker
www.facebook.com/unexpectedmaker
www.instagram.com/unexpectedmaker
www.tindie.com/stores/seonr/
Recomendado:
Robot Mecanum Omni Wheels con motores paso a paso GRBL Arduino Shield: 4 pasos
Robot Mecanum Omni Wheels con motores paso a paso GRBL Arduino Shield: Mecanum Robot: un proyecto que quería construir desde que lo vi en el blog de mecatrónica de Dejan: howtomechatronics.com Dejan realmente hizo un buen trabajo cubriendo todos los aspectos del hardware, la impresión 3D , electrónica, código y una aplicación de Android (MIT
Cómo modificar Hot Wheels estándar a Hot Wheels R / C: D: 6 pasos (con imágenes)
Cómo modificar Hot Wheels estándar a R / C Hot Wheels: D: Desde que era un niño, me encantan los Hot Wheels Cars. Me inspiró para diseñar vehículos de fantasía. Esta vez se superaron a sí mismos con Star War Hot Wheels, C-3PO. Sin embargo, quiero algo más que empujar o viajar en una pista, decidí, "L
Star Track: puntero y rastreador de estrellas con Arduino: 11 pasos (con imágenes)
Star Track: puntero y rastreador de estrellas impulsado por Arduino: Star track es un sistema de seguimiento de estrellas inspirado en el montaje GoTo basado en Arduino. Puede apuntar y rastrear cualquier objeto en el cielo (las coordenadas celestes se dan como entrada) con 2 Arduinos, un giroscopio, módulo RTC, dos motores paso a paso de bajo costo y una estructura impresa en 3D
Pista de velocidad de Arduino Hot Wheels - Parte 1 - Prototipo: 4 pasos
Arduino Hot Wheels Speed Track - Parte 1 - Prototipo: ¡No debería sorprender que a mi hijo le gusten los hot wheels y las carreras de sus coches por toda la casa! Una de sus cosas favoritas es correr con todos sus autos (más de 100 ahora) para determinar cuál es el auto más rápido. Ahora mismo lo hace todo a ojo, y
RC Power Wheels para el segundo cumpleaños de mi hijo: 13 pasos (con imágenes)
RC Power Wheels para el segundo cumpleaños de mi hijo: Desde que tenía 10 años soñé con RC Power Wheel. Hace unos meses, un amigo me dio un viejo y destartalado juguete para masticar que apenas funcionaba. Decidí hacer realidad un sueño de la infancia y reformar por completo el