Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Coche de radiocontrol con Wi-Fi - Qi habilitado

Componentes y suministros

Kit de prototipo de transmisor IDT Qi 5W
× 1
Kit de prototipo de receptor IDT Qi 5W
× 1
Arduino MKR1000
× 1
• Chasis de coche robot 2WD para Arduino
× 1
L293DNE
× 1
CN6009 - Módulo convertidor de potencia reforzado
× 1
Batería Li-Po de 3,7 V
× 1
1N4007 - Diodo nominal de alta tensión y alta corriente
× 8
LED (genérico)
× 1
Resistencia 221 ohm
× 1
Corbatas
× 5
Breadboard (genérico)
(Opcional)
× 1

Herramientas y máquinas necesarias

Soldador (genérico)
Pistola de pegamento caliente (genérica)
Destornillador
Voltímetro

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

¿Qué construirás en este proyecto?

Este es un proyecto que le mostrará paso a paso cómo crear un coche RC controlado por Wi-Fi que se recargará automáticamente de forma inalámbrica mientras está estacionado.

¿Cómo funciona?

El cerebro del proyecto es el Arduino MKR1000 y está conectado a través de Wi-Fi con su dispositivo móvil. La placa Arduino funciona con una batería Li-Po de 3,7 V. Para el control del motor se utiliza un controlador de motor L293DNE. Sin embargo, necesita al menos 4.5V para funcionar. Incrementaremos el voltaje de 3.7V a 5V con un módulo convertidor de potencia Step-up boost (convierte el voltaje bajo en más alto) y de esta manera el controlador del motor se alimentará con 5V.

Para cargar la batería, la placa Arduino MKR1000 cuenta con un sistema de carga automática para baterías Li-Po. Cuando se conecta una fuente externa (5 VCC) de energía, la batería que está conectada a la placa se está cargando. Entonces, el IDT P9025AC-R-EVK:Qi 5W El receptor se conectará a la placa Arduino como fuente externa (5 V CC). Cuando el coche aparca sobre la estación de carga (que es el IDT P9038-R-EVK - Qi 5W ) Transmisor), la batería se cargará.

El sistema de control presenta dos modos de velocidad:Rápido y Lento.

¿Cómo construirlo?

Pieza de hardware

Suelde los cables en los polos del motor y en la placa del receptor IDT (clavija OUT con cable rojo y clavija GND con cable negro). Para este paso, necesitará un soldador y 6 cables.

Realización del circuito electrónico. Puede utilizar una placa de pruebas para crear su circuito o, si no, puede soldar todas las conexiones.

PRECAUCIÓN:Utilice una batería Li-Po de 3,7 V con al menos 700 mAh de capacidad. De lo contrario, la batería podría sobrecalentarse y explotar.

Ajuste del CN6009. Módulo convertidor de potencia elevador a 5V. Para ajustar el valor de salida de CN6009, utilice un destornillador. Asegúrese de verificar el voltaje de salida (conectando un voltímetro a los pines OUT + y OUT-).

Conexión del receptor Qi 5W de potencia inalámbrica IDT. Tome un trozo de plástico (por ejemplo, una tarjeta de plástico) para hacer una base para el receptor de energía inalámbrico en la parte inferior del automóvil. Luego pegue la pieza de plástico y el receptor a la parte inferior del automóvil con silicona. Finalmente, conecte el cable rojo del Receptor IDT al pin VIN del arduino y el cable negro al pin GND.

Establecimiento del vehículo. Sujete con ataduras la batería y el tablero al vehículo.

Parte del software:conexión Wi-Fi

Para esta parte, simplemente copie el código. En el archivo de código, ingrese el SSID y la contraseña de su red (líneas 12, 13 en el archivo de código). Necesita seguir las instrucciones de comentarios. El código está configurado actualmente para funcionar con redes WPA / WPA2. Si desea conectarse a un WEP o una red abierta siga las instrucciones en los comentarios del código (líneas 34-37).

¿Cómo se usa?

Paso 1:Conexión al Arduino MKR1000

Controlar el vehículo requiere una conexión Wi-Fi. Puede lograrlo de dos maneras. El primero es habilitar el punto de acceso Wi-Fi en su dispositivo móvil y conectar la placa al punto de acceso. El segundo es conectar su dispositivo móvil y la placa Arduino al mismo enrutador Wi-Fi. Asegúrese de completar la configuración de SSID y contraseña de su enrutador en el archivo de código que se cargará en la placa Arduino.

Nota:Es mejor utilizar el primer método (punto de acceso Wi-Fi) porque de esta manera puede controlar su vehículo sin la necesidad de un enrutador.

Paso 2:Obtener la dirección IP del Arduino MKR1000

Si la placa Arduino está conectada al punto de acceso de su dispositivo móvil, vaya a la configuración del punto de acceso Wi-Fi y allí verá la dirección IP de su placa (por ejemplo, 192.168.1.1).

Si la placa Arduino está conectada a una ruta Wi-Fi, entonces debe verificarlo desde la configuración del enrutador.

El LED del automóvil indica una conexión exitosa a la red especificada y la activación del servidor.

Paso 3:Acceder al servidor web del Arduino MKR1000

Vaya a su navegador y en el cuadro de URL escriba la dirección IP de su Arduino.

Paso 4:Conexión de la base de carga

Conecte el transmisor IDT P9038-R-EVK - Qi de 5 W a un enchufe de pared con un adaptador de 5 V CC.

Paso 5:¡Diviértete!

¡¡Tiempo de carga !!

Prueba de manejo:

Archivos Gerber de PCBWeb

Código

  • Arduino_IDT_Wi-Fi_Car.ino
Arduino_IDT_Wi-Fi_Car.ino Arduino
Reemplace el ejemplo y la contraseña en las líneas 12-13 con su ssid y contraseña respectivamente.
 #include  #include  const int motor1Control =2; // Derecha motorconst int motor2Control =3; // Izquierda motorconst int motor1Input1 =4; const int motor1Input2 =5; const int motor2Input1 =8; const int motor2Input2 =9; const int wifiLed =10; // Para indicar una conexión Wi-Fi correctachar ssid [] ="ejemplo"; // Complete el SSID de su red (nombre) char pass [] ="contraseña"; // Complete su contraseña de redint keyIndex =0; // Ingrese su clave de red Número de índice (Opcional - necesario solo para WEP) int status =WL_IDLE_STATUS; String readString; WiFiServer server (80); // Defina el puerto del serverString speedMode ="fast"; void setup () {pinMode (motor1Control, OUTPUT); pinMode (motor2Control, SALIDA); pinMode (motor1Input1, OUTPUT); pinMode (motor1Input2, OUTPUT); pinMode (motor2Input1, OUTPUT); pinMode (motor2Input2, OUTPUT); pinMode (wifiLed, SALIDA); // Intente conectarse a la red Wifi:while (status! =WL_CONNECTED) {// Conéctese a la red WPA / WPA2. Cambie esta línea si usa una red abierta o WEP:// Para una red WEP, reemplace con:status =WiFi.begin (ssid, keyIndex, pass); // Para red abierta, reemplace con:status =WiFi.begin (ssid); status =WiFi.begin (ssid, pass); // esperar 10 segundos para la conexión:delay (10000); } // Inicie el servidor web server.begin (); // Indica que el servidor está ejecutando digitalWrite (wifiLed, HIGH);} void loop () {// Escucha a los clientes entrantes WiFiClient client =server.available (); if (cliente) {// una solicitud http termina con una línea en blanco boolean currentLineIsBlank =true; while (cliente.conectado ()) {if (cliente disponible ()) {char c =cliente.read (); // Si ha llegado al final de la línea (recibió un carácter // de nueva línea) y la línea está en blanco, la solicitud http ha finalizado, // entonces puede enviar una respuesta si (readString.length () <100 ) {// almacena caracteres en la cadena readString + =c; } if (c =='\ n') {// envía un encabezado de respuesta http estándar client.println ("HTTP / 1.1 200 OK"); client.println ("Tipo de contenido:texto / html"); cliente.println (); client.println (""); cliente.println (""); client.println (""); client.println (""); client.println ("un.button {-webkit-apariencia:botón;"); client.println ("- apariencia-moz:botón;"); client.println ("apariencia:botón;"); client.println ("altura:400px;"); client.println ("altura de línea:400px;"); client.println ("text-align:center;"); client.println ("decoración de texto:ninguna;"); client.println ("tamaño de fuente:100px;"); client.println ("color:inicial;}"); cliente.println (""); client.println (""); client.println (""); // Botón para avanzar client.println (" FORWARDS 
"); client.println ("
"); // Botón para girar a la izquierda client.println (" IZQUIERDA "); // Botón para detener el coche client.println (" STOP " ); // Botón para girar a la derecha client.println (" RIGHT "); cliente.println ("
"); // Botón para retroceder client.println (" HACIA ATRÁS "); client.println ("
"); client.println ("
"); // Botón para retroceder client.println ("

MODOS DE VELOCIDAD

"); client.println (" FAST "); client.println (" SLOW "); client.println (" "); client.println (" "); break;} // Decide en qué botón se hizo clic (si lo hay) // Botón de modo rápido if (readString.indexOf ("? fast ")> 0) {speedMode ="fast"; // Limpia readString para poder obtener el siguiente comando readString ="";} // Botón de modo lento if (readString.indexOf ("? Slow")> 0) {speedMode ="slow"; // Limpia readString para poder obtener el siguiente comando readString ="";} // Modo rápido if (speedMode =="fast") {if (readString.indexOf ("? moveForwards")> 0 ) {moveForwards (); // Limpia readString para poder obtener el siguiente comando readString ="";} if (readString.indexOf ("? moveBackwards")> 0) {moveBackwards (); // Limpia readString para poder obtener el siguiente comando readString ="";}} else if (speedMode =="slow") {// Modo lento if (readString.indexOf ("? moveForwards")> 0) {moveForwardsSlow (); // Borre readString para poder obtener el siguiente comando r eadString =""; } if (readString.indexOf ("? moveBackwards")> 0) {moveBackwardsSlow (); // Limpia readString para poder obtener el siguiente comando readString =""; }} if (readString.indexOf ("? giro a la izquierda")> 0) {giro a la izquierda (); // Limpia readString para poder obtener el siguiente comando readString =""; } if (readString.indexOf ("? turnRight")> 0) {turnRight (); // Limpia readString para poder obtener el siguiente comando readString =""; } if (readString.indexOf ("? stopMoving")> 0) {stopMoving (); // Limpia readString para poder obtener el siguiente comando readString =""; }}} // Dale tiempo al navegador web para recibir el retraso de datos (1); // Cerrar la conexión:client.stop (); }} // Comandos para avanzar void moveForwards () {digitalWrite (motor1Control, HIGH); digitalWrite (motor2Control, ALTO); digitalWrite (motor1Input1, LOW); digitalWrite (motor1Input2, HIGH); digitalWrite (motor2Input1, LOW); digitalWrite (motor2Input2, HIGH);} // Comandos para moverse hacia atrásvoid moveBackwards () {digitalWrite (motor1Control, HIGH); digitalWrite (motor2Control, ALTO); digitalWrite (motor1Input1, HIGH); digitalWrite (motor1Input2, LOW); digitalWrite (motor2Input1, HIGH); digitalWrite (motor2Input2, LOW);} // Comandos para girar a la derecha void turnRight () {// Se proporciona un voltaje más bajo para girar más lento - mejor control analogWrite (motor1Control, 0); analogWrite (motor2Control, 200); digitalWrite (motor1Input1, HIGH); digitalWrite (motor1Input2, LOW); digitalWrite (motor2Input1, LOW); digitalWrite (motor2Input2, HIGH);} // Comandos para girar a la izquierda void turnLeft () {// Se proporciona un voltaje más bajo para girar más lento - mejor control analogWrite (motor1Control, 200); analogWrite (motor2Control, 0); digitalWrite (motor1Input1, LOW); digitalWrite (motor1Input2, HIGH); digitalWrite (motor2Input1, HIGH); digitalWrite (motor2Input2, LOW);} // Comandos para detener el carvoid stopMoving () {digitalWrite (motor1Control, LOW); digitalWrite (motor2Control, BAJO); digitalWrite (motor1Input1, LOW); digitalWrite (motor1Input2, LOW); digitalWrite (motor2Input1, LOW); digitalWrite (motor2Input2, LOW);} // Comandos para movimiento hacia adelante de baja velocidad moveForwardsSlow () {analogWrite (motor1Control, 200); analogWrite (motor2Control, 200); digitalWrite (motor1Input1, LOW); digitalWrite (motor1Input2, HIGH); digitalWrite (motor2Input1, LOW); digitalWrite (motor2Input2, HIGH);} // Comandos para retroceso de baja velocidad vacío moveBackwardsSlow () {analogWrite (motor1Control, 200); analogWrite (motor2Control, 200); digitalWrite (motor1Input1, HIGH); digitalWrite (motor1Input2, LOW); digitalWrite (motor2Input1, HIGH); digitalWrite (motor2Input2, BAJO);}

Piezas y carcasas personalizadas

Arduino% 20IDT% 20Wireless% 20charging% 20wifi% 20car.cad

Esquemas


Proceso de manufactura

  1. Constructor C#
  2. Clase anidada de C#
  3. Sobrecarga del constructor de C#
  4. La creciente amenaza de IoT habilitado para Wi-Fi
  5. Piezas de motor de coche hechas con precisión
  6. Comprender el sistema de gato del automóvil
  7. Configuraciones de cilindros de motores de automóviles
  8. Comprender cómo funciona el motor de un automóvil
  9. ¿Cómo arreglo una fuga de gasolina en mi auto?
  10. ¿La actualización del automóvil afecta la garantía?
  11. Cómo arreglar la manija de la puerta de tu auto