- Potřebné materiály:
- Schéma zapojení naslepo:
- Program Arduino pro Smart Blind Stick:
- Blind Stick Arduino v akci:
Už jste někdy slyšeli o Hughu Herrovi? Je to slavný americký horolezec, který rozbil omezení svých zdravotních postižení; je pevně přesvědčen o tom, že technologie by mohla pomoci zdravotně postiženým osobám žít normální život. V jednom ze svých rozhovorů o TED Herr řekl: „ Lidé nejsou postiženi. Člověk nemůže být nikdy zlomen. Naše zastavěné prostředí, naše technologie jsou nefunkční a deaktivované. My lidé nemusíme přijímat naše omezení, ale můžeme přenášet zdravotní postižení prostřednictvím technologických inovací “. Nebyla to jen slova, ale žil jim svůj život, dnes používá protetické nohy a tvrdí, že žije normální život. Takže ano, technologie může skutečně neutralizovat lidské postižení; s ohledem na to použijme několik jednoduchých vývojových desek a senzorů k vytvoření ultrazvukové slepé vycházkové hůlky pomocí Arduina které by mohly provádět více než jen hůl pro zrakově postižené osoby.
Tato inteligentní hůl bude mít ultrazvukový senzor pro snímání vzdálenosti od jakékoli překážky, LDR pro snímání světelných podmínek a RF dálkový ovladač, pomocí kterého by slepý mohl vzdáleně lokalizovat svou hůl. Všechny zpětné vazby budou předány slepému člověku prostřednictvím bzučáku. Samozřejmě můžete místo vibračního bzučáku použít vibrační motor a mnohem více pokročit pomocí své kreativity.
Potřebné materiály:
- Arduino Nano (jakákoli verze bude fungovat)
- Ultrazvukový senzor HC-SR04
- LDR
- Bzučák a LED
- 7805
- 433MHz RF vysílač a přijímač
- Rezistory
- Kondenzátory
- Stiskněte tlačítko
- Perf deska
- Pájecí souprava
- 9V baterie
Odtud si můžete koupit všechny potřebné komponenty pro tento projekt inteligentní slepé páky.
Schéma zapojení naslepo:
Tento projekt Arduino Smart Blind Stick vyžaduje dva samostatné obvody. Jedním z nich je hlavní obvod, který bude namontován na hůl slepce. Druhým je malý dálkový RF vysílačový obvod, který bude použit k lokalizaci hlavního obvodu. Níže je uvedeno schéma zapojení hlavní desky pro vytvoření slepé páky pomocí ultrazvukového senzoru:
Jak vidíme, Arduino Nano se používá k ovládání všech senzorů, ale můžete také postavit tuto inteligentní slepou tyč pomocí arduino uno, ale podle stejných pinů a programu. Celá deska je napájena 9V baterií, která je regulována na + 5V pomocí regulátoru napětí 7805. Ultrazvukový snímač je napájen 5V a spoušť a Echo čep je spojen s Arduinu nano pin 3 a 2, jak je uvedeno výše. LDR je spojena s odporem hodnoty 10K pro vytvoření děliče napětí a rozdíl v napětí je čten Arduino ADC pin A1. Pin A0 ADC se používá ke čtení signálu z RF přijímače. Výstup desky je dán bzučákem, který je připojen ke kolíku 12.
RF dálkový obvod je uveden níže. Jeho fungování je také dále vysvětleno.
Použil jsem malý hack, aby tento RF dálkový ovladač fungoval. Normálně při použití tohoto 433 MHz RF modulu je pro práci zapotřebí enkodér a dekodér nebo dva MCU, stejně jako v našem předchozím vysokofrekvenčním vysílacím a přijímacím obvodu jsme použili HT12D a HT12E, dekodér a kodér IC. Ale v naší aplikaci potřebujeme pouze přijímač, aby zjistil, zda vysílač vysílá nějaké signály. Datový pin vysílače je tedy připojen k uzemnění nebo Vcc zdroje.
Datový kolík přijímače je veden přes RC filtr a poté předán Arduinu, jak je znázorněno níže. Nyní, kdykoli je stisknuto tlačítko, přijímač opakovaně vysílá nějakou konstantní hodnotu ADC. Toto opakování nelze pozorovat, pokud není stisknuto tlačítko. Napíšeme tedy program Arduino, abychom zkontrolovali opakované hodnoty, abychom zjistili, zda je stisknuto tlačítko. Takto může nevidomý sledovat svoji hůl. Zde můžete zkontrolovat: jak RF vysílač a přijímač fungují.
Použil jsem desku perf k pájení všech spojů tak, aby se neporušila hůlkou. Můžete je však také vyrobit na prkénku. Jedná se o desky, které jsem vytvořil pro tento projekt slepé hůlky pomocí arduina.
Program Arduino pro Smart Blind Stick:
Jakmile jsme připraveni na hardware, můžeme připojit Arduino k našemu počítači a začít programovat. Kompletní kód použitý pro tuto stránku lze nalézt v dolní části této stránky, můžete ho nahrát přímo do Arduino desce. Pokud vás však zajímá, jak kód funguje, přečtěte si dále.
Stejně jako všechny programy začneme s void setup () k inicializaci vstupních výstupních pinů. V našem programu je pin Buzzer a Trigger výstupní zařízení a pin Echo je vstupní zařízení. Inicializujeme také sériový monitor pro ladění.
void setup () {Serial.begin (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode (trigger, OUTPUT); pinMode (echo, INPUT); }
Uvnitř hlavní smyčky čteme všechna data ze senzorů. Začneme čtením dat senzoru ultrazvukového senzoru pro vzdálenost, LDR pro intenzitu světla a RF signálu, abychom zkontrolovali, zda je stisknuto tlačítko. Všechna tato data jsou uložena v proměnné, jak je uvedeno níže pro budoucí použití.
vypočítat_vzdálenost (spoušť, echo); Signál = analogRead (vzdálený); Intens = analogRead (Light);
Začneme kontrolou signálu dálkového ovládání. Proměnnou zvanou similar_count používáme ke kontrole, kolikrát se z RF přijímače opakují stejné hodnoty. K tomuto opakování dojde pouze po stisknutí tlačítka. Spustíme tedy alarm stisknutý na dálku, pokud počet překročí hodnotu 100.
// Zkontrolujte, zda je stisknuto Remote int temp = analogRead (Remote); similar_count = 0; while (Signal == temp) {Signal = analogRead (Remote); similar_count ++; } // Pokud je stisknuto dálkové ovládání if (similar_count <100) {Serial.print (similar_count); Serial.println ("Vzdálené stisknutí"); digitalWrite (Buzz, HIGH); zpoždění (3000); digitalWrite (Buzz, LOW); }
Můžete to také zkontrolovat na Serial Monitor ve vašem počítači:
Dále zkontrolujeme intenzitu světla kolem slepce. Pokud LDR dává hodnotu menší než 200, předpokládá se, že je velmi tmavá, a dáme mu varování prostřednictvím bzučáku se specifickým tónem zpoždění s 200ms. Pokud je intenzita velmi jasná, je vyšší než 800, pak také vydáme varování jiným tónem. Tón a intenzita alarmu lze snadno měnit změnou příslušné hodnoty v níže uvedeném kódu.
// Pokud je velmi tmavý if (Intens <200) {Serial.print (Intens); Serial.println ("Jasné světlo"); digitalWrite (Buzz, HIGH); zpoždění (200); digitalWrite (Buzz, LOW); delay (200); digitalWrite (Buzz, HIGH); zpoždění (200); digitalWrite (Buzz, LOW); zpoždění (200); zpoždění (500); } // Je-li velmi jasný if (Intens> 800) {Serial.print (Intens); Serial.println ("Slabé světlo"); digitalWrite (Buzz, HIGH); zpoždění (500); digitalWrite (Buzz, LOW); zpoždění (500); digitalWrite (Buzz, HIGH); zpoždění (500); digitalWrite (Buzz, LOW); zpoždění (500); }
Nakonec začneme měřit vzdálenost od jakékoli překážky. Pokud je měřená vzdálenost větší než 50 cm, nebude vydán žádný alarm. Ale pokud je to méně než 50 cm alarm začne pípáním bzučáku. Jakmile se objekt přiblíží k bzučáku, sníží se také interval pípání. Čím blíže je předmět, tím rychleji bzučák pípne. Toho lze dosáhnout vytvořením zpoždění, které je úměrné měřené vzdálenosti. Vzhledem k tomu, že delay () v Arduinu nemůže přijímat proměnné, musíme použít smyčku for, která smyčka vychází z měřené vzdálenosti, jak je uvedeno níže.
if (dist <50) {Serial.print (dist); Serial.println ("Upozornění na objekt"); digitalWrite (Buzz, HIGH); pro (int i = dist; i> 0; i--) zpoždění (10); digitalWrite (Buzz, LOW); pro (int i = dist; i> 0; i--) zpoždění (10); }
Zjistěte více o měření vzdálenosti pomocí ultrazvukového senzoru a Arduina.
Program lze snadno přizpůsobit vaší aplikaci změnou hodnoty, kterou používáme k porovnání. Pomocí sériového monitoru můžete ladit, pokud je spuštěn falešný poplach. Pokud máte jakýkoli problém, můžete použít své komentáře níže
Blind Stick Arduino v akci:
Konečně je čas vyzkoušet náš projekt arduino na slepou hůl. Ujistěte se, že jsou připojení provedena podle schématu zapojení a program je úspěšně nahrán. Nyní oba obvody napájejte pomocí 9V baterie a měli byste začít vidět výsledky. Přesuňte senzor Ultra Sonic blíže k objektu a všimnete si pípání bzučáku a tato frekvence pípání se zvyšuje, jak se páčka přibližuje k objektu. Pokud je LDR potemněn nebo je příliš mnoho světla, bzučák pípne. Pokud je vše v pořádku, bzučák nebude pípat.
Když stisknete tlačítko na dálkovém ovladači, bzučák vydá dlouhé pípnutí. Kompletní fungování této Smart Stick pro nevidomé pomocí Arduina je zobrazeno na videu na konci této stránky. Také používám malou tyč k připevnění celé sestavy, můžete použít větší nebo skutečnou slepou tyč a dát ji do akce.
Pokud váš bzučák stále pípá, znamená to, že poplach byl spuštěn falešně. Můžete otevřít sériový monitor, abyste zkontrolovali parametry a zkontrolovali, která kritická hodnota spadá, a upravte to. Jako vždy můžete svůj problém zveřejnit v sekci komentářů a získat pomoc. Doufám, že jste pochopili projekt a rádi jste něco stavěli.