Spisu treści:

Ruchomy sterowany gestami za pomocą akcelerometru i pary nadajnik-odbiornik RF: 4 kroki
Ruchomy sterowany gestami za pomocą akcelerometru i pary nadajnik-odbiornik RF: 4 kroki

Wideo: Ruchomy sterowany gestami za pomocą akcelerometru i pary nadajnik-odbiornik RF: 4 kroki

Wideo: Ruchomy sterowany gestami za pomocą akcelerometru i pary nadajnik-odbiornik RF: 4 kroki
Wideo: Czołg samochód sterowany gestami heckermann hd3122 tank fight 2024, Lipiec
Anonim
Ruchomy sterowany gestami za pomocą akcelerometru i pary nadajnik-odbiornik RF
Ruchomy sterowany gestami za pomocą akcelerometru i pary nadajnik-odbiornik RF

No hej, Zawsze marzyłeś o zbudowaniu łazika, którym można by sterować za pomocą prostych gestów, ale nigdy nie miałbyś odwagi zapuścić się w zawiłości przetwarzania obrazu i łączyć kamerę internetową z mikrokontrolerem, nie wspominając o bitwie pod górę o pokonanie słabego zasięgu i linii problemy ze wzrokiem? Cóż, nie bój się… bo jest łatwe wyjście! Oto, jak przedstawiam wam potężny akcelerometr! *ba dum tsss*

Akcelerometr to naprawdę fajne urządzenie, które mierzy przyspieszenie grawitacyjne wzdłuż osi liniowej. Przedstawia to jako poziom napięcia oscylujący między masą a napięciem zasilania, które nasz mikrokontroler odczytuje jako wartość analogową. Jeśli zastosujemy trochę nasze mózgi (tylko trochę matematyki i trochę fizyki newtonowskiej), możemy nie tylko zmierzyć ruch liniowy wzdłuż osi, ale możemy również użyć go do określenia kąta nachylenia i wyczuwania wibracji. Nie martw się! Nie będziemy potrzebować matematyki ani fizyki; po prostu będziemy mieli do czynienia z surowymi wartościami, które wypluwa akcelerometr. W rzeczywistości nie musisz się zbytnio martwić o szczegóły techniczne akcelerometru dla tego projektu. Dotknę tylko kilku szczegółów i omówię tylko tyle, ile potrzebujesz, aby zrozumieć ogólny obraz. Jeśli jednak jesteś zainteresowany badaniem jego wewnętrznej mechaniki, zajrzyj tutaj.

Musisz tylko o tym pamiętać na razie: akcelerometr to gadżet (często w połączeniu z żyroskopem), który otwiera drzwi do wszystkich gier z czujnikami ruchu, w które gramy na naszych smartfonach; na przykład gra wyścigowa, w której kierujemy pojazdem po prostu przechylając nasze urządzenia w dowolnym kierunku. I możemy naśladować ten efekt, przyklejając akcelerometr (oczywiście z kilkoma urządzeniami pomocniczymi) do rękawicy. Po prostu zakładamy nasze magiczne rękawiczki i przechylamy ręce w lewo lub w prawo, do przodu lub do tyłu i widzimy, jak nasze łaziki tańczą do naszych melodii. Wszystko, co musimy tutaj zrobić, to przetłumaczyć odczyty akcelerometru na sygnały cyfrowe, które silniki łazika mogą zinterpretować i opracować mechanizm przesyłania tych sygnałów do łazika. Aby to osiągnąć, wzywamy starego dobrego Arduino i jego współpracowników do dzisiejszego eksperymentu, parę nadajnik-odbiornik RF działającą z częstotliwością 434 MHz, zapewniając w ten sposób zasięg około 100-150 m w otwartej przestrzeni, co również oszczędza nam linii-of- problemy ze wzrokiem.

Całkiem fajny hack, co? Zanurzmy się w…

Krok 1: Zbierz swoje zapasy

