
Witam.
Jestem studentem Politechniki Gdańskiej. W tym semestrze jako projekt wykonywany w ramach zajęć wymyśliliśmy sobie zdalnie sterowany samochód za pomocą smartfona. Projekt wykonuję razem z kolegą, a ponieważ jest on już praktycznie ukończony, czas na prezentację

Główne założenia projektu:
- Sterowanie za pomocą Bluetooth,
- Sterownik steruje dwoma serwomechanizmami (przyspieszenie, skręt).
- W pełni konfigurowalny sterownik: trymery, ustawienie punktu 0, ustawienie położeń awaryjnych.
- Sterownik posiada zabezpieczenia przed utratą łączności i zawieszeniem się procesora(watchdog).
- Wykorzystanie czujników telefonu do sterowania.
W ramach projektu powstały:
- Elektronika sterownika: układ oparty o mikrokontroler Atmega8 oraz moduł bluetooth z USART(profil SPP),
- Oprogramowanie sterownika.
- Aplikacja na system Android sterująca sterownikiem.
Przebieg prac:
1. Poszukiwania.
Żeby było czym sterować zaczęliśmy od znalezienia podwozia. Jako że ciężko później było by się podzielić stwierdziliśmy, że zakupimy 2 oddzielne (każdy swoje).
Po poszukiwaniach na znanej platformie handlowej kolega zakupił samochód elektryczny, a ja spalinowy.
W trakcie, gdy szły do nas podwozia, poszukaliśmy jeszcze modułów bluetooth.
Ja zakupiłem BTM-222, natomiast kolega HC-06.
2. Elektronika:
Podczas oczekiwania na części zabraliśmy się za projektowanie elektroniki.
Założenia były takie: dwa wyjścia PWM(do serwomechanizmów), podłączenie modułu bluetooth(USART), zasilanie ze stablilzatora LDO (5V), pomiar napięcia baterii(ADC) - pobór z dzielnika napięcia.
Dodatkowo wyprowadzenie I2C(do podłączenia akcelerometru - opcjonalnie), wyprowadzenie na golpiny wolnych pinów procesora(np. do sterowania światłami

Zaprojektowane zostały płytki pod oba moduły.
3. Wsad mikrokontrolera:
Po złożeniu prototypowego układu nadzszedł czas na oprogramowanie go.
Obsługa wszystkich elementów odbywa się w przerwaniach.
Sterowanie odbywa się za pomocą pakietów danych z sumą kontrolną CRC(z tąd pewność, że przekłamane pakiety nie będą wpływać na sterowanie).
Odbiór pakietu realizuje przerwanie odbioru danych USART. W tym przerwaniu także przepisujemy dane sterowania do odpowiednich rejestrów.
Nad ciągłością transmisji czuwa timer, który ustawia tryb awaryjny. Każdy odebrany poprawny pakiet sterowania resetuje timer.
Ustawienia trymerów, punktu zerowego i awaryjnego przechowuje pamięć EEPROM.
4. Aplikacja mobilna:
Aplikacja mobilna zawiera takie elementy jak wyszukiwanie urządzeń, łączenie/rozłączanie, sterowanie oraz ustawienia.
Sterowanie samochodzikiem odbywa się przy wykorzystaniu akcelerometru w telefonie(wykrywanie orientacji urządzenia).
Skrętem sterujemy przechylając urządzenie jak kierownicą. Przyspieszeniem steruje się suwakiem na ekranie urządzenia, który po puszczeniu powraca do punktu zerowego (z początku chcieliśmy wykorzystać przechylenie urządzenia przód tył, lecz nie jest to zbyt wygodna metoda sterowania).
W ustawieniach z początku odczytujemy z urządzenia parametry, które możemy zmieniać suwakami. Na koniec mamy guzik zapisz, który zapisuje ustawienia w pamięci EEPROM. W przypadku nie zapisania nowe ustawienia będą działać do resetu sterownika.
Kosztów samochodu nie będę przytaczał, bo to rzecz indywidualna.
Koszty sterownika:
Moduł bluetooth(wersje na płytce z pinami, stabilizatorem i konwerterem napięć):
- BTM-222 - 70 zł
- HC-06 - 50 zł
Laminat, kilka zł zależnie od dostępnego formatu.
Drobnica, mikrokontroler i złącza mieszczą się w granicach 15zł.
Wiele godzin spędzonych przy komputerze (pisanie firmware'u i aplikacji na telefon)
To taki po krótce opis.
Czas na zdjęcia


Moduł bluetooth BTM-222 i sterownik

Cały sterownik z zamontowanym modułem.

Cały samochodzik

Kilka zdjęć aplikacji.







//EDIT
Nowe filmiki, nieco lepszej jakości.
//EDIT
Udostępniam schemat sterownika.

Kilka uwag: Rezystory R1 i R2 tworzą dzielnik napięcia do pomiaru napięcia baterii. Dobrze jest tam wsadzić rezystory o dobrej tolerancji. Ich wartość należy dobrać do napięcia zasilania, tak aby na pinie procesora nie było napięcia większego niż 5V. Współczynnik podziału napięcia, póki co jest na sztywno zaszyty w aplikacji i wynosi 2(wartość z ADC mnożymy razy 2). Wartość rezystorów nie jest bardzo "sztywna" - ważne aby nie płynął przez nie zbyt duży prąd. (Przy baterii 6V i 20komach płynie prąd około 0,3mA(wiadomo, będzie trochę większy, bo napięcie jest wyższe od znamionowego)).
Będzie też płytka.
Póki co w schemacie jest mała skucha.
Zasilanie serw powinno być z oddzielnego stabilizatora(jeśli chcemy zasilać baterią o napięciu większym niż 6V) lub prosto z baterii(gdy bateria ma do 6V).
W przeciwnym przypadku będzie nam się zawieszał moduł bluetooth lub procek przez zakłócenia w zasilaniu. Płytkę udostępnię po poprawkach.
Źródeł w dalszym ciągu nie udostępniam.
Cool? Ranking DIY