Spisu treści:

Samochód robota z Bluetooth, kamerą i aplikacją MIT Inventor2: 12 kroków (ze zdjęciami)
Samochód robota z Bluetooth, kamerą i aplikacją MIT Inventor2: 12 kroków (ze zdjęciami)

Wideo: Samochód robota z Bluetooth, kamerą i aplikacją MIT Inventor2: 12 kroków (ze zdjęciami)

Wideo: Samochód robota z Bluetooth, kamerą i aplikacją MIT Inventor2: 12 kroków (ze zdjęciami)
Wideo: Kontroler LED Arduino Bluetooth z modułem Bluetooth Android HC-05 | Twórca aplikacji MIT 2024, Listopad
Anonim
Image
Image
Części i oprogramowanie
Części i oprogramowanie

Czy kiedykolwiek chciałeś zbudować własny samochód-robot? Cóż… to twoja szansa!!

W tej instrukcji pokażę, jak stworzyć samochód robota sterowany przez Bluetooth i aplikację MIT Inventor2. Pamiętaj, że jestem nowicjuszem i że jest to moja pierwsza intuicyjna, więc proszę, bądź delikatny w swoich komentarzach.

Istnieje wiele instrukcji, ale w tym próbowałem połączyć wiele funkcji, takich jak: przesyłanie strumieniowe z kamery, unikanie przeszkód, ultradźwiękowy czujnik zasięgu, skaner Larson (z charlieplexingiem) i monitorowanie baterii z aplikacją na Androida!

Zacznijmy więc i poznajmy Frankiego (wykorzystuje pomysły z wielu miejsc… stąd Robo Frankenstein)

Krok 1: Części i oprogramowanie

Części i oprogramowanie
Części i oprogramowanie
Części i oprogramowanie
Części i oprogramowanie

Tutaj, w moim rodzinnym mieście, ciężko jest zdobyć wszystkie części, dlatego większość z nich udało mi się zdobyć na www.aliexpress.com

Szacuję, że projekt można zbudować za 25 - 30 USD bez uwzględniania starego telefonu komórkowego.

  • Podwozie samochodu: 3 koła, 2 silniki 6V (9 USD)
  • Arduino Nano (2 USD)
  • Bluetooth HC-05 (3 do 4 USD)
  • Sterownik silnika L293D do napędzania silników kół (1,50 USD za partię 5 sztuk)
  • Stara komórka z kamerą i Wi-Fi
  • Czujnik ultradźwiękowy HC-SR04 do pomiaru do pobliskiego obiektu (1 USD)
  • 6 diod LED do skanera Larson
  • ATtiny85 dla skanera Larson (1 USD)
  • Deska do krojenia chleba (1 USD)
  • Przewody
  • Rezystor 100K Ohm (4)
  • Rezystor 1K Ohm (2)
  • Rezystor 2K Ohm (1)
  • Rezystor 270 Ohm (3)
  • Brzęczyk