Zbierz swoje zapasy
Zbierz swoje zapasy
Zbierz swoje zapasy
Zbierz swoje zapasy
Zbierz swoje zapasy
Zbierz swoje zapasy
Zbierz swoje zapasy
Zbierz swoje zapasy
• Arduino Nano x1
• Akcelerometr (ADXL335) x1
• Silnik 5 V DC + koła x2 każdy
• Koło bydlęce* x1
• Sterownik silnika L293D + 16-stykowe gniazdo IC x1 każdy
• Nadajnik RF 434 MHz x1
• Odbiornik RF 434 MHz x1
• Układ scalony enkodera HT-12E + 18-pinowe gniazdo układu scalonego x1 każdy
• Układ scalony dekodera HT-12D + 18-pinowe gniazdo układu scalonego x1 każdy
• Regulator napięcia LM7805 x1
• Wciśnij przycisk przełącznika x2
• Czerwona dioda LED + rezystor 330O x2 każdy
• Żółta dioda LED + rezystor 330O x1 każdy
• Zielona dioda LED + rezystor 330O (opcjonalnie) x4 każdy
• Rezystory 51kO i 1MO x1 każdy
• Kondensatory promieniowe 10 µF x2
Baterie, złącza baterii, kabel USB, przewody połączeniowe, żeńskie złącza, 2-pinowe zaciski śrubowe, płytka drukowana, obudowa i zwykłe akcesoria do lutowania

Jeśli zastanawiasz się, dlaczego używamy koła bydlęcego, chodzi o to, że moduły nadajnika i odbiornika RF mają tylko 4 piny danych, co oznacza, że możemy napędzać tylko 2 silniki, a zatem użyć koła bydlęcego do wspierać konstrukcję. Jeśli jednak czujesz, że Twój łazik wyglądałby odrobinę fajniej na czterech kołach, nie martw się, jest praca! W takim przypadku wystarczy zdrapać bydlęce koło z listy i dodać kolejną parę silników 5 V DC, wraz z każdym kołem, i zwrócić uwagę na prosty hack omówiony pod koniec kroku 3.

Wreszcie, dla odważnych istnieje możliwość kolejnej drobnej modyfikacji projektu, która w pewnym sensie polega na zaprojektowaniu własnego Arduino. Przejdź do sekcji bonusów w następnym kroku i przekonaj się sam. Potrzebujesz również kilku dodatkowych materiałów: ATmega328P, 28-pinowego gniazda IC, oscylator kwarcowy 16Mhz, dwóch ceramicznych nasadek 22pF, kolejnego regulatora napięcia 7805, dwóch kolejnych promieniowych nasadek 10μF i rezystorów 10kΩ, 680Ω, 330Ω i tak, minus Arduino!

Krok 2: Podłącz nadajnik

Podłącz nadajnik
Podłącz nadajnik
Podłącz nadajnik
Podłącz nadajnik
Podłącz nadajnik
Podłącz nadajnik
Podłącz nadajnik
Podłącz nadajnik

Projekt podzielimy na dwie części składowe: obwody nadajnika i odbiornika. Nadajnik składa się z akcelerometru, Arduino i modułu nadajnika RF sprzężonego z układem scalonym enkodera HT-12E, wszystkie okablowane zgodnie z załączonym schematem.

Wprowadzony wcześniej akcelerometr służy do rozpoznawania naszych gestów rąk. Będziemy używać akcelerometru trójosiowego (w zasadzie trzech akcelerometrów jednoosiowych w jednym), aby spełnić nasze potrzeby. Może być używany do pomiaru przyspieszenia we wszystkich trzech wymiarach i, jak można się domyślić, daje nie jedną, ale zestaw trzech wartości analogowych w stosunku do jego trzech osi (x, y i z). Właściwie potrzebujemy tylko przyspieszenia wzdłuż osi x i y, ponieważ łazikiem możemy jechać tylko w czterech kierunkach: do przodu lub do tyłu (tj. wzdłuż osi y) oraz w lewo lub w prawo (tj. wzdłuż osi x). Gdybyśmy budowali drona, potrzebowalibyśmy osi Z, aby móc sterować jego wznoszeniem i opadaniem również za pomocą gestów. W każdym razie te wartości analogowe, które daje akcelerometr, muszą zostać przekonwertowane na sygnały cyfrowe, aby móc napędzać silniki. Zajmuje się tym Arduino, które również przesyła te sygnały, po konwersji, do łazika za pośrednictwem modułu nadajnika RF.

