- Exigences:
- Téléchargement et installation de logiciels:
- Pièce matérielle Arduino et schéma de circuit:
- Partie logicielle Arduino:
- Application mobile Android pour radar à ultrasons:
- Explication de travail:
Il s'agit d'un projet intéressant dans lequel nous explorons la puissance d'un Arduino et Android pour créer un appareil de surveillance qui utilise Arduino et Ultra Sonic Sensor pour diffuser les informations vers une application mobile (Android) utilisant Bluetooth.
La sûreté et la sécurité sont notre principale préoccupation depuis des siècles. L'installation d'une caméra de sécurité avec mode nuit avec option d'inclinaison et de panoramique brûlera un grand trou dans nos poches. Faisons donc un appareil économique qui fait presque la même chose mais sans aucune fonctionnalité vidéo.
Cet appareil détecte les objets à l'aide d'un capteur à ultrasons et peut donc fonctionner même pendant la nuit. Nous montons également le capteur US (Ultra Sonic) sur un servomoteur, ce servomoteur peut être réglé pour tourner automatiquement pour scanner la zone ou peut être tourné manuellement à l'aide de notre application mobile, afin que nous puissions concentrer le capteur à ultrasons dans notre direction requise et sentir les objets présents là-bas. Toutes les informations détectées par le capteur américain seront diffusées sur notre téléphone intelligent à l'aide du module Bluetooth (HC-05). Cela fonctionnera donc comme un sonar ou un radar.
Intéressant non ??…. Voyons ce dont nous aurions besoin pour réaliser ce projet.
Exigences:
Matériel:
- Une alimentation + 5V (j'utilise ma carte Arduino (une autre) pour l'alimentation)
- Arduino Mega (vous pouvez utiliser n'importe quoi, du pro mini à Yun)
- Servomoteur (toute classification)
- Module Bluetooth (HC-05)
- Capteur ultra sonique (HC-SR04)
- Breadboard (non obligatoire)
- Fils de connexion
- Mobile Android
- Ordinateur pour la programmation
Logiciel:
- Logiciel Arduino
- SDK Android
- Traitement Android (pour créer une application mobile)
Une fois que nous sommes prêts avec nos matériaux, commençons à construire le matériel. J'ai divisé ce tutoriel en partie Arduino et en partie traitement pour une compréhension facile. Les personnes novices dans le traitement n'ont pas à craindre grand chose car le code complet est donné à la fin du didacticiel qui peut être utilisé tel quel.
Téléchargement et installation de logiciels:
L' IDE Arduino peut être installé à partir d'ici. Téléchargez le logiciel en fonction de votre système d'exploitation et installez-le. L'IDE Arduino nécessitera un pilote pour communiquer avec votre matériel Arduino. Ce pilote devrait être installé automatiquement une fois que vous connectez votre carte à votre ordinateur. Essayez de télécharger un programme blink à partir d'exemples pour vous assurer que votre Arduino est opérationnel.
L' IDE de traitement peut être installé à partir d'ici. Le traitement est une excellente application open source qui peut être utilisée pour beaucoup de choses, elle a différents modes. En «mode Java», nous pouvons créer des applications informatiques Windows (fichiers.EXE) et en «mode Android», nous pouvons créer des applications mobiles Android (fichiers.APK), il a également d'autres modes comme le «mode Python» où vous pouvez écrire des programmes python. Ce tutoriel ne couvrira pas les bases du traitement, donc si vous voulez apprendre la programmation ou le traitement Java, rendez-vous sur cette excellente chaîne YouTube ici.
Pièce matérielle Arduino et schéma de circuit:
Ce projet implique de nombreux composants tels que le servomoteur, le module Bluetooth, le capteur à ultrasons, etc. Par conséquent, si vous êtes un débutant absolu, il serait recommandé de commencer par un tutoriel de base qui implique ces composants, puis de revenir ici. Découvrez nos différents projets sur le servomoteur, le module Bluetooth et le capteur à ultrasons ici.
Tous les composants ne sont pas alimentés par l'Arduino lui-même car le servomoteur, le module Bluetooth et le capteur américain consomment au total beaucoup de courant que l'Arduino ne pourra pas fournir. Par conséquent, il est strictement conseillé d' utiliser toute alimentation externe + 5V. Si vous ne disposez pas d'une alimentation externe + 5V à votre portée, vous pouvez partager les composants entre deux cartes Arduino comme je l'ai fait. J'ai connecté les rails d'alimentation Servos à une autre carte Arduino (couleur rouge) et connecté le module Bluetooth HC-05 et le capteur à ultrasons HC-SR04 au méga Arduino. ATTENTION: la mise sous tension de tous ces modules à l'aide d'une seule carte Arduino fera griller le régulateur de tension Arduino.
Le schéma de connexion pour ce projet de sondeur basé sur Arduino est donné ci-dessous:
Une fois les connexions effectuées, montez le capteur US sur votre servomoteur comme indiqué ci-dessous:
J'ai utilisé un petit morceau de plastique qui était dans mes ordures et un ruban adhésif double face pour monter le capteur. Vous pouvez avoir votre propre idée pour faire de même. Il existe également des supports de servo disponibles sur le marché qui peuvent être utilisés dans le même but.
Une fois que le servo est monté et que les connexions sont données, cela devrait ressembler à quelque chose comme ça.
Suivez les schémas ci-dessus en cas de mauvaise connexion. Commençons maintenant à programmer l'Arduino Mega à l'aide de l'IDE Arduino.
Partie logicielle Arduino:
Nous devons écrire notre code afin de pouvoir calculer la distance entre un objet et le capteur Ultra Sonic et l'envoyer à notre application mobile. Nous devons également écrire du code pour que notre servomoteur balaye et soit également contrôlé à partir des données reçues par le module Bluetooth. Mais ne vous inquiétez pas, le programme est beaucoup plus simple que vous ne pouvez l'imaginer, grâce à Arduino et ses bibliothèques. Le code complet est donné ci-dessous dans la section code.
La fonction ci-dessous est utilisée pour faire balayer automatiquement le servomoteur de gauche à droite (170 à 10) et à nouveau de droite à gauche (10 à 170). Les deux boucles for sont utilisées pour réaliser la même chose. La fonction us () est appelée à l'intérieur des deux fonctions pour calculer la distance entre le capteur et l'objet et la diffuser vers le Bluetooth. Un retard de 50 ms est donné pour faire tourner lentement le servo. Plus le moteur tourne lentement, plus vos lectures deviennent précises.
// ** Fonction pour le servo à balayer ** // void servofun () {Serial.println ("Sweeping"); // pour le débogage pour (posc = 10; posc <= 170; posc ++) // L'utilisation de 10 à 170 degrés est plus sûre que 0 à 180 car certains servos peuvent ne pas être opérationnels à des angles extrêmes {servo.write (posc); // définit la position du retard du servomoteur (50); nous(); // mesure la distance des objets chantent le capteur US} for (posc = 170; posc> = 10; posc--) {servo.write (posc); retard (50); nous(); // mesure la distance des objets chantent le capteur américain} Serial.println ("Scan Complete"); // pour le débogage flag = 0; } // ** Fin de la fonction de balayage du servo ** //
Comme indiqué précédemment, le servomoteur peut également être contrôlé manuellement à partir du téléphone intelligent. Vous faites simplement glisser votre doigt vers la droite pour faire bouger le moteur vers la droite et vers la gauche pour faire bouger le moteur vers la gauche. La fonction ci-dessus est utilisée pour réaliser la même chose. L'ange du servomoteur sera directement reçu par le module Bluetooth et stocké dans la variable BluetoothData , puis le servo est positionné dans cet ange particulier en utilisant la ligne servo.write (BluetoothData).
// ** Fonction pour contrôler le servo manuellement ** // void manuelservo () {us (); // Récupère la valeur de l'utilisateur et contrôle le servo if (Blueboy.available ()) {BluetoothData = Blueboy.read (); Serial.println (BluetoothData); servo.write (BluetoothData); Serial.println ("écrit"); if (BluetoothData == 'p') {drapeau = 0; }}} // __ Fin de la fonction de contrôle manuel __ //
La distance présente avant l'objet sera calculée par la fonction ci-dessous. Cela fonctionne avec des formules simples que Vitesse = Distance / Temps. Puisque nous connaissons la vitesse de la vague américaine et le temps pris, la distance peut être calculée à l'aide des formules ci-dessus.
// ** Fonction pour mesurer la distance ** // void us () {int duration, distance; digitalWrite (trigPin, HIGH); delayMicrosecondes (1000); digitalWrite (trigPin, LOW); durée = pulseIn (echoPin, HIGH); distance = (durée / 2) / 29,1; // Calcule la distance du capteur if (distance <200 && distance> 0) Blueboy.write (distance); } // __ Fin de la fonction de mesure de distance __ //
Si vous avez des doutes sur le programme, n'hésitez pas à utiliser la section commentaires pour vos quires. Ainsi, une fois que nous sommes prêts avec notre code, nous pouvons immédiatement vider le code dans notre matériel. Mais l'appareil de surveillance ne commencera pas à fonctionner tant qu'il ne sera pas connecté à l'application Android. Vérifiez également la vidéo à la fin pour un travail complet.
Application mobile Android pour radar à ultrasons:
Si vous ne souhaitez pas créer votre propre application et que vous souhaitez simplement installer la même application que celle utilisée dans ce didacticiel, vous pouvez suivre les étapes ci-dessous.
1. Vous pouvez télécharger directement le fichier APK à partir du lien ci-dessous. Ce fichier APK est conçu pour la version Android 4.4.2 et au-dessus (Kitkat et au-dessus). Extrayez le fichier APK du fichier zip.
Application Android pour radar à ultrasons
2. Transférez le fichier.Apk de votre ordinateur vers votre téléphone mobile.
3. Activez l'installation de l'application à partir de sources inconnues dans vos paramètres Android.
4. Installez l'application.
Si l'installation est réussie, vous trouverez l'application nommée «Zelobt» installée sur votre téléphone comme indiqué ci-dessous:
Si vous avez installé cet APK, vous pouvez ignorer la partie ci-dessous et passer à la section suivante.
Programmation de votre propre application à l'aide du traitement:
Soit vous pouvez utiliser le fichier.APK donné ci-dessus, soit vous pouvez créer votre propre application en utilisant Traitement comme expliqué ici. Avec peu de connaissances en programmation, il est également très facile d'écrire votre propre code pour votre application Android. Cependant, si vous ne faites que commencer, il n'est pas conseillé de commencer avec ce code car il est un peu plus élevé que le niveau débutant.
Ce programme utilise deux bibliothèques à savoir, la «bibliothèque Ketai» et la «bibliothèque ControlP5» . La bibliothèque ketai est utilisée pour contrôler tout le matériel présent à l'intérieur de notre téléphone mobile. Des choses comme le niveau de batterie de votre téléphone, les valeurs du capteur de proximité, les valeurs du capteur de l'accéléromètre, les options de contrôle Bluetooth etc. Dans ce programme, nous utilisons cette bibliothèque pour établir une communication entre les téléphones Bluetooth et l'Arduino Bluetooth (HC-05). La «bibliothèque ControlP5» est utilisée pour tracer des graphiques pour notre système radar.
Le programme android complet est joint, vous pouvez le télécharger à partir d'ici.
ATTENTION: n'oubliez pas d'installer les bibliothèques mentionnées ci-dessus et de ne pas copier-coller la partie de code seule, car le code importe des images à partir du dossier de données qui est donné dans la pièce jointe ci-dessus. Par conséquent, téléchargez et utilisez uniquement cela.
Une fois que vous avez terminé la partie de codage et que vous l'avez compilée avec succès, vous pouvez directement connecter votre téléphone portable à votre ordinateur via un câble de données et cliquer sur le bouton de lecture pour alourdir l'application sur votre téléphone mobile. Consultez également nos autres projets de traitement: jeu de ping-pong utilisant Arduino et radio FM contrôlée par téléphone intelligent utilisant le traitement.
Explication de travail:
Maintenant, nous sommes prêts avec notre matériel et la partie logicielle. Mettez votre matériel sous tension et associez votre mobile au module Bluetooth. Une fois jumelé, ouvrez votre application «Zelobt» que nous venons d'installer et attendez maintenant une seconde et vous devriez remarquer que votre module Bluetooth (HC-05) se connecte automatiquement à votre téléphone intelligent. Une fois la connexion établie, vous obtiendrez l'écran suivant:
Vous pouvez remarquer qu'il est dit connecté à: Nom de l'appareil (adresse matérielle) en haut de l'écran. Il affiche également l'ange actuel du servomoteur et la distance entre le capteur américain. Un graphique bleu est également tracé sur le fond rouge en fonction de la distance mesurée. Plus l'objet se rapproche, plus la zone bleue est grande. Le graphique mesuré lorsque certains objets sont placés à proximité est également illustré dans la deuxième figure ci-dessus.
Comme indiqué précédemment, vous pouvez également contrôler votre servomoteur depuis votre application mobile. Pour ce faire, cliquez simplement sur le bouton d'arrêt. Cela empêchera votre servo de balayer automatiquement. Vous pouvez également trouver une roue circulaire au bas de l'écran qui, lorsqu'elle est glissée, tournera dans le sens des aiguilles d'une montre ou dans le sens inverse des aiguilles d'une montre. En faisant glisser cette roue, vous pouvez également faire tourner votre servomoteur dans cette direction particulière. La roue et le graphique mis à jour lors du balayage sont affichés dans l'image ci-dessous.
Le code Arduino est donné ci-dessous et le fichier APK pour l'application Android est ici. Le fonctionnement du projet complet est montré dans la vidéo ci-dessous. J'espère que vous avez compris le projet. Si vous avez des questions, veuillez utiliser la section des commentaires ci-dessous.