Oprogramowanie:

  • IDE Arduino
  • Kamera internetowa IP (dla starego Androida komórkowego)
  • MIT App Inventor2: Ta aplikacja jest świetna, ale działa tylko w systemie operacyjnym Android (bez iPhone'ów… przepraszam!)

Krok 2: Proces budowy

Proces konstruowania
Proces konstruowania
Proces konstruowania
Proces konstruowania
Proces konstruowania
Proces konstruowania
Proces konstruowania
Proces konstruowania

Podwozie samochodu jest bardzo łatwe w montażu; ma 2 silniki 6V, które zasilają tylne koła i 4 akumulatory.

Samochód Robota jest sterowany przez Bluetooth i Wi-Fi. Bluetooth steruje komunikacją szeregową między samochodem a aplikacją MIT App inventor2, a Wi-Fi służy do komunikacji z kamerą (stary telefon komórkowy) zainstalowaną z przodu samochodu.

Do tego projektu użyłem dwóch kompletów baterii: arduino zasilane jest baterią 9V, a silniki samochodowe 6V (cztery baterie 1,5V AA).

Arduino Nano jest mózgiem tego projektu, który steruje samochodem, brzęczykiem, ultradźwiękowym czujnikiem zasięgu HC-SR04, Bluetooth HC-05, skanerem Larson (ATtiny85) oraz monitoruje baterie. Bateria 9V trafia do Vin (pin 30), a pin 27 Arduino daje regulowane zasilanie 5V płytce stykowej. Trzeba związać razem wszystkie masy ze wszystkich układów scalonych i akumulatorów.

W załączeniu schemat obwodu został wykonany w programie Excel (przepraszam… następnym razem spróbuję Fritzing). Wszystko połączyłem za pomocą płytki stykowej i złączy męskich do męskich, moje wygląda jak gniazdo szczurów.

Krok 3: Sterownik silnika L293D

Sterownik silnika L293D
Sterownik silnika L293D
Sterownik silnika L293D
Sterownik silnika L293D

L293D to poczwórny, wysokoprądowy sterownik półH, zaprojektowany do dostarczania dwukierunkowych prądów do 600 mA przy napięciach od 4,5 V do 36 V. Służy do napędzania kół samochodowych.

Jest zasilany przez pakiet akumulatorów 6V (cztery 1,5V AA) dla silników i wykorzystuje 5V do logiki pochodzącej z regulowanego 5V (pin 27) w Arduino Nano. Połączenia pokazano na załączonym schemacie.

Nie było potrzeby instalowania go w radiatorze.

Krok 4: HC-05 Bluetooth

HC-05 Bluetooth
HC-05 Bluetooth

HC-05 Bluetooth jest zasilany napięciem 5V (arduino pin 27), ale ważne jest, aby zrozumieć, że poziom logiczny to 3,3V, czyli komunikacja (Tx i Rx) z 3,3V. Dlatego Rx musi być skonfigurowany z maksymalnym napięciem 3,3V, co można osiągnąć za pomocą przetwornika z przesuwnikiem poziomu lub, jak w tym przypadku, z dzielnikiem napięcia za pomocą rezystorów 1K i 2K, jak widać w układzie.

Krok 5: Monitor baterii

W celu monitorowania poziomu baterii ustawiłem dzielniki napięcia tak, aby napięcie było poniżej 5V (maksymalny zasięg Arduino). Dzielnik napięcia zmniejsza mierzone napięcie do zakresu wejść analogowych Arduino.

Wykorzystywane są wejścia analogowe A4 i A6 oraz wysokie rezystory (100K omów), aby nie obciążać zbytnio baterii w procesie pomiarowym. Musimy iść na kompromis, jeśli rezystory są zbyt niskie (10K omów), mniejszy efekt obciążenia, odczyt napięcia jest dokładniejszy, ale większy pobór prądu; jeśli są zbyt wysokie (1M omów), większy efekt obciążenia, odczyt napięcia jest mniej dokładny, ale mniejszy pobór prądu.

Monitorowanie baterii odbywa się co 10 sekund i jest wyświetlane bezpośrednio w telefonie komórkowym kontrolera.

Jestem pewien, że w tej części jest dużo miejsca na ulepszenia, ponieważ czytam z dwóch analogowych pinów, a wewnętrzny MUX przełącza się między nimi. Nie uśredniam wielu pomiarów i może właśnie to powinienem robić.

Pozwólcie, że wyjaśnię następującą formułę:

//Odczytaj napięcie z pinu analogowego A4 i wykonaj kalibrację dla Arduino:

napięcie1 = (analogowyOdczyt(A4)*5,0/1024,0)*2,0; //8,0V

Płytka Arduino nano zawiera 8-kanałowy, 10-bitowy przetwornik analogowo-cyfrowy. Funkcja analogRead() zwraca liczbę z zakresu od 0 do 1023, która jest proporcjonalna do ilości napięcia przyłożonego do pinu. Daje to rozdzielczość między odczytami: 5 woltów / 1024 jednostek lub 0,0049 woltów (4,9 mV) na jednostkę.

Dzielnik napięcia zmniejsza napięcie o połowę i aby uzyskać prawdziwe napięcie należy pomnożyć przez 2!!

WAŻNE: Jestem pewien, że istnieje wydajniejszy sposób zasilania arduino niż sposób, w jaki to robię!! Jako nowicjusz nauczyłem się na własnej skórze. Pin Arduino Vin wykorzystuje liniowy regulator napięcia, co oznacza, że z baterią 9V spalisz dużą część mocy w samym regulatorze liniowym! Niedobrze. Zrobiłem to w ten sposób, bo było szybko i po prostu dlatego, że nie wiedziałem lepiej…ale bądź pewien, że w Robo Frankie w wersji 2.0 na pewno zrobię to inaczej.

Myślę (na głos), że lepszym sposobem może być zasilacz impulsowy DC DC i akumulator litowo-jonowy. Twoja życzliwa sugestia będzie mile widziana…

Krok 6: Ultradźwiękowy czujnik zasięgu HC-SR04

Ultradźwiękowy czujnik zasięgu HC-SR04
Ultradźwiękowy czujnik zasięgu HC-SR04

HC-SR04 to ultradźwiękowy czujnik zasięgu. Ten czujnik zapewnia pomiar od 2 cm do 400 cm z dokładnością do 3 mm. W tym projekcie służy do omijania przeszkód, gdy osiąga 20 cm lub mniej, a także do pomiaru odległości do dowolnego obiektu, który jest wysyłany z powrotem do telefonu komórkowego.

Na ekranie telefonu komórkowego znajduje się przycisk, który należy kliknąć, aby poprosić o odległość do pobliskiego obiektu.

Krok 7: Skaner Larsona

Skaner Larsona
Skaner Larsona
Skaner Larsona
Skaner Larsona
Skaner Larsona
Skaner Larsona

Chciałem dołączyć coś zabawnego, więc dołączyłem skaner Larsona, który przypomina K. I. T. T. z Knight Rider.

Do skanera Larsona użyłem ATtiny85 z charlieplexingiem. Charlieplexing to technika sterowania multipleksowym wyświetlaczem, w której stosunkowo niewiele pinów we/wy mikrokontrolera jest używanych do sterowania szeregiem diod LED. Metoda wykorzystuje trójstanowe możliwości logiczne mikrokontrolerów w celu zwiększenia wydajności w porównaniu z tradycyjnym multipleksowaniem.

W tym przypadku używam 3 pinów z ATtiny85 do zapalenia 6 diod LED!!

Możesz zapalić diody "X" z N pinami. Użyj następującego wzoru, aby obliczyć, ile diod LED możesz napędzać:

X= N(N-1) diody LED z N pinami:

3 piny: 6 diod LED;

4 piny: 12 diod LED;

5 pinów: 20 diod LED… masz pomysł;-)

Prąd płynie od dodatniego (anoda) do ujemnego (katoda). Końcówka strzałki to katoda.

Należy zauważyć, że pin 1 (w kodzie Arduino IDE) odnosi się do fizycznego pinu 6 w ATtiny85 (patrz załączony pinout).

W załączeniu kod, który należy wgrać do ATtiny85 sterującego skanerem Larson. Nie opisuję, jak przesłać kod do ATtiny85, ponieważ istnieje wiele instrukcji, które robią to, jak ten.

Krok 8: Kod

Kod
Kod

Załączam kod, który należy wgrać do ATtiny85 sterującego skanerem Larson oraz kod dla Arduino nano.

Jeśli chodzi o Arduino nano, wykorzystałem część kodów z innych instrukcji (tutaj) i wprowadziłem zmiany do moich potrzeb. Dołączyłem schemat blokowy (również słowem, aby uzyskać wyraźniejszy obraz) kodu, aby lepiej zrozumieć, jak działa Switch - Case.

Ważne: Aby wgrać kod CarBluetooth do Arduino nano, należy odłączyć Rx i Tx od modułu Bluetooth HC-05!

Krok 9: Aparat

Kamera
Kamera
Kamera
Kamera

Aplikację IP Webcam należy pobrać ze sklepu Play i zainstalować na starym telefonie komórkowym. Sprawdź preferencje wideo, dostosuj odpowiednio rozdzielczość i na koniec przejdź do ostatniego polecenia „Uruchom serwer”, aby rozpocząć transmisję. Nie zapomnij włączyć Wi-Fi w telefonie komórkowym !!

Krok 10: MIT App Inventor2

Wynalazca aplikacji MIT2
Wynalazca aplikacji MIT2

MIT App inventor2 to narzędzie oparte na chmurze, które pomaga tworzyć aplikacje w przeglądarce internetowej. Ta aplikacja (tylko dla telefonów komórkowych opartych na Androidzie) może być następnie przesłana do komórki i sterować samochodem robota.

Załączam kod.apk i.aia, abyś mógł zobaczyć, co zrobiłem i modyfikować, jak chcesz. Użyłem kodu z internetu (aplikacja MIT) i dokonałem własnych modyfikacji. Ten kod steruje ruchem samochodu robota, odbiera sygnał z czujnika ultradźwiękowego, włącza światła i wydaje sygnał dźwiękowy. Odbiera również sygnał z akumulatorów, informujący nas o poziomie napięcia.

Za pomocą tego kodu będziemy mogli odbierać dwa różne sygnały z samochodu: 1) odległość do pobliskiego obiektu oraz 2) napięcie z akumulatorów silnika i arduino.

W celu zidentyfikowania otrzymanego ciągu szeregowego umieściłem w kodzie Arduino flagę określającą typ wysyłanego ciągu. Jeśli Arduino wysyła odległość zmierzoną z czujnika ultradźwiękowego, wysyła znak „A” przed napisem. Za każdym razem, gdy Arduino wysyła poziomy baterii, wysyła flagę ze znakiem „B”. W kodzie MIT App inventors2 przeanalizowałem ciąg szeregowy pochodzący z Arduino i sprawdziłem, czy nie ma tych flag. Jak powiedziałem, jestem nowicjuszem i jestem pewien, że są na to bardziej skuteczne sposoby i mam nadzieję, że ktoś może mnie lepiej oświecić.

Wyślij Arduino_Bluetooth_Car.apk na swój telefon komórkowy (przez e-mail lub Dysk Google) i zainstaluj go.

Krok 11: Podłącz telefon komórkowy do samochodu RC

Podłącz telefon komórkowy do samochodu RC
Podłącz telefon komórkowy do samochodu RC
Podłącz telefon komórkowy do samochodu RC
Podłącz telefon komórkowy do samochodu RC

Przede wszystkim włącz wi-fi w starym telefonie komórkowym (tym w robocie RC).

W telefonie komórkowym kontrolera włącz Wi-Fi, Bluetooth i otwórz Arduino_Bluetooth_Car.apk, który właśnie zainstalowałeś. Na końcu ekranu (przewiń w dół, jeśli go nie widzisz) zobaczysz dwa przyciski: Urządzenia i POŁĄCZ. Kliknij Urządzenia i wybierz Bluetooth z samochodu RC (powinno to być coś HC 05), a następnie kliknij POŁĄCZ i powinieneś zobaczyć komunikat POŁĄCZONY w lewym dolnym rogu ekranu. Za pierwszym razem zostaniesz poproszony o hasło (wpisz 0000 lub 1234).

Jest pole, w którym musisz wpisać adres IP swojej starej komórki (komórki, która jest w twoim RC Car), w moim przypadku jest to

Ten numer IP można wykryć w routerze Wi-Fi. Musisz wejść do konfiguracji routera, wybrać Lista urządzeń (lub coś podobnego w zależności od marki routera) i powinieneś być w stanie zobaczyć swoje stare urządzenie komórkowe, kliknij je i wprowadź ten numer IP w tym polu.

Następnie wybierz KAMERA i powinieneś zacząć oglądać transmisję z kamery z Twojego samochodu RC.

Krok 12: Gotowe

Gotowe!
Gotowe!

Gotowe! Zacznij się tym bawić

Przyszłe zmiany: Wymienię baterię 9V na baterie litowo-jonowe w celu ich naładowania i użyję regulatora napięcia DC-DC podwyższającego napięcie, a także chcę ulepszyć monitor baterii poprzez wygładzenie (uśrednienie) odczytów analogowych. Nie planuję włączenia sztucznej inteligencji już …;-)

Wziąłem udział w moim pierwszym konkursie instruktażowym… więc proszę o głos;-)

Zalecana: