- Matériaux nécessaires:
- Schéma du circuit du bâton aveugle:
- Programme Arduino pour Smart Blind Stick:
- Arduino Blind Stick en action:
Avez-vous déjà entendu parler de Hugh Herr? C'est un célèbre grimpeur américain qui a brisé les limites de ses handicaps; il croit fermement que la technologie pourrait aider les personnes handicapées à mener une vie normale. Dans l'une de ses conférences TED, Herr a déclaré: « Les humains ne sont pas handicapés. Une personne ne peut jamais être brisée. Notre environnement bâti, nos technologies, est cassé et désactivé. Nous, les gens, n'avons pas besoin d'accepter nos limites, mais pouvons transférer le handicap grâce à l'innovation technologique ». Ce n'étaient pas que des mots, mais il a vécu sa vie avec eux, aujourd'hui il utilise des prothèses de jambes et prétend vivre une vie normale. Alors oui, la technologie peut effectivement neutraliser le handicap humain; dans cet esprit, utilisons des cartes de développement et des capteurs simples pour construire un bâton de marche aveugle à ultrasons en utilisant Arduino qui pourrait faire plus qu'un simple bâton pour les personnes malvoyantes.
Ce bâton intelligent aura un capteur à ultrasons pour détecter la distance de tout obstacle, LDR pour détecter les conditions d'éclairage et une télécommande RF à l'aide de laquelle l'aveugle pourrait localiser son bâton à distance. Tous les retours seront donnés à l'aveugle via un buzzer. Bien sûr, vous pouvez utiliser un moteur vibrateur à la place de Buzzer et avancer beaucoup plus en utilisant votre créativité.
Matériaux nécessaires:
- Arduino Nano (toute version fonctionnera)
- Capteur à ultrasons HC-SR04
- LDR
- Buzzer et LED
- 7805
- Émetteur et récepteur RF 433 MHz
- Résistances
- Condensateurs
- Bouton poussoir
- Conseil Perf
- Kit de soudure
- Piles 9V
Vous pouvez acheter tous les composants nécessaires pour ce projet de bâton aveugle intelligent à partir d'ici.
Schéma du circuit du bâton aveugle:
Ce projet Arduino Smart Blind Stick nécessite deux circuits séparés. L'un est le circuit principal qui sera monté sur le bâton de l'aveugle. L'autre est un petit circuit émetteur RF à distance qui sera utilisé pour localiser le circuit principal. Le schéma de circuit de la carte principale pour construire un bâton aveugle à l'aide d'un capteur à ultrasons est illustré ci-dessous:
Comme nous pouvons le voir, un Arduino Nano est utilisé pour contrôler tous les capteurs, mais vous pouvez également construire ce bâton aveugle intelligent en utilisant arduino uno mais en suivant les mêmes brochages et programme. La carte complète est alimentée par une batterie 9V qui est régulée à + 5V à l'aide d'un régulateur de tension 7805. Le capteur à ultrasons est alimenté par 5V et la gâchette et la broche d'écho sont connectées aux nano broches 3 et 2 d'Arduino comme indiqué ci-dessus. Le LDR est connecté à une résistance de valeur 10K pour former un diviseur de potentiel et la différence de tension est lue par la broche A1 de l'ADC Arduino. La broche ADC A0 est utilisée pour lire le signal du récepteur RF. La sortie de la carte est donnée par le buzzer qui est connecté à la broche 12.
Le circuit à distance RF est illustré ci-dessous. Son fonctionnement est également expliqué plus en détail.
J'ai utilisé un petit hack pour faire fonctionner ce circuit de télécommande RF. Normalement, lors de l'utilisation de ce module RF 433 MHz, il faut un encodeur et un décodeur ou deux MCU pour fonctionner, comme dans notre précédent circuit émetteur et récepteur RF, nous utilisions respectivement le HT12D et le HT12E, le décodeur et le codeur IC. Mais, dans notre application, nous avons juste besoin du récepteur pour détecter si l'émetteur envoie des signaux. Ainsi, la broche Data de l'émetteur est connectée à la masse ou à Vcc de l'alimentation.
La broche de données du récepteur est passée à travers un filtre RC, puis transmise à l'Arduino comme indiqué ci-dessous. Désormais, chaque fois que le bouton est enfoncé, le récepteur émet une valeur ADC constante à plusieurs reprises. Cette répétition ne peut pas être observée lorsque le bouton n'est pas enfoncé. Nous écrivons donc le programme Arduino pour vérifier les valeurs répétées afin de détecter si le bouton est enfoncé. C'est ainsi qu'un aveugle peut suivre son bâton. Vous pouvez vérifier ici: comment fonctionnent l'émetteur et le récepteur RF.
J'ai utilisé une carte de performance pour souder toutes les connexions afin qu'elles soient intactes avec le bâton. Mais vous pouvez également les fabriquer sur une maquette. Ce sont les cartes que j'ai faites pour ce projet de bâton aveugle en utilisant Arduino.
Programme Arduino pour Smart Blind Stick:
Une fois que nous sommes prêts avec notre matériel, nous pouvons connecter l'Arduino à notre ordinateur et commencer la programmation. Le code complet utilisé pour cette page se trouve au bas de cette page, vous pouvez le télécharger directement sur votre carte Arduino. Cependant, si vous êtes curieux de savoir comment fonctionne le code, lisez la suite.
Comme tous les programmes, nous commençons par void setup () pour initialiser les broches d'entrée-sortie. Dans notre programme, la broche Buzzer et Trigger est un périphérique de sortie et la broche Echo est un périphérique d'entrée. Nous initialisons également le moniteur série pour le débogage.
void setup () {Serial.begin (9600); pinMode (Buzz, SORTIE); digitalWrite (Buzz, LOW); pinMode (déclencheur, SORTIE); pinMode (écho, INPUT); }
À l'intérieur de la boucle principale , nous lisons toutes les données des capteurs. Nous commençons par lire les données du capteur du capteur à ultrasons pour la distance, LDR pour l'intensité lumineuse et le signal RF pour vérifier si le bouton est enfoncé. Toutes ces données sont enregistrées dans une variable comme indiqué ci-dessous pour une utilisation future.
calculer_distance (déclenchement, écho); Signal = analogRead (Remote); Intens = analogRead (Light);
Nous commençons par vérifier le signal à distance. Nous utilisons une variable appelée similar_count pour vérifier combien de fois les mêmes valeurs sont répétées à partir du récepteur RF. Cette répétition ne se produira que lorsque le bouton est enfoncé. Nous déclenchons donc l'alarme de pression à distance si le nombre dépasse une valeur de 100.
// Vérifie si Remote est pressé int temp = analogRead (Remote); similar_count = 0; while (Signal == temp) {Signal = analogRead (Remote); similar_count ++; } // Si la télécommande est enfoncée if (similar_count <100) {Serial.print (similar_count); Serial.println ("Remote Pressed"); digitalWrite (Buzz, HIGH); délai (3000); digitalWrite (Buzz, LOW); }
Vous pouvez également le vérifier sur Serial Monitor sur votre ordinateur:
Ensuite, nous vérifions l'intensité de la lumière autour de l'aveugle. Si le LDR donne une valeur inférieure à 200, il est supposé être très sombre et nous lui donnons l'avertissement par buzzer avec une tonalité spécifique de retard de 200ms. Si l'intensité est très vive, c'est-à-dire supérieure à 800, nous donnons également un avertissement avec un autre ton. La tonalité et l'intensité de l'alarme peuvent être facilement modifiées en changeant la valeur respective dans le code ci-dessous.
// Si très sombre if (Intens <200) {Serial.print (Intens); Serial.println ("Bright Light"); digitalWrite (Buzz, HIGH); delay (200); digitalWrite (Buzz, LOW); delay (200); digitalWrite (Buzz, HIGH); delay (200); digitalWrite (Buzz, LOW); delay (200); retard (500); } // Si très lumineux if (Intens> 800) {Serial.print (Intens); Serial.println ("Low Light"); digitalWrite (Buzz, HIGH); delay (500); digitalWrite (Buzz, LOW); delay (500); digitalWrite (Buzz, HIGH); delay (500); digitalWrite (Buzz, LOW); delay (500); }
Enfin, nous commençons à mesurer la distance de tout obstacle. Il n'y aura pas d'alarme si la distance mesurée est supérieure à 50 cm. Mais, si elle est inférieure à 50 cm, l'alarme commencera par un bip du buzzer. Au fur et à mesure que l'objet se rapproche du buzzer, l'intervalle des bips diminue également. Plus l'objet est proche, plus le buzzer émettra un bip rapide. Cela peut être fait en créant un retard proportionnel à la distance mesurée. Étant donné que le délai () dans Arduino ne peut pas accepter les variables, nous devons utiliser une boucle for qui en fonction de la distance mesurée, comme indiqué ci-dessous.
if (dist <50) {Serial.print (dist); Serial.println ("Alerte d'objet"); digitalWrite (Buzz, HIGH); pour (int i = dist; i> 0; i--) retard (10); digitalWrite (Buzz, LOW); pour (int i = dist; i> 0; i--) retard (10); }
En savoir plus sur la mesure de la distance à l'aide du capteur à ultrasons et d'Arduino.
Le programme peut être facilement adapté à votre application en modifiant la valeur que nous utilisons pour comparer. Vous utilisez le moniteur série pour déboguer si une fausse alarme est déclenchée. Si vous avez un problème, vous pouvez utiliser la section des commentaires ci-dessous pour poster vos questions
Arduino Blind Stick en action:
Enfin, il est temps de tester notre projet arduino en bâton aveugle. Assurez-vous que les connexions sont effectuées conformément au schéma de circuit et que le programme est correctement téléchargé. Maintenant, alimentez les deux circuits à l'aide d'une pile 9V et vous devriez commencer à voir les résultats. Rapprochez le capteur Ultra Sonic de l'objet et vous remarquerez que le buzzer émet un bip et que la fréquence du bip augmente à mesure que le manche se rapproche de l'objet. Si le LDR est couvert de noir ou s'il y a trop de lumière, l'avertisseur émettra un bip. Si tout est normal, le buzzer n'émettra pas de bip.
Lorsque vous appuyez sur le bouton de la télécommande, le buzzer émet un long bip. Le fonctionnement complet de ce Smart Stick pour les aveugles utilisant Arduino est montré dans la vidéo donnée à la fin de cette page. J'utilise également un petit bâton pour monter l'assemblage complet, vous pouvez utiliser un plus grand ou un vrai bâton aveugle et le mettre en action.
Si votre buzzer émet toujours un bip, cela signifie que l'alarme est déclenchée par erreur. Vous pouvez ouvrir le moniteur série pour vérifier les paramètres et vérifier lequel est critique et ajuster cela. Comme toujours, vous pouvez publier votre problème dans la section des commentaires pour obtenir de l'aide. J'espère que vous avez compris le projet et aimé construire quelque chose.