- Nødvendige materialer:
- Blind stick kredsløbsdiagram:
- Arduino-program til Smart Blind Stick:
- Arduino Blind Stick i aktion:
Nogensinde hørt om Hugh Herr? Han er en berømt amerikansk bjergbestiger, der har knust begrænsningerne i hans handicap; han er stærkt overbevist om, at teknologi kan hjælpe handicappede til at leve et normalt liv. I en af hans TED-foredrag sagde Herr ” Mennesker er ikke handicappede. En person kan aldrig brydes. Vores byggede miljø, vores teknologier er brudt og deaktiveret. Vi folket behøver ikke acceptere vores begrænsninger, men kan overføre handicap gennem teknologisk innovation ”. Dette var ikke kun ord, men han levede sit liv til dem, i dag bruger han protetiske ben og hævder at leve til det normale liv. Så ja, teknologi kan faktisk neutralisere menneskelig handicap; med dette i tankerne, lad os bruge nogle enkle devlopment boards og sensorer til at bygge en ultralyds blind stok ved hjælp af Arduino der kunne udføre mere end bare en pind for synshandicappede.
Denne Smart Stick vil have en ultralydssensor til at føle afstand fra enhver forhindring, LDR til at føle lysforhold og en RF-fjernbetjening, hvorved den blinde mand kan finde sin pind eksternt. Alle tilbagemeldinger vil blive givet til den blinde mand gennem en summer. Selvfølgelig kan du bruge en vibratormotor i stedet for summer og gå meget mere frem ved hjælp af din kreativitet.
Nødvendige materialer:
- Arduino Nano (En hvilken som helst version fungerer)
- Ultralydssensor HC-SR04
- LDR
- Summer og LED
- 7805
- 433MHz RF-sender og modtager
- Modstande
- Kondensatorer
- Trykknap
- Perf bord
- Loddesæt
- 9V batterier
Du kan købe alle de nødvendige komponenter til dette smart blind stick- projekt herfra.
Blind stick kredsløbsdiagram:
Dette Arduino Smart Blind Stick Project kræver to separate kredsløb. Den ene er hovedkredsløbet, der monteres på den blinde mand. Den anden er et lille fjerntliggende RF-senderkredsløb, som vil blive brugt til at lokalisere hovedkredsløbet. Hovedkortets kredsløbsdiagram til opbygning af en blindpind ved hjælp af ultralydssensor er vist nedenfor:
Som vi kan se, bruges en Arduino Nano til at kontrollere alle sensorer, men du kan også bygge denne Smart blindpind ved hjælp af arduino uno, men efter samme pinouts og program. Hele kortet drives af et 9V batteri, der reguleres til + 5V ved hjælp af en 7805 spændingsregulator. Den Ultralydssensor er drevet af 5V og udløseren og Echo pin er forbundet til Arduino nano ben 3 og 2 som vist ovenfor. Den LDR er forbundet med en modstand af værdien 10K til dannelse af en spændingsdeler og forskellen i spænding læses af Arduino ADC pin A1. ADC-stift A0 bruges til at læse signalet fra RF-modtager. Boardets output er givet af summeren, der er forbundet til pin 12.
Den RF remote kredsløb er vist nedenfor. Dets arbejde forklares også yderligere.
Jeg har brugt et lille hack til at få dette RF-fjernbetjeningskredsløb til at fungere. Normalt kræver dette 433 MHz RF-modul en koder og dekoder eller to MCU for at arbejde, som i vores tidligere RF-sender og modtager kredsløb brugte vi henholdsvis HT12D og HT12E, dekoder og encoder IC. Men i vores applikation har vi bare brug for modtageren til at opdage, om senderen sender nogle signaler. Så datatappen på transmitteren er forbundet til jord eller Vcc af forsyningen.
Modtagerens datapind føres gennem et RC-filter og gives derefter til Arduino som vist nedenfor. Når der trykkes på knappen, udsender modtageren nu en konstant ADC-værdi gentagne gange. Denne gentagelse kan ikke observeres, når der ikke trykkes på knappen. Så vi skriver Arduino-programmet for at kontrollere, om der er gentagne værdier for at opdage, om der trykkes på knappen. Så sådan kan en blind person spore sin pind. Du kan kontrollere her: hvordan RF-sender og modtager fungerer.
Jeg har brugt et perf-kort til at lodde alle forbindelser, så det bliver intakt med pinden. Men du kan også lave dem på et brødbræt. Dette er tavlerne, som jeg lavede til dette blindstok-projekt ved hjælp af arduino.
Arduino-program til Smart Blind Stick:
Når vi er klar med vores hardware, kan vi forbinde Arduino til vores computer og starte programmeringen. Den komplette kode, der bruges til denne side, kan findes nederst på denne side, du kan uploade den direkte til dit Arduino-kort. Men hvis du er nysgerrig efter at vide, hvordan koden fungerer, kan du læse videre.
Som alle programmer starter vi med ugyldig opsætning () for at initialisere input output-pins. I vores program er Buzzer og Trigger pin en outputenhed, og Echo pin er en inputenhed. Vi initialiserer også den serielle skærm til fejlfinding.
ugyldig opsætning () {Serial.begin (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode (trigger, OUTPUT); pinMode (ekko, INPUT); }
Inde i vigtigste loop vi læser alle de sensorer data. Vi begynder med at læse sensordataene til ultralydssensoren for afstand, LDR for lysintensitet og RF-signal for at kontrollere, om der trykkes på knappen. Alle disse data gemmes i en variabel som vist nedenfor til fremtidig brug.
beregne afstand (trigger, ekko); Signal = analogRead (Remote); Intens = analogLæs (lys);
Vi starter med at tjekke for Remote signalet. Vi bruger en variabel kaldet similar_count til at kontrollere, hvor mange gange de samme værdier gentages fra RF-modtageren. Denne gentagelse finder kun sted, når der trykkes på knappen. Så vi udløser alarmen, der trykkes på Remote, hvis antallet overstiger en værdi på 100.
// Kontroller, om Remote trykkes int temp = analogRead (Remote); lignende_antal = 0; mens (Signal == temp) {Signal = analogRead (Remote); lignende_tælling ++; } // Hvis fjernbetjening trykkes, hvis (similar_count <100) {Serial.print (similar_count); Serial.println ("Remote Pressed"); digitalWrite (Buzz, HIGH); forsinkelse (3000); digitalWrite (Buzz, LOW); }
Du kan også kontrollere det på Serial Monitor på din computer:
Dernæst kontrollerer vi lysintensiteten omkring den blinde mand. Hvis LDR giver en værdi på mindre end 200, antages det at være meget mørkt, og vi advarer ham gennem en summer med en specifik forsinkelsestone på 200 ms. Hvis intensiteten er meget lys, der er mere end 800, giver vi også en advarsel med en anden tone. Alarmtonen og intensiteten kan let varieres ved at ændre den respektive værdi i nedenstående kode.
// Hvis det er meget mørkt, hvis (Intens <200) {Serial.print (Intens); Serial.println ("Bright Light"); digitalWrite (Buzz, HIGH); forsinkelse (200); digitalWrite (Buzz, LOW); forsinkelse (200); digitalWrite (Buzz, HIGH); forsinkelse (200); digitalWrite (Buzz, LOW); forsinkelse (200); forsinkelse (500); } // Hvis det er meget lyst, hvis (Intens> 800) {Serial.print (Intens); Serial.println ("Svagt lys"); digitalWrite (Buzz, HIGH); forsinkelse (500); digitalWrite (Buzz, LOW); forsinkelse (500); digitalWrite (Buzz, HIGH); forsinkelse (500); digitalWrite (Buzz, LOW); forsinkelse (500); }
Endelig begynder vi at måle afstanden fra enhver forhindring. Der er ingen alarm, hvis den målte afstand er mere end 50 cm. Men hvis det er mindre end 50 cm, starter alarmen med at bippe en summer. Når objektet kommer tættere på summeren, vil bipintervallet også falde. Jo tættere objektet er, jo hurtigere bipper lyden. Dette kan gøres ved at skabe en forsinkelse, der er proportional med den målte afstand. Da forsinkelsen () i Arduino ikke kan acceptere variabler, skal vi bruge en for- loop, som er baseret på den målte afstand som vist nedenfor.
hvis (dist <50) {Serial.print (dist); Serial.println ("Objektadvarsel"); digitalWrite (Buzz, HIGH); for (int i = dist; i> 0; i--) forsinkelse (10); digitalWrite (Buzz, LOW); for (int i = dist; i> 0; i--) forsinkelse (10); }
Lær mere om måling af afstanden ved hjælp af ultralydssensor og Arduino.
Programmet kan let tilpasses din applikation ved at ændre den værdi, som vi bruger til at sammenligne. Du bruger den serielle skærm til at debugge, hvis en falsk alarm udløses. Hvis du har problemer, kan du bruge kommentarsektionen nedenfor til at stille dine spørgsmål
Arduino Blind Stick i aktion:
Endelig er det tid til at teste vores arduino- projekt med blindpind. Sørg for, at forbindelserne udføres i henhold til kredsløbsdiagrammet, og at programmet uploades med succes. Tænd nu for begge kredsløb ved hjælp af et 9V batteri, og du skal begynde at se resultater. Flyt Ultra Sonic-sensoren tættere på objektet, og du vil bemærke, at summeren bipper, og denne bipfrekvens øges, når pinden kommer tættere på objektet. Hvis LDR er dækket i mørke, eller hvis der er for meget lys, bipper summeren. Hvis alt er normalt, bipper lyden ikke.
Når du trykker på knappen på fjernbetjeningen, vil summeren give et langt bip. Den komplette bearbejdning af denne Smart Stick til blinde ved hjælp af Arduino vises i videoen i slutningen af denne side. Jeg bruger også en lille pind til at montere den komplette samling, du kan bruge en større eller en egentlig blindpind og sætte den i aktion.
Hvis din summer altid bipper, betyder det, at alarmen udløses falsk. Du kan åbne den serielle skærm for at kontrollere parametrene og kontrollere, hvilke der er kritiske, og justere det. Som altid kan du sende dit problem i kommentarsektionen for at få hjælp. Håber du forstod projektet og nød at bygge noget.