- Wymagane materiały:
- Schemat obwodu ślepego drążka:
- Program Arduino dla Smart Blind Stick:
- Arduino Blind Stick w akcji:
Słyszałeś kiedyś o Hugh Herr? Jest znanym amerykańskim alpinistą, który przełamał ograniczenia swojej niepełnosprawności; jest głęboko przekonany, że technologia może pomóc osobom niepełnosprawnym prowadzić normalne życie. W jednym ze swoich wystąpień TED Herr powiedział: „ Ludzie nie są niepełnosprawni. Człowieka nigdy nie można złamać. Nasze środowisko zbudowane, nasze technologie są zepsute i wyłączone. My, ludzie, nie musimy akceptować naszych ograniczeń, ale możemy przenieść niepełnosprawność poprzez innowacje technologiczne ”. To nie były tylko słowa, ale żył dla nich swoim życiem, dziś używa protez nóg i twierdzi, że żyje normalnie. Więc tak, technologia może rzeczywiście zneutralizować ludzką niepełnosprawność; Mając to na uwadze, użyjmy kilku prostych tablic rozwojowych i czujników do zbudowania ultradźwiękowej laski niewidomej za pomocą Arduino które mogą służyć więcej niż tylko kij dla osób niedowidzących.
Ten inteligentny drążek będzie wyposażony w czujnik ultradźwiękowy do wykrywania odległości od przeszkody, LDR do wykrywania warunków oświetleniowych i pilota RF, za pomocą którego niewidomy może zdalnie zlokalizować swój kij. Wszystkie informacje zwrotne zostaną przekazane niewidomemu przez Buzzer. Oczywiście możesz użyć silnika wibracyjnego zamiast Buzzera i rozwinąć znacznie więcej dzięki swojej kreatywności.
Wymagane materiały:
- Arduino Nano (każda wersja będzie działać)
- Czujnik ultradźwiękowy HC-SR04
- LDR
- Brzęczyk i dioda LED
- 7805
- Nadajnik i odbiornik RF 433 MHz
- Rezystory
- Kondensatory
- Naciśnij przycisk
- Płyta Perf
- Zestaw do lutowania
- Baterie 9V
Tutaj możesz kupić wszystkie wymagane komponenty do tego inteligentnego projektu rolety.
Schemat obwodu ślepego drążka:
Ten projekt Arduino Smart Blind Stick wymaga dwóch oddzielnych obwodów. Jeden z nich to obwód główny, który zostanie zamontowany na drążku niewidomego. Drugi to mały obwód zdalnego nadajnika RF, który będzie używany do lokalizacji głównego obwodu. Schemat obwodu płyty głównej do budowy zaślepki za pomocą czujnika ultradźwiękowego przedstawiono poniżej:
Jak widać, Arduino Nano służy do sterowania wszystkimi czujnikami, ale można również zbudować ten inteligentny ślepy drążek za pomocą arduino uno, ale postępując zgodnie z tymi samymi pinami i programem. Cała płyta jest zasilana baterią 9 V, która jest regulowana do + 5 V za pomocą regulatora napięcia 7805. Ultradźwiękowy czujnik jest zasilany 5V oraz spust Echo trzpień jest połączony Arduino nano styku 3 i 2, jak opisano powyżej. LDR jest połączony z rezystorem wartości 10K do utworzenia dzielnika napięcia, a różnica w napięciu są odczytywane przez Arduino ADC pin A1. Pin A0 ADC służy do odczytu sygnału z odbiornika RF. Wyjście płytki jest podawane przez Buzzer, który jest podłączony do pinu 12.
Obwód zdalne RF jest przedstawiony poniżej. Jego działanie jest również dokładniej wyjaśnione.
Użyłem małego hacka, aby ten obwód zdalnego sterowania RF działał. Zwykle podczas korzystania z tego modułu RF 433 MHz do pracy wymagany jest koder i dekoder lub dwa MCU, tak jak w naszym poprzednim obwodzie nadajnika i odbiornika RF, używaliśmy odpowiednio układów scalonych HT12D i HT12E, dekodera i kodera. Ale w naszej aplikacji wystarczy, że odbiornik wykryje, czy nadajnik wysyła jakieś sygnały. Zatem pin danych nadajnika jest podłączony do uziemienia lub Vcc zasilania.
Pin danych odbiornika jest przepuszczany przez filtr RC, a następnie przekazywany do Arduino, jak pokazano poniżej. Teraz, za każdym razem, gdy przycisk jest wciśnięty, Odbiornik wielokrotnie wysyła pewną stałą wartość ADC. Tego powtórzenia nie można zaobserwować, gdy przycisk nie jest wciśnięty. Dlatego piszemy program Arduino, aby sprawdzać powtarzające się wartości, aby wykryć, czy przycisk jest naciśnięty. W ten sposób osoba niewidoma może śledzić swój kij. Tutaj możesz sprawdzić: jak działa nadajnik i odbiornik RF.
Użyłem płytki perf do przylutowania wszystkich połączeń, aby pozostały nienaruszone za pomocą sztyftu. Ale możesz też zrobić je na płytce prototypowej. To są deski, które wykonałem dla tego projektu ślepego kija przy użyciu arduino.
Program Arduino dla Smart Blind Stick:
Gdy jesteśmy gotowi z naszym sprzętem, możemy podłączyć Arduino do naszego komputera i rozpocząć programowanie. Kompletny kod stosowany dla tej strony można znaleźć na dole tej strony, możesz przesłać je bezpośrednio do Arduino pokładzie. Jeśli jednak jesteś ciekawy, jak działa kod, przeczytaj dalej.
Jak wszystkie programy, zaczynamy od void setup () w celu zainicjowania pinów Input Output. W naszym programie pin Buzzer and Trigger jest urządzeniem wyjściowym, a pin Echo jest urządzeniem wejściowym. Inicjalizujemy również monitor szeregowy w celu debugowania.
void setup () {Serial.begin (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode (wyzwalacz, WYJŚCIE); pinMode (echo, INPUT); }
Wewnątrz głównej pętli odczytujemy wszystkie dane z czujników. Rozpoczynamy od odczytu danych czujnika ultradźwiękowego dla odległości, LDR dla natężenia światła i sygnału RF, aby sprawdzić, czy przycisk jest wciśnięty. Wszystkie te dane są zapisywane w zmiennej, jak pokazano poniżej, do wykorzystania w przyszłości.
oblicz_odległość (wyzwalacz, echo); Sygnał = analogRead (zdalny); Intens = analogRead (Light);
Zaczynamy od sprawdzenia sygnału Remote. Używamy zmiennej o nazwie similar_count, aby sprawdzić, ile razy te same wartości są powtarzane z odbiornika RF. To powtórzenie nastąpi tylko po naciśnięciu przycisku. Dlatego wyzwalamy alarm wciśniętego pilota, jeśli liczba przekroczy wartość 100.
// Sprawdź, czy naciśnięto przycisk Remote int temp = analogRead (Remote); similar_count = 0; while (Signal == temp) {Signal = analogRead (Remote); similar_count ++; } // Jeśli naciśnięto zdalne if (similar_count <100) {Serial.print (similar_count); Serial.println ("Zdalnie wciśnięty"); digitalWrite (Buzz, HIGH); delay (3000); digitalWrite (Buzz, LOW); }
Możesz to również sprawdzić na Serial Monitor na swoim komputerze:
Następnie sprawdzamy intensywność światła wokół niewidomego. Jeśli LDR podaje wartość mniejszą niż 200, zakłada się, że jest bardzo ciemno i dajemy mu ostrzeżenie za pomocą brzęczyka z określonym tonem opóźnienia z 200 ms. Jeśli intensywność jest bardzo jasna, czyli większa niż 800, wówczas również dajemy ostrzeżenie innym tonem. Dźwięk i intensywność alarmu można łatwo zmienić, zmieniając odpowiednią wartość w poniższym kodzie.
// Jeśli bardzo ciemno if (Intens <200) {Serial.print (Intens); Serial.println ("Jasne światło"); digitalWrite (Buzz, HIGH); delay (200); digitalWrite (Buzz, LOW); delay (200); digitalWrite (Buzz, HIGH); delay (200); digitalWrite (Buzz, LOW); delay (200); opóźnienie (500); } // Jeśli bardzo jasne if (Intens> 800) {Serial.print (Intens); Serial.println ("Słabe oświetlenie"); digitalWrite (Buzz, HIGH); delay (500); digitalWrite (Buzz, LOW); delay (500); digitalWrite (Buzz, HIGH); delay (500); digitalWrite (Buzz, LOW); delay (500); }
Na koniec zaczynamy mierzyć odległość od jakiejkolwiek przeszkody. Nie będzie alarmu, jeśli zmierzona odległość przekracza 50 cm. Ale jeśli jest mniejsza niż 50 cm, alarm zostanie uruchomiony przez sygnał dźwiękowy. Gdy obiekt zbliży się do brzęczyka, zmniejszy się również interwał sygnału dźwiękowego. Im bliżej obiektu, tym szybciej brzęczyk będzie wydawał dźwięk. Można tego dokonać, tworząc opóźnienie proporcjonalne do zmierzonej odległości. Ponieważ delay () w Arduino nie może akceptować zmiennych, musimy użyć pętli for , która zapętla się na podstawie zmierzonej odległości, jak pokazano poniżej.
if (dist <50) {Serial.print (dist); Serial.println („Alarm obiektu”); digitalWrite (Buzz, HIGH); for (int i = dist; i> 0; i--) delay (10); digitalWrite (Buzz, LOW); for (int i = dist; i> 0; i--) delay (10); }
Dowiedz się więcej o pomiarze odległości za pomocą czujnika ultradźwiękowego i Arduino.
Program można łatwo dostosować do swojej aplikacji, zmieniając wartość, której używamy do porównania. Monitor szeregowy służy do debugowania w przypadku wyzwolenia fałszywego alarmu. Jeśli masz jakiś problem, możesz skorzystać z sekcji komentarzy poniżej, aby opublikować swoje pytania
Arduino Blind Stick w akcji:
Wreszcie nadszedł czas, aby przetestować nasz projekt blind stick arduino. Upewnij się, że połączenia są wykonane zgodnie ze schematem obwodu, a program został pomyślnie przesłany. Teraz zasil oba obwody baterią 9V i powinieneś zacząć widzieć wyniki. Przesuń czujnik Ultra Sonic bliżej obiektu, a zauważysz sygnał dźwiękowy brzęczyka, a jego częstotliwość wzrasta, gdy drążek zbliża się do obiektu. Jeśli LDR jest zasłonięty ciemnością lub jest zbyt dużo światła, brzęczyk wyda sygnał dźwiękowy. Jeśli wszystko jest w porządku, brzęczyk nie wyda sygnału dźwiękowego.
Po naciśnięciu przycisku na pilocie brzęczyk wyda długi dźwięk. Pełne działanie tego Smart Stick dla niewidomych za pomocą Arduino jest pokazane na wideo podanym na końcu tej strony. Używam również małego drążka do zamontowania całego zestawu, możesz użyć większego lub rzeczywistego drążka ślepego i uruchomić go.
Jeśli Twój brzęczyk zawsze wydaje sygnał dźwiękowy, oznacza to, że alarm jest fałszywie wyzwalany. Możesz otworzyć monitor szeregowy, aby sprawdzić parametry i sprawdzić, które z nich są krytyczne, i dostosować to. Jak zawsze możesz zgłosić swój problem w sekcji komentarzy, aby uzyskać pomoc. Mam nadzieję, że zrozumiałeś projekt i podobało Ci się tworzenie czegoś.