Hoe maak je een slimme stick voor blinden met Arduino?

Ik ben een groot voorstander van een citaat van Helen Keller waarin staat "Het enige dat erger is dan blind zijn, is zien, maar niet zien". De technologie kan mensen met een handicap helpen om een ​​normaal leven te leiden, net als andere mensen. Iedereen kent het Indiase meisje dat heet Arunima Sinha die haar been verloor bij een treinongeluk en ze de rest van haar leven op de prothetische benen moest lopen. Na een ongeluk besloot ze de Mount Everest te beklimmen op prothetische benen en dus maakte de nieuwste technologie de weg vrij voor haar om haar droom te verwezenlijken.

De technologie kan inderdaad menselijke handicap neutraliseren; laten we met dit in gedachten de kracht van gebruiken Arduino en eenvoudige sensoren om een ​​blinde man's stick te bouwen dat zou een redder in nood kunnen zijn voor slechtzienden. Een ultrasone sensor zal in een stick worden geïnstalleerd die de afstand van een persoon tot elk obstakel zal detecteren, een LDR om de lichtomstandigheden te detecteren en een RF-afstandsbediening die de blinde kan gebruiken om zijn stick op afstand te lokaliseren. Alle aanwijzingen worden via een zoemer aan de blinde man gegeven. We kunnen een vibratormotor gebruiken in plaats van Buzzer en nog veel meer vooruitgaan met onze creativiteit.

Hoe Arduino te gebruiken bij het ontwerpen van het circuit?

Nu we de samenvatting van het project kennen, laten we verder gaan en verschillende informatie verzamelen om aan het werk te gaan. We zullen eerst een lijst maken van de componenten, ze dan kort bestuderen, en dan alle componenten assembleren om een ​​werkend systeem te maken.

Stap 1: Benodigde componenten (hardware)

Stap 2: Gebruikte componenten (software)

Stap 3: de componenten bestuderen

Nu we een lijst hebben gemaakt van alle componenten die we in dit project gaan gebruiken. Laten we nog een stap verder gaan en een korte studie van alle hoofdcomponenten doornemen.

  1. Arduino Nano: Arduino nano is een microcontrollerbord dat wordt gebruikt om verschillende taken in een circuit aan te sturen of uit te voeren. We verbranden een C-code op Arduino Nano om het microcontrollerbord te vertellen hoe en welke bewerkingen moeten worden uitgevoerd. Arduino Nano heeft exact dezelfde functionaliteit als Arduino Uno, maar dan in een vrij klein formaat. De microcontroller op het Arduino Nano-bord is ATmega328p.
  2. Ultrasone sensor HC-SR04: Het HC-SR04-bord is een ultrasone sensor die wordt gebruikt om de afstand tussen twee objecten te bepalen. Het bestaat uit een zender en een ontvanger. De zender zet het elektrische signaal om in een ultrasoon signaal en de ontvanger zet het ultrasone signaal weer om in het elektrische signaal. Wanneer de zender een ultrasone golf uitzendt, reflecteert deze na een botsing met een bepaald object. De afstand wordt berekend door gebruik te maken van de tijd die het ultrasone signaal nodig heeft om van de zender naar de ontvanger terug te gaan.
  3. 433 mhz RF zender en ontvanger: Het werkt op een specifieke frequentie van 433 MHz. Er zijn verschillende andere radiofrequentie-apparaten op de markt en in vergelijking daarmee zal de prestatie van een RF-module afhangen van verschillende factoren, zoals wanneer we het vermogen van de zender vergroten, zal er een grote communicatieafstand worden verzameld. Het zal een hoog elektrisch stroomverbruik op het zenderapparaat veroorzaken, wat een kortere levensduur van de batterijgevoede apparaten tot gevolg heeft. Als we dit apparaat met een hoger uitgezonden vermogen gebruiken, zal het apparaat interferentie veroorzaken met andere RF-apparaten.
  4. 7805 Spanningsregelaar:Spanningsregelaars zijn van groot belang in elektrische circuits. Zelfs als de ingangsspanning fluctueert, zorgt deze spanningsregelaar voor een constante uitgangsspanning. In de meeste projecten vinden we de toepassing van de 7805 IC terug. De naam 7805 betekent twee betekenissen, "78" betekent dat het een positieve spanningsregelaar is en "05" betekent dat het 5V als output levert. Onze spanningsregelaar levert dus een uitgangsspanning van + 5V. Dit IC kan stroom aan rond 1.5A. Een koellichaam wordt aanbevolen voor projecten die meer stroom verbruiken. Als de ingangsspanning bijvoorbeeld 12V is en u 1A verbruikt, dan is (12-5) * 1 = 7W. Deze 7 Watt wordt als warmte afgevoerd.

Stap 4: Het circuit monteren

We zullen voor dit project twee circuits moeten ontwerpen. Het eerste circuit wordt op een geschikte plaats in een blindenstok geplaatst en het tweede is een RF-zender: circuit en het zal worden gebruikt om het hoofdcircuit te achterhalen. Voordat we het circuit op Proteus ontwerpen, moeten we de proteusbibliotheek van de RF-ontvanger in de software opnemen. U kunt de bibliotheek van hier downloaden en na het downloaden van de bibliotheek het Bibliotheek map en kopieer MODULO_RF.LIB bestand en plak het in de Bibliotheek-map van Proteus. Als u de bibliotheekmap niet kunt vinden, klikt u op (C: \ Program Files (x86) \ Labcenter Electronics \ Proteus 8 Professional \ LIBRARY). Wanneer je dit gedaan hebt, open de MODELS-map en kopieer RX.MDF en plak het in de proteus MODELS-map. Als u de modellenmap niet kunt vinden, klikt u op (C: \ Program Files (x86) \ Labcenter Electronics \ Proteus 8 Professional \ MODELS).

De microcontroller die zal worden gebruikt om alle sensoren in het circuit te besturen is Arduino Nano. De voeding die wordt gebruikt voor de werking van het circuit is een 9V-batterij en deze 9V-spanning wordt verlaagd tot 5V met behulp van een 7805 Spanningsregelaar. In het circuit is te zien dat de Ultrasoon sensor wordt gevoed door de Vout van de spanningsregelaar. De trigger- en echopinnen van de sensor zijn respectievelijk verbonden met pin 3 en pin 2 van Arduino. De Lichtafhankelijke weerstand (LDR) is verbonden met de potentiometer met waarde 10k en de Analoog naar digitaal conversiepen A1 van Arduino is op dat punt aangesloten om het spanningsverschil op te merken. We moeten het signaal kennen dat wordt uitgezonden door de RF-ontvanger, dus hebben we ADC-pin A0 aangesloten om het signaal van de RF-ontvanger te lezen. De output van het hele circuit wordt gegeven door de zoemer dus de positieve pin van de zoemer is verbonden met de pin 12 van Arduino en de negatieve pin is verbonden met de aarde van de ultrasone sensor.

We hebben de RF-zender niet in ons schakelschema opgenomen omdat we deze afzonderlijk op hardware zullen monteren. Telkens wanneer we 433 MHz superheterodyne zender en ontvanger gebruiken, hebben we een microcontroller nodig om ze daarmee te verbinden, maar in dit project hebben we de enige zender nodig om signalen naar de ontvanger te sturen, dus hebben we de datapin van de zender met de Vcc verbonden. De datapin van de ontvanger wordt door het RC-filter geleid en vervolgens respectievelijk verbonden met de datapin A0 van de Arduino. We zullen herhaaldelijk op de drukknop op de zender drukken en wanneer de knop wordt ingedrukt, geeft de ontvanger elke constante waarde als uitvoer.

Stap 5: De hardware monteren

Aangezien we de simulatie hebben uitgevoerd, zijn we in staat om een ​​prototype te maken. Let bij het solderen van de componenten op het Perf-bord vooral op de pinnen van Arduino Nano. zorg ervoor dat de pinnen elkaar niet raken, anders kan Arduino worden beschadigd. Zoek een stick bij je thuis en sluit het circuit bestaande uit Arduino en RF-ontvanger erop aan. U kunt het hete lijmpistool gebruiken om het circuit op de stick te bevestigen en het is beter om wat lijm op de positieve en negatieve aansluitingen te doen, zodat de draden van de voeding niet losraken als de stick stevig op de grond wordt gestreken.

Stap 6: Aan de slag met Arduino

Maak je geen zorgen als je nog niet bekend bent met Arduino IDE, want hieronder zie je duidelijke stappen voor het branden van code op het microcontrollerbord met Arduino IDE. U kunt vanaf hier de nieuwste versie van Arduino IDE downloaden en de onderstaande stappen volgen:

  1. Wanneer het Arduino-bord is aangesloten op uw pc, opent u "Configuratiescherm" en klikt u op "Hardware en geluid". Klik vervolgens op "Apparaten en printers". Zoek de naam van de poort waarop uw Arduino-bord is aangesloten. In mijn geval is dit "COM14", maar het kan op uw pc anders zijn.
  2. Klik op het menu Tool. en zet het bord op Arduino Nano uit het vervolgkeuzemenu.
  3. Stel in hetzelfde Tool-menu de poort in op het poortnummer dat u eerder in het Apparaten en printers.
  4. Stel in hetzelfde toolmenu de processor in op ATmega328P (Oude Bootloader).
  5. Download de onderstaande code en plak deze in uw Arduino IDE. Klik op de uploaden knop om de code op uw microcontroller-bord te branden.

