Do budowy pojazdu użyto gotową platformę jezdną, dzięki czemu część mechaniczna jest prosta w wykonaniu, nie będziemy tracili czasu na wykonywanie elementów pojazdu, a montaż sprowadza się do zamocowania za pomocą śrub gotowych elementów. Platformę przed i po zmontowaniu pokazano na fotografiach 1 i 2.
Platforma ma wiele otworów montażowych, dzięki czemu można łatwo zamontować dodatkowy osprzęt używając śrub i gwintowane tulejki dystansujące. Na fotografiach 3...5 widoczne są szczegóły montażu i rozmieszczenie osprzętu. Wszystkie komponenty połączono zgodnie ze schematem montażowym zamieszczonym na rysunku 6.
Niezbędne komponenty:
|
Do sterowania pojazdem służy smartfon lub inne urządzenie z systemem Android i zainstalowaną aplikacją Vehicle_v1. Ekran aplikacji pokazano na rysunku 7. Na początek, na ekranie startowym należy wybrać urządzenie Bluetooth, z którym aplikacja ma się połączyć - chodzi o Serial Adapter, ponieważ tak jest rozpoznawany układ BTM222 zamontowany w module AVT1635.
Po nawiązaniu połączenia z pojazdem zostanie wyświetlone ekran, jak na rysunku 8, a na płytce Arduino powinna zaświecić się dioda LED informująca o poprawnym połączeniu. W górnej linii okna aplikacji jest wyświetlony status pojazdu: "Stop" oznacza pojazd zatrzymany, "GO!!!" to pojazd w ruchu.
Kolejne trzy linie "X=", "Y=" oraz "Z=" zawierają dane odczytane z akcelerometru. Ostatnia linia przedstawia treść komendy wysyłanej do pojazdu - ma ona postać "n x wartość Y, wartość Z n".
Przycisk "Reset" służy do wyzerowania wartości współrzędnych x, y, z w położeniu neutralnym - zerowanie należy wykonać przed każdą jazdą. Dopóki przycisk "Go!" Jest zwolniony, do pojazdu dociera komenda "x0,0" (pojazd zatrzymany). Dopiero, gdy przycisk "Go!" jest wciśnięty i trzymany, parametry komendy przybierają wartości niezerowe, co pokazano na rysunku 9.
Program sterujący pojazdem napisano w środowisku Arduino. Program wykonuje dwa ważne zadania. Pierwsze, to odczytywanie danych z portu szeregowego UART, które są odbierane za pomocą modułu Bluetooth. Wśród nich wyszukiwane są ciągi w postaci "n x Y , Z n". Symbol "n" to znak nowej linii; "x" - umowny znacznik początku komendy; "Y", "Z" - odczytane i przetworzone dane z akcelerometru w zakresie -99...99 oraz przecinek oddzielający parametry.
Procedurę odpowiedzialną za wyszukiwanie komend zamieszczono na listingu 1. Ponadto, program sprawdza czas pomiędzy komendami. Jeśli przez długi czas nie zostanie odebrana prawidłowa komenda, to pojazd automatycznie zatrzyma się.
Odpowiada za to procedura z listingu 2. Kolejnym ważnym zadaniem programu jest obliczanie wartości współczynników PWM dla czterech kanałów na podstawie odebranych dwóch wartości vectX i vectY. Sposób wyznaczania współczynnika wypełnienia ilustruje listing 3.
Program aplikacji sterującej dla smartfona został napisany w środowisku Android Studio. Pełne źródła obu programów dostępne są w materiałach dodatkowych do projektu.
KS