Nadajnik RF ma tylko jedno zadanie: przesyłać „szeregowe” dane dostępne na pinie 3 z anteny na pinie 1. To przemawia za użyciem HT-12E, 12-bitowego równoległego do szeregowego kodera danych, który zbiera do 4 bitów danych równoległych z Arduino na liniach AD8 do AD11, dzięki czemu możemy zrobić miejsce na 24=16 różnych kombinacji I/O, w przeciwieństwie do pojedynczego pinu danych w nadajniku RF. Pozostałe 8 bitów, wyciągniętych z linii A0 do A7 na koderze, stanowi bajt adresu, który ułatwia sparowanie nadajnika RF z odpowiednim odbiornikiem RF. 12 bitów jest następnie łączonych i serializowanych, a następnie przekazywanych do pinu danych nadajnika RF, który z kolei ASK moduluje dane na fali nośnej 434 MHz i wystrzeliwuje je przez antenę na pin 1.

Koncepcyjnie każdy odbiornik RF nasłuchujący przy 434 MHz powinien być w stanie przechwycić, demodulować i dekodować te dane. Jednak linie adresowe w HT-12E i te w odpowiedniku HT-12D (12-bitowy dekoder danych szeregowo-równoległych) pozwalają nam uczynić parę nadajnik-odbiornik RF unikatową przez kierowanie danych tylko do zamierzony odbiorca, ograniczając w ten sposób komunikację ze wszystkimi innymi. Jedyne, co jest od nas wymagane, to identyczne skonfigurowanie linii adresowych na obu frontach. Na przykład, ponieważ uziemiliśmy wszystkie linie adresowe dla naszego HT-12E, musimy zrobić to samo dla HT-12D po stronie odbiorczej, w przeciwnym razie łazik nie będzie w stanie odbierać sygnałów. W ten sposób możemy również kontrolować wiele łazików za pomocą jednego obwodu nadajnika, identycznie konfigurując linie adresowe na HT-12D w każdym z odbiorników. Lub możemy założyć dwie rękawiczki, z których każda jest przymocowana do obwodu nadajnika zawierającego odrębną konfigurację linii adresowej (powiedzmy, jedna z uziemionymi wszystkimi liniami adresowymi, a druga ze wszystkimi utrzymywanymi wysoko, lub jedna z uziemioną jedną linią, podczas gdy pozostałe siedem są utrzymywane wysoki, a drugi z dwiema liniami uziemionymi, podczas gdy pozostałe sześć jest utrzymywanych wysoko lub jakakolwiek inna ich kombinacja) i każdy steruje wieloma identycznie skonfigurowanymi łazikami. Zagraj w maestro w symfonii androidów!

Jedną ważną rzeczą, na którą należy zwrócić uwagę podczas montażu obwodu, jest wartość Rosc. HT-12E ma wewnętrzny obwód oscylatora między pinami 15 i 16, który jest włączany przez podłączenie rezystora, zwanego Rosc, pomiędzy te piny. Wartość wybrana dla Rosc faktycznie określa częstotliwość oscylatora, która może się różnić w zależności od napięcia zasilania. Dobór odpowiedniej wartości dla Rosc ma kluczowe znaczenie dla funkcjonowania HT-12E! Idealnie, częstotliwość oscylatora HT-12E powinna być 1/50 razy większa niż jego odpowiednika HT-12D. Dlatego, ponieważ pracujemy na 5V, wybraliśmy rezystory 1MΩ i 51kΩ jako Rosc odpowiednio dla obwodów HT-12E i HT-12D. Jeśli planujesz eksploatować obwody przy innym napięciu zasilania, zapoznaj się z wykresem „Częstotliwość oscylatora a napięcie zasilania” na stronie 11 załączonego arkusza danych HT-12E, aby określić dokładną częstotliwość oscylatora i rezystor, który należy zastosować.

Na marginesie, użyjemy tutaj żeńskich nagłówków (służących podobnym celom jak gniazda IC) do podłączenia akcelerometru, nadajnika RF i Arduino do obwodu zamiast bezpośredniego lutowania ich na płytce drukowanej. Intencją jest przystosowanie małego elementu do ponownego wykorzystania. Powiedzmy, że minęło trochę czasu, odkąd zaprojektowałeś swój łazik sterowany gestami i po prostu siedzi tam, w połowie pokryty kurzem, na półce z trofeami i natknąłeś się na kolejną świetną instrukcję, która wykorzystuje skuteczność akcelerometru. Więc co robisz? Po prostu wyrywasz go z łazika i wpychasz na nowy tor. Nie musisz wzywać „Amazonków”, aby zdobyć nową:-p

Bonus: Pozbądź się Arduino, a jednak tego nie rób

Na wypadek, gdybyś miał ochotę na trochę więcej przygód, a zwłaszcza, jeśli uważasz, że wydatkowanie tego pięknie zaprojektowanego cudu (oczywiście Arduino) do tak trywialnego zadania jak nasze to trochę przesada, wytrzymaj ze mną trochę dłużej; a jeśli nie, możesz przejść do następnego kroku.

Naszym celem jest uczynienie Arduino (w rzeczywistości mózgiem Arduino; tak, mówię o układzie ATmega IC!) stałym członkiem zespołu. ATmega byłaby zaprogramowana do wykonywania tylko jednego szkicu w kółko, tak aby mogła służyć jako wieczna część obwodu, podobnie jak HT-12E - zwykły układ scalony, po prostu siedzący tam i robiący to, co powinien. Czy nie taki powinien być każdy prawdziwy system wbudowany?

W każdym razie, aby kontynuować tę aktualizację, po prostu zmodyfikuj obwód zgodnie z drugim załączonym schematem. Tutaj po prostu zastępujemy żeńskie złącza Arduino gniazdem IC dla ATmega, dodajemy rezystor podciągający 10K na pinie resetowania (pin 1) układu scalonego i pompujemy go zewnętrznym zegarem między pinami 9 i 10 Niestety, jeśli zrezygnujemy z Arduino, odpuścimy również jego wbudowane regulatory napięcia; ergo, musimy powtórzyć obwód LM7805, który tutaj zastosowaliśmy dla odbiornika. Dodatkowo wykorzystujemy również dzielnik napięcia, aby pobrać napięcie 3,3 V potrzebne do zasilania akcelerometru.

Teraz jedynym innym haczykiem jest zaprogramowanie ATmegi do wykonania swojej pracy. Musisz jednak poczekać na to do kroku 4. Bądźcie na bieżąco…

Krok 3: A odbiorca

I Odbiorca
I Odbiorca
I Odbiorca
I Odbiorca
I Odbiorca
I Odbiorca
I Odbiorca
I Odbiorca

Odbiornik składa się z modułu odbiornika RF sprzężonego z układem scalonym dekodera HT-12D i pary silników prądu stałego obsługiwanych za pomocą sterownika silnika L293D, wszystkie okablowane zgodnie z załączonym schematem.

Jedynym zadaniem odbiornika RF jest demodulacja fali nośnej (odbieranej przez antenę na pinie 1) i renderowanie pobranych danych „szeregowych” na pinie 7, skąd są one odbierane przez HT-12D w celu deserializacji. Teraz, zakładając, że linie adresowe (A0 do A7) na HT-12D są skonfigurowane identycznie jak jego odpowiednik HT-12E, 4 równoległe bity danych są wyodrębniane i przekazywane dalej przez linie danych (D8 do D11) na HT-12D do sterownika silnika, który z kolei interpretuje te sygnały, aby napędzać silniki.

Ponownie zwróć uwagę na wartość Rosc. HT-12D również ma wewnętrzny obwód oscylatora między pinami 15 i 16, który jest włączany przez podłączenie rezystora o nazwie Rosc, między te piny. Wartość wybrana dla Rosc faktycznie określa częstotliwość oscylatora, która może się różnić w zależności od napięcia zasilania. Dobór odpowiedniej wartości dla Rosc ma kluczowe znaczenie dla funkcjonowania HT-12D! Idealnie częstotliwość oscylatora HT-12D powinna być 50 razy większa niż odpowiednika HT-12E. Dlatego, ponieważ pracujemy na 5V, wybraliśmy rezystory 1MΩ i 51kΩ jako Rosc odpowiednio dla obwodów HT-12E i HT-12D. Jeśli planujesz eksploatować obwody przy innym napięciu zasilania, zapoznaj się z wykresem „Częstotliwość oscylatora a napięcie zasilania” na stronie 5 załączonego arkusza danych HT-12D, aby określić dokładną częstotliwość oscylatora i rezystor, który należy zastosować.

Nie zapomnij również o żeńskich nagłówkach odbiornika RF.

Opcjonalnie dioda LED może być podłączona za pomocą rezystora ograniczającego prąd 330 Ω do każdego z 4 pinów danych HT-12D, aby pomóc określić bit odbierany na tym pinie. Dioda zaświeci się, jeśli odebrany bit jest WYSOKI (1) i zgaśnie, jeśli odebrany bit będzie NISKI (0). Alternatywnie, pojedyncza dioda LED może być połączona z pinem VT HT-12D (ponownie przez rezystor ograniczający prąd 330 Ω), który zaświeci się w przypadku prawidłowej transmisji.

Teraz, jeśli szukasz hacka z silnikami, o którym mówiłem w kroku pierwszym, jest to cholernie proste! Wystarczy połączyć oba silniki w każdym zestawie równolegle, jak pokazano na drugim schemacie. Działa to tak, jak powinno, ponieważ silniki w każdym zestawie (przednie i tylne silniki po lewej stronie oraz przednie i tylne silniki po prawej) nigdy nie są napędzane w przeciwnych kierunkach. Oznacza to, że aby skręcić łazikiem w prawo, przedni i tylny silnik po lewej stronie muszą być napędzane do przodu, a przedni i tylny silnik po prawej stronie muszą być napędzane do tyłu. Podobnie, aby łazik skręcał w lewo, przedni i tylny silnik po lewej stronie muszą być napędzane do tyłu, a przedni i tylny silnik po prawej stronie muszą być napędzane do przodu. Dlatego bezpiecznie jest podawać tę samą parę napięć do obu silników w zestawie. A sposobem na to jest po prostu równoległe podłączenie silników.

Krok 4: Przejdź do Kodeksu

Do Kodeksu
Do Kodeksu

Została tylko jedna rzecz do zrobienia, aby łazik zaczął działać. Tak, dobrze zgadłeś! (Mam nadzieję, że tak) Nadal musimy przetłumaczyć odczyty akcelerometru na formę, którą sterownik silnika może zinterpretować, aby móc napędzać silniki. Jeśli myślisz, że skoro odczyty akcelerometru są analogowe, a sterownik silnika oczekuje sygnałów cyfrowych, będziemy musieli zaimplementować jakiś ADC, cóż, nie technicznie, ale to właśnie musimy zrobić. I to całkiem proste.

Wiemy, że akcelerometr mierzy przyspieszenie grawitacyjne wzdłuż osi liniowej i że przyspieszenie to jest reprezentowane jako poziom napięcia oscylujący między ziemią a napięciem zasilania, które nasz mikrokontroler odczytuje jako wartość analogową z zakresu od 0 do 1023. Ale ponieważ my Jeśli pracujesz z akcelerometrem na 3,3 V, zaleca się ustawienie analogowego odniesienia dla 10-bitowego przetwornika ADC (który jest zintegrowany z ATmeaga na pokładzie Arduino) na 3,3 V. To po prostu sprawi, że wszystko będzie łatwiejsze do zrozumienia; chociaż nie będzie to miało większego znaczenia dla naszego małego eksperymentu, nawet jeśli tego nie zrobiliśmy (musimy tylko trochę poprawić kod). Aby to zrobić, po prostu podłączamy pin AREF na Arduino (pin 21 na ATmega) do 3,3 V i oznaczamy tę zmianę w kodzie, wywołując analogReference(EXTERNAL).

Teraz, gdy ułożymy akcelerometr płasko i analogowo, odczytamy przyspieszenie wzdłuż osi x i y (pamiętacie? potrzebujemy tylko tych dwóch osi), otrzymamy wartość około 511 (tj. w połowie drogi między 0 a 1023), co jest po prostu sposób na powiedzenie, że na tych osiach nie ma przyspieszenia. Zamiast zagłębiać się w szczegóły tego faktu, wyobraź sobie to jako osie x i y na wykresie, z wartością 511 oznaczającą początek, a 0 i 1023 punkty końcowe, jak pokazano na rysunku; ustaw akcelerometr w taki sposób, aby jego kołki były skierowane w dół i były trzymane bliżej Ciebie, w przeciwnym razie możesz odwrócić/zamienić osie. Oznacza to, że przechylając akcelerometr w prawo powinniśmy odczytać wartość większą niż 511 wzdłuż osi x, a przechylając akcelerometr w lewo powinniśmy otrzymać wartość mniejszą niż 511 wzdłuż osi x. Podobnie, jeśli przechylamy akcelerometr do przodu, powinniśmy odczytać wartość większą niż 511 wzdłuż osi y, a jeśli przechylamy akcelerometr do tyłu, powinniśmy odczytać wartość mniejszą niż 511 wzdłuż osi y. W ten sposób wywnioskujemy w kodzie kierunek, w którym łazik powinien być prowadzony. Ale oznacza to również, że musimy utrzymywać akcelerometr naprawdę stabilnie i ustawiony równolegle do płaskiej powierzchni, aby móc odczytać 511 wzdłuż obu osi aby łazik był nadal zaparkowany. Aby nieco ułatwić to zadanie, definiujemy pewne progi tworzące granicę, jak pokazano na rysunku, tak aby łazik pozostawał nieruchomy tak długo, jak odczyty x i y mieszczą się w granicach i wiemy na pewno, że łazik musi być ustawiony w ruchu po przekroczeniu progu.

Na przykład, jeśli oś y wskazuje 543, wiemy, że akcelerometr jest przechylony do przodu, więc musimy skierować łazik do przodu. Robimy to ustawiając piny D2 i D4 HIGH oraz piny D3 i D5 LOW. Teraz, ponieważ te piny są podłączone bezpośrednio do HT-12E, sygnały są serializowane i wysyłane z nadajnika RF tylko po to, aby zostać przechwycone przez odbiornik RF umieszczony na łaziku, który za pomocą HT-12D deserializuje sygnały i przekazuje je do L293D, który z kolei interpretuje te sygnały i napędza silniki do przodu

Możesz jednak zmienić te progi, aby skalibrować czułość. Prostym sposobem na to jest po prostu podłączenie akcelerometru do Arduino i uruchomienie szkicu, który wypluwa odczyty x i y na monitor szeregowy. Teraz po prostu przesuń trochę akcelerometr, przejrzyj odczyty i określ progi.

I to wszystko! Prześlij kod do swojego Arduino i ciesz się!! A może nie tak szybko:-(Jeśli nie pominąłeś sekcji bonusów, wgranie kodu do ATmegi oznaczałoby trochę więcej pracy. Masz dwie możliwości:

Opcja A: użyj urządzenia USB do portu szeregowego, takiego jak podstawowa tablica zaciskowa FTDI FT232. Po prostu poprowadź przewody z nagłówka TTL do odpowiednich pinów na ATmega zgodnie z poniższym mapowaniem:

Piny na tabliczce rozdzielczej Piny na mikrokontrolerze
DTR/GRN RST/Reset (Pin 1) przez nasadkę 0,1 µF
Rx Tx (styk 3)
Tx Rx (styk 2)
Vcc Wyjście +5V
CTS (nie używany)
Gnd Grunt

Teraz podłącz jeden koniec kabla USB do płytki zaciskowej, a drugi do komputera i prześlij kod w normalny sposób: uruchom Arduino IDE, wybierz odpowiedni port szeregowy, ustaw typ płytki, skompiluj szkic i kliknij przesyłanie.

Opcja B: Użyj UNO, jeśli gdzieś leży. Po prostu podłącz ATmegę do UNO, wgraj kod jak zwykle, wyciągnij układ scalony i wepchnij go z powrotem do obwodu nadajnika. Bułka z masłem!

Każda z tych opcji powinna działać, zakładając, że jesteś na tyle sprytny, aby spalić bootloader przed oddaniem ATmegi, lub, jeśli byłeś jeszcze mądrzejszy, aby kupić ATmegę z już zainstalowanym bootloaderem. Jeśli nie, zrób to, wykonując czynności opisane tutaj.

Iddd, oficjalnie skończyliśmy! Mam nadzieję, że podobała ci się ta dziwnie długa instrukcja. Teraz kontynuuj, skończ budowę łazika, jeśli jeszcze tego nie zrobiłeś, pobaw się nim przez chwilę i wróć, aby zapełnić sekcję komentarzy poniżej zapytaniami i / lub konstruktywną krytyką.

Dziękuję

PS Powodem, dla którego nie przesłałem żadnych zdjęć ukończonego projektu, jest to, że sam go nie ukończyłem. W połowie budowy pomyślałem o kilku ulepszeniach, takich jak kontrola prędkości, unikanie przeszkód i być może wyświetlacz LCD w łaziku, co w rzeczywistości nie jest takie trudne, jeśli użyjemy mikrokontrolera zarówno po stronie nadawczej, jak i odbiorczej. Ale dlaczego nie zrobić tego w trudny sposób?! Tak więc obecnie pracuję w tym kierunku i opublikuję aktualizację, gdy tylko przyniesie ona jakiekolwiek owoce. Jednak przetestowałem kod i projekt za pomocą szybkiego prototypu, który zbudowałem przy użyciu modułów z jednego z moich poprzednich projektów; możesz obejrzeć wideo tutaj.

Zalecana: