Spisu treści:

Radar peryferyjny dla osób niedowidzących: 14 kroków
Radar peryferyjny dla osób niedowidzących: 14 kroków

Wideo: Radar peryferyjny dla osób niedowidzących: 14 kroków

Wideo: Radar peryferyjny dla osób niedowidzących: 14 kroków
Wideo: Obwodnica Paryża | Policja w akcji 2024, Listopad
Anonim
Radar peryferyjny dla osób niedowidzących
Radar peryferyjny dla osób niedowidzących

W wyniku strasznego wypadku mój przyjaciel stracił ostatnio wzrok w prawym oku. Był bez pracy przez długi czas i po powrocie powiedział mi, że jedną z najbardziej denerwujących rzeczy, z którymi musi się zmierzyć, jest brak wiedzy o tym, co jest po jego prawej stronie. Mniejsze widzenie peryferyjne oznacza wpadanie na rzeczy i ludzi. To mnie niepokoiło. Zdecydowałem, że musi być coś, co możemy zrobić.

Chciałem zbudować urządzenie, które mogłoby mierzyć odległość do obiektów po prawej stronie mojego przyjaciela. Mój plan polega na użyciu silnika dotykowego, aby wibrować urządzenie odwrotnie proporcjonalnie do odległości od obiektu. Wtedy, gdyby obiekty były daleko, silnik nie wibrowałby, a gdy obiekt był bliżej, zacząłby wibrować na niskim poziomie. Gdyby obiekt był blisko, wibrowałby na znacznie wyższym poziomie (lub na jakimkolwiek poziomie). Urządzenie musiałoby być na tyle małe, aby zawiesić się na boku okularów z czujnikiem skierowanym w prawo. Mój przyjaciel kładł urządzenie po prawej stronie okularów, ale oczywiście dla kogoś innego może to być lewa strona.

Przypomniałem sobie, że miałem w domu jakieś akustyczne czujniki odległości. Ale są trochę duże i nieporęczne, mniej precyzyjne i prawdopodobnie byłyby zbyt ciężkie, aby można je było używać na okularach. Zacząłem szukać czegoś innego.

To, co znalazłem, to czujnik czasu przelotu ST Electronics VL53L0X. Jest to laser na podczerwień i detektor podczerwieni w jednym opakowaniu. Emituje impuls światła laserowego poza zakresem widzialnym przez człowieka (940 nm) i rejestruje czas potrzebny na wykrycie odbitego impulsu. Dzieli ten czas przez 2 i mnoży przez prędkość światła, dając bardzo dokładną odległość w milimetrach. Czujnik może wykryć odległość do 2 metrów, ale jak widziałem, 1 metr jest bardziej optymalny.

Tak się składa, że Adafruit ma tablicę zaciskową VL53L0X. Potrzebowałem więc silnika wibracyjnego, który też mieli, i mikrokontrolera do obsługi tego wszystkiego. Zdarzyło mi się mieć pod ręką PJRC Teensy 3.2. Choć większy niż chciałem, miał możliwość taktowania z małą prędkością. Chciałem obniżyć częstotliwość taktowania, aby oszczędzać energię. A jeśli chodzi o źródło zasilania, w moim pojemniku na śmieci miałem regulator doładowania Sparkfun wraz z uchwytem na baterie AAA. Miałem prawie wszystko, czego potrzebowałem.

Krok 1: Pierwszy prototyp

Pierwszy prototyp
Pierwszy prototyp
Pierwszy prototyp
Pierwszy prototyp

Wziąłem części, które miałem pod ręką i wykonałem podręczny prototyp urządzenia, które sobie wyobraziłem. Wydrukowałem uchwyt i płytkę montażową w 3D i przylutowałem całą elektronikę do płyty prototypowej Adafruit. Podłączyłem silnik wibracyjny do Teensy przez tranzystor 2N3904 NPN. Dodałem potencjometr, za pomocą którego można ustawić maksymalną odległość, na jaką urządzenie będzie reagować.

Uruchomiłem go do następnego weekendu (patrz zdjęcie powyżej). Nie było to ładne, ale demonstrowało zasadę. Mój przyjaciel mógł trzymać urządzenie po prawej stronie i sprawdzić, czy będzie przydatne i pomóc w dopracowaniu tego, czego chciał dla funkcji.

Krok 2: Prototyp #2

Prototyp 2
Prototyp 2
Prototyp 2
Prototyp 2
Prototyp 2
Prototyp 2

Po pierwszym ręcznym prototypie zacząłem tworzyć mniejszą wersję. Chciałem zbliżyć się do celu, jakim było zrobienie czegoś, co zmieściłoby się na okularach. Teensy, którego użyłem w wersji podręcznej, pozwolił mi spowolnić zegar, aby oszczędzać energię. Ale rozmiar miał być czynnikiem, więc przerzuciłem się na Adafruit Trinket M0. Chociaż jego częstotliwość taktowania wynosi 48 MHz, procesor ARM, na którym jest oparty, może być taktowany wolniej. Korzystając z wewnętrznego oscylatora RC, może działać z częstotliwością 8, 4 2, a nawet 1 MHz.

Prototyp #2 powstał dość szybko, ponieważ miałem to wszystko razem w następny weekend. Obwody były takie same jak w prototypie nr 1, z wyjątkiem ARM M0. Wydrukowałem w 3D małą obudowę i umieściłem prowadnice z tyłu, aby można je było nasunąć na okulary. Zobacz zdjęcie powyżej. Początkowo jest taktowany z częstotliwością 48 MHz.

Krok 3: Prototyp #3

Prototyp #3
Prototyp #3

Tak więc ten Instruktaż naprawdę zaczyna się tutaj. Postanowiłem zrobić ostatni prototyp. Postanawiam ścisnąć go tak mały, jak tylko mogę, używając niestandardowego PWB (do którego jestem pewien, że zmierzamy). Reszta tej instrukcji będzie dotyczyła pokazania ci, jak to zrobić. Podobnie jak ludzie wykonujący drukowane dłonie w 3D dla niepełnosprawnych dzieci, mam nadzieję, że zrobią je dla każdego, kto ma podobną utratę wzroku w oku.

Lista części pozostała taka sama jak w prototypie #2, ale postanowiłem usunąć potencjometr. Po rozmowie z moim przyjacielem postanowiliśmy ustawić maksymalny dystans za pomocą oprogramowania. Ponieważ mam możliwość korzystania z czujnika dotykowego za pomocą Teensy, zawsze możemy ustawić maksymalną odległość, dotykając. Jedno dotknięcie ustawia krótką odległość, więcej dotknięcie dłuższą odległość, drugie dotknięcie najdłuższą odległość, a następnie jeszcze jedno dotknięcie, owinięcie się z powrotem do początku. Ale na początku użyjemy ustalonej odległości, aby zacząć.

Krok 4: Części

Części
Części

Do tego prototypu potrzebowałem mniejszej płytki. Poszedłem z płytą prototypową Sparkfun (PRT-12702), ponieważ jej małe wymiary (około 1,8 "X 1,3") byłyby dobrym rozmiarem do strzelania.

Musiałem też użyć czegoś innego niż bateria AAA jako źródło zasilania. LiPo wydawał się właściwym wyborem, ponieważ miałby pojemność i niewielką wagę. Wypróbowałem baterię monetową, ale nie miała ona wystarczającej mocy, aby wytrzymać silnik przez bardzo długi czas. Wybrałem mały LiPo o pojemności 150 mAh.

Miałem zamiar pozostać przy Trinket M0 i oczywiście tabliczce zaciskowej VL53L0X.

Skoro już jesteśmy w szczegółach, oto lista części do tego prototypu:

Adafruit VL53L0X Czujnik czasu lotu - ID produktu: 3317 Adafruit - Wibrujący mini dysk z silnikiem - ID produktu: 1201 Adafruit - Akumulator litowo-polimerowy - 3.7v 150mAh - ID PRODUKTU: 1317 SparkFun - Breadboard lutowany - Mini - PRT-12702 Sparkfun - JST Right-Angle Connector - Through-Hole 2-Pin - PRT-09749 Rezystor 10K ohm - Junkbox (spójrz na swoją podłogę) 2N3904 Tranzystor NPN - Junkbox (lub zadzwoń do znajomego) Jakiś przewód przyłączeniowy (użyłem skrętki 22 gauge)

Aby naładować akumulator LiPo zgarnąłem też:

Adafruit - Micro Lipo - Ładowarka USB LiIon/LiPoly - v1 - ID produktu: 1304

Krok 5: Schemat

Schematyczny
Schematyczny

Schemat tego urządzenia pokazano powyżej. Wejście dotykowe będzie przeznaczone dla przyszłej wersji, ale i tak jest pokazane na schemacie. Ponadto rezystor 10K między Trinket M0 a podstawą 2N3904 zapewnia wystarczającą bazę do włączenia silnika bez zbyt silnego trzaskania.

Poniżej znajduje się opis montażu krok po kroku.

Krok 6: Płyta prototypowa

Płyta prototypowa
Płyta prototypowa

Wielu z was, którzy są doświadczeni, wie o tym, ale to jest dla tych, którzy mogą być nowicjuszami w lutowaniu płyt prototypowych:

Płytka prototypowa Sparkfun (PRT-12702) pokazana powyżej ma 17 kolumn (grup) po 5 pinów z każdej strony w odstępie trzech dziesiątych cala. Każda pionowa kolumna z 5 szpilkami po obu stronach szczeliny jest wspólna dla siebie. Rozumiem przez to, że każde połączenie z pinem w grupie jest połączeniem z każdym innym pinem w grupie. W przypadku tej płyty nie wydaje się to oczywiste, ale możesz to sprawdzić, jeśli używasz DVM (cyfrowego woltomierza). Jeśli spojrzysz na plecy, możesz po prostu dostrzec ślady łączące grupy.

Krok 7: Rozmieszczenie komponentów

Rozmieszczenie komponentów
Rozmieszczenie komponentów
Rozmieszczenie komponentów
Rozmieszczenie komponentów

Prawdopodobnie będziesz musiał przylutować listwy pinów zarówno do Trinket M0, jak i VL53L0X. Oba są dostarczane z paskami, ale trzeba je przylutować. Adafruit ma instrukcje w swoim Centrum Nauki dla obu tych części. Jeśli jesteś w tym nowy, przejdź tam (tu i tutaj) przed przylutowaniem pasków do płyt. Listwy stykowe zapewniają niższy profil niż gniazdo.

Pierwszą rzeczą, którą należy wziąć pod uwagę podczas lutowania czegoś na płycie prototypowej o ograniczonej przestrzeni, jest rozmieszczenie komponentów. Umieściłem Trinket i VL53L0X w pozycjach pokazanych na powyższym rysunku. Trinket ma piny na obu krawędziach płyty, ale VL53L0X ma 7 pinów na jednej krawędzi płyty. Strona VL53L0X, która nie ma pinów, użyjemy do podłączenia niektórych komponentów… jak zobaczymy.

Wlutowałem również przełącznik suwakowy na pozycję i wlutowałem 2N3904. Przyciemniłem otwory, w których są umieszczone te części, aw przypadku 2N3904 zauważyłem, które piny to kolektor, podstawa i emiter. Przy pierwszym lutowaniu należy pozostawić go prostopadle do płytki, aby można było lutować inne połączenia. Później będziesz mógł go zgiąć (ostrożnie), aby był bliżej deski.

UWAGA: W tej chwili złącze JST Battery Breakout NIE jest lutowane do płyty. Będzie przylutowany z tyłu płytki, ale dopiero PO przylutowaniu naszych pozostałych połączeń. To będzie ostatnia rzecz, którą lutujemy.

Krok 8: Przewody

Przewody
Przewody

Powyższy schemat pokazuje ponownie płytę prototypową z zaciemnionymi otworami, w których będą znajdować się komponenty. Dodałem do nich etykiety wzdłuż krawędzi, aby ułatwić drutowanie. Zauważ, że silnik wibracyjny jest pokazany, ale będzie on umieszczony z tyłu płyty i będzie podłączony prawie jako ostatni, więc na razie po prostu go zignoruj. Pokazuję też linię przerywaną JST Battery Breakout. Jak wskazano w poprzednim kroku, nie podłączaj go, ale pozostaw 4 otwory na górze płyty otwarte (tzn. Nie lutuj do nich).

Zakładam w tym momencie, że wiesz jak ściągnąć izolację z przewodu, pocynować końce lutem i przylutować do płytki. Jeśli nie, przejdź do jednej z instrukcji dotyczących lutowania.

W tym kroku przylutuj przewody, jak pokazano na żółto. Punktami końcowymi są otwory, do których należy je przylutować. Powinieneś również przylutować do płytki rezystor 10K omów, jak pokazano. Wykonane połączenia to:

1. Połączenie od dodatniego zacisku akumulatora do wspólnego (środkowego) zacisku przełącznika suwakowego. Jedna strona przełącznika suwakowego zetknie się z wejściem BAT do Trinket. Wbudowany regulator Trinket generuje 3,3 V z napięcia wejściowego BAT.

2. Połączenie z ujemnego (masy) zacisku akumulatora do uziemienia Trinket.

3. Połączenie z ujemnego (masy) zacisku akumulatora do emitera 2N3904

4. Połączenie z pinu 3,3 V Trinket (3 V) do VIN VL53L0X. VL53L0X dodatkowo ograniczy to do 2,8 V na własny użytek. To również doprowadza to napięcie do pinu, ale nie jest nam potrzebne, więc pozostanie niepodłączone.

Krok 9: Więcej przewodów

Więcej przewodów
Więcej przewodów

Więc teraz dodajemy następną grupę przewodów, jak pokazano powyżej. Oto lista każdego połączenia:

1. Połączenie z pinu Trinket oznaczonego jako 2 do pinu SCL VL53L0X. To jest sygnał zegarowy I2C. Protokół szeregowy I2C jest używany przez Trinket do komunikacji z VL53L0X.

2. Połączenie z pinu Trinket oznaczonego jako 0 (zero) do pinu VL53L0X SDA. To jest sygnał danych I2C.

3. Połączenie z pinu VL53L0X GND przez szczelinę na płycie prototypowej do emitera 2N3904. Zapewnia to uziemienie VL53L0X.

4. Połączenie z pinu Trinket oznaczonego jako 4 do rezystora 10K. To jest napęd silnika wibracyjnego. Ten przewód zdecydowanie powinien być przylutowany z tyłu płytki, jeśli wybierzesz mój punkt połączenia.

Pamiętaj, że każda pionowa grupa 5 pinów jest wspólna, więc możesz połączyć się w dowolnym miejscu w tej grupie, co jest dogodne. Na zdjęciach mojej tablicy zauważysz, że zmieniłem kilka punktów połączeń. Dopóki są one prawidłowe, wybór padu jest w porządku.

Krok 10: Silnik wibracyjny

Silnik wibracyjny
Silnik wibracyjny

Silnik wibracyjny jest dostarczany z odklejaną naklejką z tyłu. Wyciągasz to, aby odsłonić lepki materiał, który pozwala na przyklejenie silnika z tyłu deski (ale zobacz komentarz poniżej, zanim go przykleisz). Umieściłem go po lewej stronie (patrząc na tył płyty) płytki Breakout baterii JST, której jeszcze nie dołączyliśmy. Zostaw więc trochę miejsca na tablicę zaciskową baterii JST. Chciałem również upewnić się, że metalowa obudowa silnika nie zwiera żadnych szpilek w szczelinie płyty prototypowej. Odciąłem więc mały kawałek taśmy dwustronnej i przykleiłem go z tyłu lepkiej strony silnika wibracyjnego. Następnie wepchnąłem to na tył deski. Pomaga utrzymać metalową obudowę wysoko i z dala od szpilek. Ale nadal uważaj, aby umieścić go w sposób, który NIE powoduje zwarcia żadnych pinów.

Przylutuj czerwony przewód silnika wibracyjnego do pinu 3V Trinket. Czarny przewód silnika wibracyjnego jest przylutowany do kolektora 2N3904. Kiedy oprogramowanie wysyła impulsy do 2N3904 (zapewnia logikę 1 jako 3,3 V), tranzystor włącza się, podłączając czarny przewód silnika wibracyjnego do masy (lub blisko niego). Powoduje to wibracje silnika.

Mogłem dodać trochę pojemności w punkcie połączenia czerwonego przewodu silnika wibracyjnego. Ale na linii Trinket jest pojemność 3,3 V, więc jestem pewien, że jest w porządku, ale jeśli chcesz dodać inną pojemność, możesz… tak długo, jak możesz ją wcisnąć. W tym celu czerwony przewód może się połączyć bezpośrednio do dodatniej strony akumulatora LiPo. Wybrałem stronę 3,3 V, aby utrzymać stałe napięcie. Jak dotąd wydaje się, że działa dobrze.

Krok 11: Ostatni, ale nie najmniej…

Nie mniej ważny…
Nie mniej ważny…
Nie mniej ważny…
Nie mniej ważny…

Na koniec podłączamy płytkę zaciskową baterii JST do tylnej strony płyty prototypowej. Przylutowałem szpilki do płyty i umieściłem płytkę zaciskową baterii JST górną stroną skierowaną w stronę płyty prototypowej, jak pokazano powyżej. Upewnij się, że przylutowałeś przewody dodatniego akumulatora i uziemiłeś do odpowiednich pinów podczas umieszczania tej części. Jeśli się mylisz, odwrócisz polaryzację części i prawdopodobnie zniszczysz je wszystkie. Więc proszę, sprawdź i ponownie sprawdź przed lutowaniem i podłączeniem baterii.

Krok 12: Oprogramowanie

Oprogramowanie
Oprogramowanie

Aby zainstalować i / lub zmodyfikować oprogramowanie, potrzebujesz Arduino IDE i plików płyty dla Trinket M0, a także bibliotek dla VL53L0X. Wszystko to jest tutaj, tutaj i tutaj.

Postępuj zgodnie z instrukcjami korzystania z Adafruit M0 na ich stronie edukacyjnej tutaj.

Po załadowaniu oprogramowania płyta powinna się uruchomić i działać na połączeniu szeregowym USB. Przesuń bok deski z VL53L0X blisko ściany lub dłoni i powinieneś poczuć wibracje silnika. Wibracje powinny mieć mniejszą amplitudę, im dalej od urządzenia znajduje się obiekt.

Zachowanie widoczne w urządzeniu jest nieco wyjaśnione w komentarzach w kodzie źródłowym. Ale załączony wykres powinien dobrze to ukazać. Urządzenie powinno zacząć wibrować dopiero w odległości około 863 mm od przedmiotu. Osiągnie maksymalny poziom wibracji w odległości 50 mm od obiektu. Jeśli zbliżysz się do obiektu bliżej niż 50 mm, urządzenie nie będzie wytwarzać więcej wibracji niż na 50 mm.

Krok 13: Obudowa

Załącznik
Załącznik
Załącznik
Załącznik
Załącznik
Załącznik
Załącznik
Załącznik

Zaprojektowałem obudowę i wydrukowałem ją w 3D z tworzywa ABS. Możesz wydrukować go w PLA lub ABS lub jakimkolwiek materiale, który chcesz. Używam ABS, ponieważ w razie potrzeby mogę przyspawać acetonem elementy do deski. Zaprojektowana przeze mnie płytka jest prosta i ma otwór na port USB na Trinket oraz otwór na włącznik zasilania. Zmontowałem dwie deski za pomocą małych ramion po bokach pudełka. Nie bardzo mi się to podoba, więc prawdopodobnie to zmienię. Oczywiście możesz wprowadzić dowolne zmiany, które chcesz zobaczyć.

Teraz dla tej wersji pudełko musi być otwarte, aby odłączyć akumulator LiPo i go naładować. Jeśli stworzę płytkę drukowaną do tego projektu, dodam kolejne złącze, aby bateria była dostępna bez otwierania pudełka. Być może da się to zrobić na tym projekcie płyty prototypowej i zrobić otwór na złącze do ładowania. Jeśli chcesz tego spróbować, podziel się swoimi wynikami.

Udało mi się zaprojektować pudełko, którego do końca nie nienawidziłem. Użyjemy tego do przetestowania systemu. Dołączyłem górną i dolną część pudełka jako pliki STL, a także wspornik / prowadnicę, który dodałem na dole. Dodałem parę prowadnic za pomocą acetonu do chemicznego zespawania części. Jeśli to zrobisz, bądź ostrożny. Możesz zobaczyć montaż powyżej.

Krok 14: Co teraz?

Co teraz?
Co teraz?

Sprawdź mnie… jestem stara i mogłam o czymś zapomnieć lub nawalić. Czytam ponownie i sprawdzam to, ale nadal mogę coś przegapić. Możesz mi powiedzieć, co zrobiłem/zrobiłem źle.

A teraz, kiedy zbudowałeś płytkę Peripheral Radar i załadowałeś ją, a bateria LiPo jest w ładnej obudowie wydrukowanej w 3D (kiedy ją skończę lub, jeśli zrobiłeś własną), co dalej? Myślę, że powinieneś zdobyć doświadczenie z jego działaniem i wprowadzić modyfikacje w oprogramowaniu. Umowa licencyjna w oprogramowaniu stwierdza, że możesz z niego korzystać, ale jeśli dokonasz jakichkolwiek zmian, musisz je udostępnić. Nie mówię, że oprogramowanie do tego projektu jest w jakiś sposób skomplikowane lub niesamowite. Osiąga swoje cele, ale jest miejsce na ulepszenia. Pomóż ulepszyć to urządzenie i podziel się tym z nami wszystkimi. Pamiętaj, że w tym projekcie chodzi o pomaganie ludziom. Więc pomóż!

Zalecana: