- Requisitos:
- Descarga e instalación de software:
- Pieza de hardware Arduino y diagrama de circuito:
- Parte del software Arduino:
- Aplicación móvil de Android para radar ultrasónico:
- Explicación de trabajo:
Este es un proyecto interesante en el que exploramos el poder de un Arduino y Android para crear un dispositivo de vigilancia que usa Arduino y Ultra Sonic Sensor para transmitir la información a una aplicación móvil (Android) usando Bluetooth.
La seguridad y la protección han sido nuestra principal preocupación desde hace siglos. Instalar una cámara de seguridad que tenga modo nocturno con opción de inclinación y giro hará un gran agujero en nuestros bolsillos. Por lo tanto, hagamos un dispositivo económico que haga casi lo mismo pero sin funciones de video.
Este dispositivo detecta objetos con la ayuda del sensor ultrasónico y, por lo tanto, puede funcionar incluso durante la noche. También estamos montando el sensor de EE. UU. (Ultra Sonic) sobre un servomotor, este servomotor se puede configurar para que gire automáticamente para escanear el área o se puede girar manualmente usando nuestra aplicación móvil, para que podamos enfocar el sensor ultrasónico en nuestra dirección requerida y sentir los objetos presentes allí. Toda la información detectada por el sensor de EE. UU. Se transmitirá a nuestro teléfono inteligente mediante el módulo Bluetooth (HC-05). Entonces funcionará como un Sonar o un Radar.
Interesante ¿verdad?…. Veamos qué necesitaríamos para hacer este proyecto.
Requisitos:
Hardware:
- Una fuente de alimentación de + 5V (estoy usando mi placa Arduino (otra) como fuente de alimentación)
- Arduino Mega (puede usar cualquier cosa, desde pro mini hasta Yun)
- Servomotor (cualquier clasificación)
- Módulo Bluetooth (HC-05)
- Sensor ultrasónico (HC-SR04)
- Protoboard (no obligatorio)
- Cables de conexión
- Móvil Android
- Computadora para programar
Software:
- Software Arduino
- SDK de Android
- Procesando Android (para crear una aplicación móvil)
Una vez que estemos listos con nuestros materiales, comencemos a construir el hardware. He dividido este tutorial en la parte Arduino y la parte de procesamiento para facilitar la comprensión. Las personas que son nuevas en el procesamiento no deben temer mucho porque el código completo se proporciona al final del tutorial y se puede usar como tal.
Descarga e instalación de software:
El IDE de Arduino se puede instalar desde aquí. Descargue el software de acuerdo con su sistema operativo e instálelo. El IDE de Arduino requerirá un controlador para comunicarse con su hardware Arduino. Este controlador debería instalarse automáticamente una vez que conecte su placa con su computadora. Intente cargar un programa de parpadeo a partir de ejemplos para asegurarse de que Arduino esté en funcionamiento.
El IDE de procesamiento se puede instalar desde aquí. Processing es una excelente aplicación de código abierto que se puede utilizar para muchas cosas, tiene varios modos. En “Modo Java” podemos crear aplicaciones de computadora con Windows (archivos.EXE) y en “Modo Android” podemos crear Aplicaciones móviles Android (archivos.APK) también tiene otros modos como “Modo Python” donde puedes escribir tus programas Python. Este tutorial no cubrirá los conceptos básicos del procesamiento, por lo tanto, si desea aprender a programar o procesar en Java, visite este gran canal de YouTube aquí.
Pieza de hardware Arduino y diagrama de circuito:
Este proyecto incluye muchos componentes como el servomotor, el módulo Bluetooth, el sensor ultrasónico, etc. Por lo tanto, si eres un principiante absoluto, te recomendamos que comiences con un tutorial básico que incluya estos componentes y luego regreses aquí. Consulte nuestros diversos proyectos sobre servomotor, módulo Bluetooth y sensor ultrasónico aquí.
Todos los componentes no funcionan con el propio Arduino porque el servomotor, el módulo Bluetooth y el sensor de EE. UU. Consumen mucha corriente que Arduino no podrá generar. Por lo tanto, es estrictamente recomendable utilizar cualquier suministro externo de + 5V. Si no tiene un suministro externo de + 5V a su alcance, puede compartir los componentes entre dos placas Arduino como lo he hecho yo. He conectado los rieles de alimentación de Servos a otra placa Arduino (color rojo) y he conectado el módulo Bluetooth HC-05 y el sensor ultrasónico HC-SR04 al mega Arduino. PRECAUCIÓN: Encender todos estos módulos usando una placa Arduino freirá el regulador de voltaje Arduino.
El diagrama de conexión para este proyecto de sonda basado en Arduino se muestra a continuación:
Una vez realizadas las conexiones, monte el sensor de EE. UU. En su servomotor como se muestra a continuación:
He usado una pequeña pieza de plástico que estaba en mi basura y una cinta de doble cara para montar el sensor. Puedes pensar en tu propia idea para hacer lo mismo. También hay soportes de servo disponibles en el mercado que se pueden utilizar para el mismo propósito.
Una vez que el servo está montado y se dan las conexiones, debería verse así.
Siga los esquemas en la parte superior si tiene alguna conexión incorrecta. Ahora comencemos a programar el Arduino Mega usando el IDE de Arduino.
Parte del software Arduino:
Tenemos que escribir nuestro código para que podamos calcular la distancia entre un objeto y el sensor Ultra Sonic y enviarlo a nuestra aplicación móvil. También tenemos que escribir código para que nuestro servomotor haga un barrido y también se controle a partir de los datos recibidos por el módulo Bluetooth. Pero no se preocupe, el programa es mucho más simple de lo que puede imaginar, gracias a Arduino y sus bibliotecas. El código completo se proporciona a continuación en la sección de códigos.
La siguiente función se utiliza para hacer que el servomotor realice un barrido automático de izquierda a derecha (170 a 10) y nuevamente de derecha a izquierda (10 a 170). Los dos bucles for se utilizan para lograr lo mismo. La función us () se llama dentro de ambas funciones para calcular la distancia entre el sensor y el objeto y transmitirla al Bluetooth. Se da un retraso de 50 ms para que el servo gire lentamente. Cuanto más lento gira el motor, más precisas se vuelven sus lecturas.
// ** Función para que el servo haga un barrido ** // void servofun () {Serial.println ("Sweeping"); // para depurar (posc = 10; posc <= 170; posc ++) // Usar de 10 a 170 grados es seguro que de 0 a 180 porque algunos servos podrían no estar operativos en ángulos extremos {servo.write (posc); // establece la posición del retardo del servomotor (50); nos(); // medir la distancia de los objetos canta el sensor de EE.UU.} for (posc = 170; posc> = 10; posc--) {servo.write (posc); retraso (50); nos(); // medir la distancia de los objetos canta el sensor de EE. UU.} Serial.println ("Escaneo completo"); // para depurar flag = 0; } // ** Fin de la función de barrido del servo ** //
Como se dijo anteriormente, el servomotor también se puede controlar manualmente desde el teléfono inteligente. Simplemente deslice el dedo hacia la derecha para que el motor se mueva hacia la derecha y hacia la izquierda para que el motor se mueva hacia la izquierda. La función anterior se utiliza para lograr lo mismo. El ángel del servomotor será recibido directamente por el módulo Bluetooth y almacenado en la variable BluetoothData , luego el servo se posiciona en ese ángel en particular usando la línea servo.write (BluetoothData).
// ** Función para controlar el Servo manualmente ** // void manualservo () {us (); // Obtener valor del usuario y controlar el servo if (Blueboy.available ()) {BluetoothData = Blueboy.read (); Serial.println (BluetoothData); servo.write (BluetoothData); Serial.println ("Escrito"); if (BluetoothData == 'p') {bandera = 0; }}} // __ Fin de la función de control manual __ //
La distancia presente antes del objeto se calculará mediante la siguiente función. Funciona con fórmulas simples que Velocidad = Distancia / tiempo. Dado que conocemos la velocidad de la onda estadounidense y el tiempo que se tarda, la distancia se puede calcular utilizando las fórmulas anteriores.
// ** Función para medir la distancia ** // void us () {int duración, distancia; digitalWrite (trigPin, HIGH); delayMicroseconds (1000); digitalWrite (trigPin, BAJO); duración = pulseIn (echoPin, HIGH); distancia = (duración / 2) / 29,1; // Calcula la distancia desde el sensor if (distancia <200 && distancia> 0) Blueboy.write (distancia); } // __ Fin de la función de medición de distancia __ //
Si tiene alguna duda sobre el programa, no dude en utilizar la sección de comentarios para sus necesidades. Entonces, una vez que estemos listos con nuestro código, podemos volcarlo directamente en nuestro hardware. Pero el dispositivo de vigilancia no comenzará a funcionar hasta que esté conectado a la aplicación de Android. También verifique el video al final para ver el funcionamiento completo.
Aplicación móvil de Android para radar ultrasónico:
Si no desea crear su propia aplicación y, en su lugar, solo desea instalar la misma aplicación utilizada en este tutorial, puede seguir los pasos a continuación.
1. Puede descargar directamente el archivo APK desde el siguiente enlace. Este archivo APK está hecho para la versión de Android 4.4.2 y superior (Kitkat y superior). Extraiga el archivo APK del archivo zip.
Aplicación de Android para radar ultrasónico
2. Transfiera el archivo.Apk de su computadora a su teléfono móvil.
3. Habilite la instalación de aplicaciones de fuentes desconocidas en su configuración de Android.
4. Instale la aplicación.
Si se instaló correctamente, encontrará la aplicación llamada "Zelobt" instalada en su teléfono como se muestra a continuación:
Si ha instalado este APK, puede omitir la parte siguiente y pasar a la siguiente sección.
Programación de su propia aplicación mediante procesamiento:
Puede usar el archivo.APK que se proporciona anteriormente o puede crear su propia aplicación usando Processing como se explica aquí. Con pocos conocimientos de programación, también es muy fácil escribir su propio código para su aplicación de Android. Sin embargo, si recién está comenzando, no es recomendable comenzar con este código, ya que es un poco más alto que el nivel de principiante.
Este programa utiliza dos bibliotecas, a saber, la "biblioteca Ketai" y la "biblioteca ControlP5" . La biblioteca ketai se utiliza para controlar todo el hardware presente dentro de nuestro teléfono móvil. Esta biblioteca puede acceder fácilmente a cosas como el nivel de batería de su teléfono, los valores del sensor de proximidad, los valores del sensor del acelerómetro, las opciones de control de Bluetooth, etc. En este programa usamos esta biblioteca para establecer una comunicación entre los teléfonos Bluetooth y el Arduino Bluetooth (HC-05). La "biblioteca ControlP5" se utiliza para trazar gráficos para nuestro sistema de radar.
Se adjunta el programa completo de Android, puedes descargarlo desde aquí.
PRECAUCIÓN: No olvide instalar las bibliotecas mencionadas anteriormente y no copie y pegue la parte del código solo, porque el código importa imágenes de la carpeta de datos que en conjunto se proporciona en el adjunto anterior. Por lo tanto, descargue y use solo eso.
Una vez que haya terminado con la parte de codificación y la haya compilado con éxito, puede conectar directamente su teléfono móvil a su computadora a través del cable de datos y hacer clic en el botón de reproducción para simplificar la aplicación en su teléfono móvil. Consulte también nuestros otros proyectos de procesamiento: juego de ping pong usando Arduino y radio FM controlada por teléfono inteligente usando procesamiento.
Explicación de trabajo:
Ahora, estamos listos con nuestro hardware y la parte de software. Encienda su hardware y vincule su móvil al módulo Bluetooth. Una vez emparejado, abra su aplicación "Zelobt" que acabamos de instalar y ahora espere un segundo y debería notar que su módulo Bluetooth (HC-05) se conecta automáticamente con su teléfono inteligente. Una vez establecida la conexión, aparecerá la siguiente pantalla:
Puede notar que dice conectado a: Nombre del dispositivo (dirección de hardware) en la parte superior de la pantalla. También muestra el ángel actual del servomotor y la distancia entre el sensor de EE. UU. También se traza un gráfico azul sobre el fondo rojo en función de la distancia medida. Cuanto más se acerca el objeto, más alta se vuelve el área azul. El gráfico medido cuando algunos objetos se colocan cerca también se muestra en la segunda figura de arriba.
Como se dijo anteriormente, también puede controlar su servomotor desde su aplicación móvil. Para hacer esto, simplemente haga clic en el botón Detener. Esto evitará que el servo realice un barrido automático. También puede encontrar una rueda circular en la parte inferior de la pantalla que, cuando se desliza, girará en sentido horario o antihorario. Al deslizar esta rueda, también puede hacer que su servomotor gire en esa dirección en particular. La rueda y el gráfico actualizados cuando se deslizan se muestran en la siguiente imagen.
El código Arduino se proporciona a continuación y el archivo APK para la aplicación Android está aquí. El funcionamiento del proyecto completo se muestra en el video a continuación. Espero que hayas entendido el proyecto. Si tiene alguna necesidad, utilice la sección de comentarios a continuación.