En la primera experiencia de robótica robusta y nuestros controles remotos con pantalla LCD, donde recibimos el Código enviado a la pantalla, me gustaría mostrar más posibilidades en esta secuencia de controles remotos auto - construidos con nuestros microcontroladores y componentes electrónicos.El transceptor HC - 12 de 433 MHz se reutiliza.
En la consideración inicial de la secuencia anterior, hemos considerado que también necesitamos conectar una palanca analógica, y luego calcular el Código basado en los valores de los ejes X e y.Los valores están en el Centro de una entrada analógica de 10 bits entre 0 y 1023, aproximadamente 511, respectivamente.Para la dirección y (más tarde hacia adelante y hacia atrás), dividimos este valor por 100, y obtenemos 11 etapas de conducción de 0 a 10 que se detienen a 5.En principio, el eje X también proporciona cinco pasos en cada dirección excepto en la posición media en 5.La forma en que convertimos el Código en instrucciones de conducción es parte de un bosquejo de un robot.
Hardware necesario:
1 |
Tablero de Microcontrolador con atmega328p, atmega16u2, compatible con arduino uno R3 |
|
O ¡Nano v3.0 con atmega328 ch340!100% compatible con Nano V3 O ¡Nano v3.0 con Chip ft232rl y atmega328!100% compatible con arduino Nano V3 |
2 |
Módulo transmisor / receptor de 433 MHz HC - 12 (desafortunadamente ya no en rango) |
1 |
|
|
|
|
Placa de ensayo, cable de salto, pequeño material |
Agger. |
Casos en impresoras 3D |
En el primer paso, usando el módulo HC - 12 del blog anterior, reemplazaremos la pantalla de teclado LCD con una palanca.Dependiendo del Microcontrolador que utilice, puede elegir entre arduino uno y el módulo joystick SHIELD y joystick compatible con MCS, que todos los microcontroladores deben considerar.Dos entradas analógicas son apropiadas.
Todos los escudos de joystick para microcontroladores compatibles con uno están diseñados cuidadosamente, con muchos botones, joysticks y muchas posibilidades de conexión. En particular, las conexiones normales también están disponibles.En la esquina superior izquierda de la imagen, puede ver el enchufe del transceptor nrf24 que usaremos la próxima vez.Sin embargo, en primer lugar, utilizamos conexiones 3v3, gnd, D13 y D12 para el transmisor de 433 MHz HC - 12.
Figura 1: blindaje de joystick para microcontroladores compatibles con uno y pin
Nota: la etiqueta indica que también puede conectar el monitor Nokia 5110 directamente aquí.Aquí debe comprobar la ocupación exacta del pin.No puedo enchufar el monitor directamente, pero tengo que enchufarlo con un cable de salto.
Pero queremos conectar el módulo HC - 12 aquí.Si necesita una amplia gama, el HC - 12 debe proporcionar un voltaje de funcionamiento de 5v, pero cerca del control remoto del robot, 3.3v es suficiente, por lo que sólo tiene que insertar y personalizar el Código anterior, ya que cambia la ocupación de pin del software serie.Eso está bien.
Software Serial myserial (12, 13); / / RX, TX
Cuando se utiliza un joystick, la parte que calcula el Código de control remoto es mucho más estrecha que cuando se utiliza una solución de teclado.A juzgar por la ocupación del pin blindado:
Tecla a = número D2
Botón b = número D3
Clave C = número D4
Clave d = número D5
Clave e = número D6
Botón f = número D7
Tecla joystick (joystick desde arriba) = dígito D8
Joystick x Axis = Analog A0
Joystick y Axis = Analog A1
En primer lugar, sólo tenemos que simular las entradas A0 y A1.
Quisiera referirme a los factores invariantes que he añadido.Hay un deslizador en la cubierta de la palanca, y como se muestra en el lado izquierdo de la siguiente figura, puede cambiar el voltaje de la palanca entre 3, 3v y 5v.Para 3,3 V (como usé), el coeficiente es igual a 1,5.Para 5v, el coeficiente es igual a 1.
Si alguien utiliza el boceto con otro mcu con un convertidor analógico - digital de 12 bits, establezca un coeficiente = 0,25.
Figura 2: Microcontrolador con pantalla de joystick y transceptor HC - 12
Este es un Diagram a esquemático del control remoto:
/*
Joystick como controlador de motor, stop = 505
Cinco pasos hacia adelante / hacia atrás, cinco pasos hacia la derecha / izquierda
*/
« 35; incluye < software.serial.h >
Documento de conexión del transceptor / HC - 12
Software Serial myserial (12, 13); / / RX, TX
Int x = 5; / / X = izquierda / derecha
Int y = 5; / / eje y = hacia adelante / hacia atrás
Int joybutton = 8; / / joystick Button
Factor de flotación = 1,5; / / para el ajuste a diferentes tensiones o ADC
Configuración no válida ()
Pinmode (botón, entrada)
Número de serie.(115.200);
Mi familia.(9600);
}
Código de envío no válido ()
Mi familia.(100 * y + X); / / código del motor de envío
Retardo de tiempo (100); / / menor retardo de tiempo para la próxima tecla
}
Bucle no válido ()
Float A0 = coeficiente * lectura analógica (0);
Coma flotante A1 = coeficiente * lectura analógica (1);
Botón bool = lectura digital (botón);
Número de serie.("eje X:")
Número de serie.(A0);
Número de serie.("eje y:")
Número de serie.(A1);
Número de serie.("Pulse el botón");
Número de serie.(botón);
X = entero (A1 / 100);
Y = INT (A0 / 100);
Número de serie.("code =");
Número de serie.(100 * y + X);
Sendcode ();
}
¿Un pequeño Consejo en el Medio: si el robot no responde a las señales, los problemas a menudo surgen. Es un control remoto (con un transmisor) o un receptor?También podemos comprobar fácilmente el control remoto con el módulo HC - 12 en el PC.
Tengo otro avance del tipo de adaptador serie USB cp2102.Cortocircuitar VCC, gnd y TX / RX a través de cruces, iniciar una nueva instancia de IDE de arduino, seleccionar puerto com y abrir el monitor serie con 9600 estructuras.Si hay Código 505.Muestra valores entre 0 y 1010, al menos el control remoto está bien.
Figura 3: adaptador serie HC - 12 a USB
En principio, el mismo control remoto se puede realizar a través del módulo joystick.Los dos ejes requieren dos entradas analógicas, y los botones joystick requieren entradas digitales en el Microcontrolador.Los microcontroladores de la serie arduino son adecuados para todos los mcu compatibles, esp32, as í como para Raspberry pis con convertidores analógicos A / D y placas con esp8266 (con sólo entradas analógicas del hogar).Esta vez voy a elegir Nano, que requiere menos tensión de alimentación.
Figura 4: módulo joystick con barra de contacto
Mi circuito:
Figura 5: Nano con transceptor HC - 12 y módulo joystick en el panel de instrumentos (panel de prueba auxiliar)
Diagrama esquemático de la palanca de control remoto de nanómetros hc12
/*
Joystick como controlador de motor, stop = 505
Cinco pasos hacia adelante / hacia atrás, cinco pasos hacia la derecha / izquierda
*
*/
« 35; incluye < software.serial.h >
Documento de conexión del transceptor / HC - 12
Software Serial myserial (2, 3); / / RX, TX
Int x = 5; / / X = izquierda / derecha
Int y = 5; / / eje y = hacia adelante / hacia atrás
Código interno = 505;
Int joybutton = 4; / / joystick Button
Factor de flotación = 1,0; / / para el ajuste a diferentes tensiones o ADC
Configuración no válida ()
Pinmode (botón, entrada)
Número de serie.(115.200);
Mi familia.(9600);
} / / end or setting
Código de envío no válido ()
Mi familia.(100 * y + X); / / código del motor de envío
Retardo de tiempo (100); / / menor retardo de tiempo para la próxima tecla
Código final
Bucle no válido ()
Coma flotante A6 = coeficiente * lectura analógica (6);
Coma flotante A7 = coeficiente * lectura analógica (7);
Botón bool = lectura digital (botón);
Número de serie.("eje X:")
Número de serie.(A6);
Número de serie.("eje y:")
Número de serie.(A7);
Número de serie.("Pulse el botón");
Número de serie.(botón);
X = INT (A6 / 100);
Y = INT (A7 / 100);
Código = 100 * y + X;
Número de serie.("code =");
Número de serie.(Código);
Sendcode ();
} / / end or Loop
Por último, me gustaría mostrarles cómo su robot también puede conducir Nano, HC - 12 y un motor "desnudo" IC l293d.
Fallé mientras fritzing intentaba crear el interruptor.Esto es tan desconcertante como la imagen del edificio terminado.Por eso elegí una tabla con certificado de conexión.Si hace cambios aquí, debe personalizar el boceto como siempre.
Figura 6: accionamiento fijo del motor ICS l293d
Anexo 1 |
1 |
Nanoaguja 7 |
Nano 5v |
16 |
V |
Introducción 1 |
2 |
Nanoaguja 5 |
Nanoaguja 10 |
15 |
Introducción 4 |
Producto 1 |
3 |
Motor izquierdo |
Motor derecho |
14 |
Producto 4 |
Ingreso nacional bruto |
4 |
|
|
13 |
Ingreso nacional bruto |
Ingreso nacional bruto |
5 |
Batería |
Nano gnd |
12 |
Ingreso nacional bruto |
Producto 2 |
6 |
Motor izquierdo |
Motor derecho |
11 |
Producto 3 |
Introducción 2 |
7 |
Nanoaguja 6 |
Nanoaguja 9 |
10 |
Introducción 3 |
V |
8 |
Batería |
Nanoaguja 8 |
9 |
Anexo 2 |
Cuadro 1: interfaz del conductor del motor l293d
Figura 7: fijación del transceptor HC - 12 de 433 MHz
HC - 12 |
Nana |
Set |
No conectado |
Texas |
Recepción en serie del software Nano pin 12 |
Rxd |
Transmisión serial del software Nano pin 11 |
Ingreso nacional bruto |
Nano gnd |
VCC |
Nano 3, 3v o 5v (rango más amplio) |
Cuadro 2: conexiones del transceptor HC - 12 de 433 MHz
Una vez que la programación está completa y el USB está desconectado, el Nano también se puede conectar a la Potencia del motor a través de Vin, como se muestra a continuación.
Figura 8: robot de dos motores con Nano, l293d y HC - 12
El cableado muestra claramente lo agradable que es utilizar el blindaje del conductor del motor; la mayoría de los contactos se logran insertando un Microcontrolador.
La próxima vez reemplazaré el módulo HC - 12 con el módulo nrf24l01, que desafortunadamente ya no está en este rango.Estos componentes también pueden utilizarse como transmisores y receptores.Por lo tanto, el concepto de transceptor es una combinación de transmisor y receptor.