- Необходими материали:
- Схема на слепи пръчки:
- Програма Arduino за Smart Blind Stick:
- Arduino Blind Stick в действие:
Чували ли сте някога за Хю Хер? Той е известен американски алпинист, който разруши ограниченията на своите увреждания; той е силно убеден, че технологията може да помогне на хората с увреждания да живеят нормален живот. В една от своите беседи на TED Хер каза „ Хората не са инвалиди. Човек никога не може да бъде счупен. Нашата изградена среда, нашите технологии са счупени и деактивирани. Ние, хората, не трябва да приемаме нашите ограничения, но можем да прехвърлим уврежданията чрез технологични иновации ”. Това бяха не само думи, но той изживя живота си за тях, днес използва протези и твърди, че живее до нормален живот. Така че да, технологията наистина може да неутрализира човешките увреждания; имайки това предвид, нека използваме няколко прости разработващи дъски и сензори, за да изградим ултразвукова пръчка за сляпо с помощта на Arduino които биха могли да изпълняват нещо повече от пръчка за хора с увредено зрение.
Този интелигентен стик ще има ултразвуков сензор, за да усети разстояние от всяко препятствие, LDR да усети условията на осветление и радиочестотно дистанционно, с което слепият човек може дистанционно да намери пръчката си. Всички отзиви ще бъдат дадени на слепия чрез зумер. Разбира се, можете да използвате вибратор на мястото на зумера и да напреднете много повече, използвайки креативността си.
Необходими материали:
- Arduino Nano (всяка версия ще работи)
- Ултразвуков сензор HC-SR04
- LDR
- Звуков сигнал и светодиод
- 7805
- 433MHz RF предавател и приемник
- Резистори
- Кондензатори
- Натисни бутона
- Перфектна дъска
- Комплект за запояване
- 9V батерии
От тук можете да закупите всички необходими компоненти за този интелигентен проект за слепи пръчки.
Схема на слепи пръчки:
Този проект за Arduino Smart Blind Stick изисква две отделни вериги. Едната е основната верига, която ще бъде монтирана на пръчката на слепеца. Другата е малка верига на отдалечен RF предавател, която ще се използва за локализиране на основната верига. Схемата на основната платка за изграждане на слепи пръчки с помощта на ултразвуков сензор е показана по-долу:
Както виждаме, Arduino Nano се използва за управление на всички сензори, но можете също така да изградите тази интелигентна слепа пръчка, използвайки arduino uno, но следвайки същите пиноти и програма. Пълната платка се захранва от 9V батерия, която се регулира до + 5V с помощта на регулатор на напрежение 7805. В сензора Ултразвуково се захранва от 5V и спусъка и Echo щифт е свързан към Arduino нано щифт 3 и 2, както е показано по-горе. В фоторезистора е свързан с резистор на стойност 10K да образуват потенциален делител и разликата в напрежението се чете от Ардуино ADC щифт А1. ADC щифтът A0 се използва за четене на сигнала от RF приемник. Изходът на платката се дава от зумера, който е свързан към щифт 12.
В схема RF дистанционно е показано по-долу. Работата му също е допълнително обяснена.
Използвах малък хак, за да заработя тази RF схема за дистанционно управление. Обикновено докато се използва този 433 MHz RF модул изисква енкодер и декодер или два MCU, за да работи, както в предишната ни схема на RF трансмитер и приемник, ние използвахме HT12D и HT12E, декодер и IC кодер съответно. Но в нашето приложение просто се нуждаем от приемника, за да открием дали предавателят изпраща някои сигнали. Така че ПИН за данни на предавателя е свързан към земя или Vcc на захранването.
Пинът за данни на приемника се предава през RC филтър и след това се дава на Arduino, както е показано по-долу. Сега, при всяко натискане на бутона, приемникът извежда неколкократно някаква постоянна ADC стойност. Това повторение не може да се наблюдава, когато бутонът не е натиснат. Затова пишем програмата Arduino, за да проверяваме за повтарящи се стойности, за да открием дали бутонът е натиснат. Така че слепият може да проследи стика си. Можете да проверите тук: как работят RF предавателят и приемникът.
Използвал съм перфектна дъска, за да споя всички връзки, така че да остане непокътната с пръчката. Но можете да ги направите и на макет. Това са дъските, които направих за този проект на слепи пръчки с помощта на arduino.
Програма Arduino за Smart Blind Stick:
След като сме готови с нашия хардуер, можем да свържем Arduino към нашия компютър и да започнем програмирането. В пълния код, използван за тази страница може да се намери в дъното на тази страница, можете да го качите директно платката. Ако обаче сте любопитни да разберете как работи кодът, прочетете по-нататък.
Подобно на всички програми, ние започваме с void setup (), за да инициализираме входните изходни щифтове. В нашата програма пинът за зумер и задействане е изходно устройство, а ехото е входно устройство. Също така инициализираме серийния монитор за отстраняване на грешки.
void setup () {Serial.begin (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode (спусък, ИЗХОД); pinMode (ехо, INPUT); }
Вътре в основния контур четем всички данни на сензорите. Започваме с четене на данните от сензора на ултразвуков сензор за разстояние, LDR за интензивност на светлината и RF сигнал, за да проверим дали бутонът е натиснат. Всички тези данни се записват в променлива, както е показано по-долу за бъдеща употреба.
изчисли_разстояние (спусък, ехо); Signal = analogRead (Remote); Intens = analogRead (Light);
Започваме с проверка за отдалечен сигнал. Използваме променлива, наречена similar_count, за да проверим колко пъти едни и същи стойности се повтарят от RF приемника. Това повторение ще се случи само при натискане на бутона. Така че задействаме дистанционно натисната аларма, ако броят надвишава стойност 100.
// Проверяваме дали е натиснато Remote int temp = analogRead (Remote); подобен_ брой = 0; while (Signal == temp) {Signal = analogRead (Remote); подобен_ брой ++; } // Ако се натисне дистанционно, ако (подобен_ брой <100) {Serial.print (подобен_ брой); Serial.println („Отдалечено натискане“); digitalWrite (Buzz, HIGH); забавяне (3000); digitalWrite (Buzz, LOW); }
Можете също да го проверите на Serial Monitor на вашия компютър:
След това проверяваме за интензивността на светлината около слепеца. Ако LDR дава стойност по-малка от 200, се приема, че е много тъмно и ние му даваме предупреждението чрез зумер със специфичен тон на закъснение с 200ms. Ако интензитетът е много ярък, който е повече от 800, също така даваме предупреждение с друг тон. Тонът и интензивността на алармата могат лесно да се променят чрез промяна на съответната стойност в кода по-долу.
// Ако е много тъмно if (Intens <200) {Serial.print (Intens); Serial.println ("Ярка светлина"); digitalWrite (Buzz, HIGH); delay (200); digitalWrite (Buzz, LOW); delay (200); digitalWrite (Buzz, HIGH); delay (200); digitalWrite (Buzz, LOW); delay (200); забавяне (500); } // Ако е много ярко, ако (Intens> 800) {Serial.print (Intens); Serial.println ("Слаба светлина"); digitalWrite (Buzz, HIGH); закъснение (500); digitalWrite (Buzz, LOW); закъснение (500); digitalWrite (Buzz, HIGH); закъснение (500); digitalWrite (Buzz, LOW); закъснение (500); }
Накрая започваме да измерваме разстоянието от всяко препятствие. Няма да има аларма, ако измереното разстояние е повече от 50 см. Но ако е по-малко от 50 см, алармата ще започне с бипкане. Тъй като обектът се приближава до зумера, интервалът на звуков сигнал също ще намалее. Колкото по-близо е обектът, толкова по-бързо ще издава звуков сигнал. Това може да стане чрез създаване на закъснение, което е пропорционално на измереното разстояние. Тъй като delay () в Arduino не може да приеме променливи, трябва да използваме цикъл for, който се базира на измереното разстояние, както е показано по-долу.
if (dist <50) {Serial.print (dist); Serial.println ("Предупреждение за обект"); digitalWrite (Buzz, HIGH); за (int i = dist; i> 0; i--) забавяне (10); digitalWrite (Buzz, LOW); за (int i = dist; i> 0; i--) забавяне (10); }
Научете повече за измерването на разстоянието с помощта на ултразвуков сензор и Arduino.
Програмата може лесно да бъде адаптирана за вашето приложение чрез промяна на стойността, която използваме за сравнение. Използвате серийния монитор за отстраняване на грешки, ако се задейства фалшива аларма. Ако имате някакъв проблем, можете да използвате раздела за коментари по-долу, за да публикувате вашите въпроси
Arduino Blind Stick в действие:
И накрая е време да тестваме нашия проект за слепи стикове arduino. Уверете се, че връзките са извършени според схемата и програмата е качена успешно. Сега захранвайте и двете вериги с помощта на 9V батерия и трябва да започнете да виждате резултати. Приближете Ultra Sonic сензора по-близо до обекта и ще забележите звуков сигнал и този честотен сигнал се увеличава, когато стикът се приближава до обекта. Ако LDR е покрит с тъмно или ако има твърде много светлина, зумерът ще издава звуков сигнал. Ако всичко е нормално, зумерът няма да издава звуков сигнал.
Когато натиснете бутона на дистанционното, зумерът ще издаде дълъг звуков сигнал. Цялостната работа на този Smart Stick за незрящи с помощта на Arduino е показана във видеото, дадено в края на тази страница. Също така използвам малка пръчка, за да монтирам пълния монтаж, можете да използвате по-голяма или истинска слепа пръчка и да я пуснете в действие.
Ако вашият зумер винаги издава звуков сигнал, това означава, че алармата се задейства фалшиво. Можете да отворите серийния монитор, за да проверите за параметрите и да проверите кое е критично и да коригирате това. Както винаги, можете да публикувате проблема си в раздела за коментари, за да получите помощ. Надявам се, че сте разбрали проекта и сте се радвали да изградите нещо.