Klik hier om de code te downloaden.

Stap 7: de code begrijpen

De code is goed becommentarieerd en spreekt voor zich. Maar toch wordt het hieronder uitgelegd:

  1. Aan het begin van de code worden alle pinnen van het Arduino Nano-bord die op de ultrasone sensor en RF-module zijn aangesloten, geïnitialiseerd.
const int trigger = 3; // Trigger pin van 1st Sensor const int echo = 2; // Echo pin van 1st Sensor const int Buzz = 13; // Pin om buzzer const int Remote = A0 te verbinden; const int Licht = A1; lange tijd genomen; int dist; int Signaal; int Intens; int similar_count;

2. leegte setup () is een functie die wordt gebruikt om alle gebruikte pinnen in te stellen, zoals: INVOER en UITGANG.De baudrate wordt in deze functie gedefinieerd. Baudrate is de communicatiesnelheid waarmee het microcontrollerboard communiceert met de sensoren die ermee zijn geïntegreerd.

leegte setup () {Serial.begin (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode (trigger, OUTPUT); pinMode (echo, INPUT); }

3. Nu gaan we een functie maken die de afstand berekent.

leegte bereken_afstand (int trigger, int echo) {digitalWrite (trigger, LOW); delayMicroseconds (2); digitalWrite (trigger, HIGH); delayMicroseconds (10); digitalWrite (trigger, LOW); time_taken = pulseIn (echo, HIGH); dist= time_taken*0.034/2; if (dist> 300) dist = 300; }

4.leegte lus () is een functie die herhaaldelijk in een cyclus wordt uitgevoerd. In deze functie vertellen we de microcontroller-kaart hoe en welke bewerkingen moeten worden uitgevoerd. In de hoofdlus lezen we de gegevens van de sensoren. Hier wordt eerst de triggerpin ingesteld om een ​​signaal te verzenden dat wordt gedetecteerd door de echopin. Er worden enkele voorwaarden toegepast om de zoemer continu te laten klinken als een object op een bepaalde afstand wordt gedetecteerd. De zoemer piept met een kleine onderbreking als hij donker detecteert en piept met een iets grotere onderbreking als hij helder detecteert.

void loop () {// oneindige lus bereken_afstand (trigger, echo); Signaal = analogRead (Remote); Intens = analogRead (licht); // Controleer of Remote is ingedrukt int temp = analogRead (Remote); similar_count = 0; while (Signal == temp) {Signal = analogRead (Remote); similar_count ++; } // Indien op afstand ingedrukt if (similar_count <100) { Serial.print (similar_count); Serial.println ("Remote Pressed"); digitalWrite (Buzz, HIGH); delay (3000); digitalWrite (Buzz, LOW); } // Indien erg donker 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); vertraging (200); vertraging (500); } //Als zeer helder als (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); vertraging (500); } if (dist <50) {Serial.print (dist); Serial.println ("Object Alert"); digitalWrite (Buzz, HIGH); voor (int i = dist; i> 0; i--) vertraging (10); digitalWrite (Buzz, LOW); voor (int i = dist; i> 0; i--) vertraging (10); } //Serial.print("dist= "); //Serial.println(dist); //Serial.print("Similar_count="); //Serial.println(similar_count); //Serial.print("Intens= "); //Serial.println(Intens); }

Stap 8: testen

Omdat we de code hebben begrepen, deze hebben geüpload naar de microcontroller en ook de hardware hebben geassembleerd, is het nu tijd om ons project te testen. Controleer voordat u gaat testen of de aansluitingen correct zijn gemaakt en controleer de continuïteit van het circuit met behulp van de digitale multimeter. Om te draaien AAN beide circuits gebruiken een 9V-batterij. Plaats een object op het oppervlak waarop u test en beweeg de ultrasone sensor ervoor en het valt op dat het geluid van de zoemer toeneemt naarmate de sensor dichter bij het object komt. Er zijn twee mogelijkheden als de LDR in het donker is bedekt of als u in het zonlicht test, begint de zoemer te piepen. Als de drukknop op de RF-zender wordt ingedrukt, zal de zoemer lang piepen. Als de zoemer lang blijft piepen, betekent dit dat het alarm ten onrechte is geactiveerd. Als u met dit soort fouten wordt geconfronteerd, opent u de seriële monitor van de Arduino IDE en controleert u de parameters die dergelijke problemen veroorzaken.

Dat was de eenvoudigste manier om met Arduino een slimme stick te maken voor blinden. Volg alle bovenstaande stappen en zoek na het succesvol testen van het project naar een persoon met een handicap en bied hem dit project aan om zijn/haar leven gemakkelijker te maken.

Facebook Twitter Google Plus Pinterest