Cel i założenia projektowe
Celem projektu jest opracowanie i
praktyczne wykonanie sterownika zdalnie sterowanego pojazdu spełniającego
następujące założenia:
· Wykonany pojazd powinien być sterowany zdalnie
przy użyciu wybranego sposobu transmisji danych na odległość.
· Układ ma zawierać czujniki, informujące
użytkownika o napotkanej przeszkodzie na trasie sterowanego samochodu. Po
wykryciu obiektu, pojazd nie powinien zderzyć się z tą przeszkodą.
·
Zasilanie bateryjne.
W projekcie wykorzystane zostaną gotowe podzespoły mechaniczne takie jak silniki, podwozie oraz układ skrętny.
W projekcie wykorzystane zostaną gotowe podzespoły mechaniczne takie jak silniki, podwozie oraz układ skrętny.
Część sprzętowa
Na rys. 1 przedstawiony został schemat
blokowy układu sterowania pojazdem. Składa się on z: jednostki centralnej,
odbiornika podczerwieni, czujnika odległości, układu sterującego napędem,
układu sterującego położeniem osi kół przednich oraz modułu zawierającego diody
sygnalizacyjne i przyciski
Opis poszczególnych modułów
Jednostka centralna
Jednostka centralna sterownika pojazdu oparta została na mikrokontrolerze AVR rodziny Atmega typu ATMega32.
Do zasilenia jednostki centralnej, wykorzystano stabilizator napięcia LM7805. Napięcie
uzyskane na wyjściu układu podawane jest na porty AVCC, VCC oraz Reset.
W celu poprawnego zasilenia
mikrokontrolera, zastosowano dwa kondensatory monolityczne o wartości 100nF
dołączone do portów AVCC oraz VCC. Ich celem jest odfiltrowanie zbędnych
zakłóceń generowanych na wymienionych wyżej wejściach mikrokontrolera. Wartość
kondensatorów dobrana została zgodnie z notą katalogową.
Sygnał RESET został na stałe podłączony do
napięcia zasilania poprzez rezystor polaryzujący. Użytkownik nie ma możliwości
zerowania mikrokontrolera.
Częstotliwość taktowania procesora została
ustawiona na 8Mhz. Do tego celu wykorzystano wewnętrzny oscylator.
Zastosowanie czujnika odległości pozwoliło zwiększyć bezpieczeństwo pojazdu. Nie zostanie on uszkodzony, ponieważ gdy nastąpi wykrycie przeszkody, samochód zatrzyma się i nie pozwoli użytkownikowi na nią wjechać. Użytkownik zawsze ma możliwość włączenia/wyłączenia czujnika odległości.
Zaprojektowany układ
elektroniczny przymocowany jest śrubami do obudowy samochodu, przez co płytka
jest stabilna i nie ulegnie uszkodzeniu
Nadawanie i odbieranie podczerwieni
W projekcie do komunikacji z modelem pojazdu
wykorzystano transmisję bezprzewodową opartą na modułach odbiorników/nadajników
podczerwieni. Wiąże się to jednak z pewnymi ograniczeniami i problemami.
Pierwszym z nich jest większa moc potrzebna do przeprowadzenia transmisji.
Drugim jest interferencja ze sztucznymi i naturalnymi źródłami światła. Trzecim
i najważniejszym problemem jest ograniczony zasięg transmisji, który zależny
jest od wzajemnego położenia nadajnika i odbiornika oraz warunków
atmosferycznych. W zastosowaniach teleinformatycznych, zaletą tego typu
rozwiązań może być to, że transmisja ta zapewnia nieprzenikalność przez ściany.
Dzięki temu zwiększa się bezpieczeństwo przesyłanych danych oraz brak zakłóceń
pomiędzy systemami zainstalowanymi w innych pomieszczeniach.
Jako odbiornik zastosowano układ scalony TSOP31236
pracujący na częstotliwości 36Khz.
Jako
nadajnik podczerwieni w projekcie zastosowano pilot działający w standardzie
RC5. Podczas wykonywanych testów, problemem i ograniczeniem tego typu
transmisji jest brak możliwości wysyłania dwóch komend jednocześnie. Nie jest
możliwe wciśnięcie przycisku odpowiedzialnego za poruszanie się do przodu i
jednoczesne naciśnięcie przycisku odpowiedzialnego za skręcanie kół pojazdu. Omówienie rozwiązania tego problemu zostało przedstawione w dalszej części opisu projektu.
Sterowanie silnikami
Do sterowania silnikiem wykorzystano układ
scalony L293D pełniący funkcję mostka H.
Mostek H
jest układem elektrycznym umożliwiającym sterowanie silnikami prądu stałego DC. W zależności na który port tego
układu zostanie podane napięcie, będzie to skutkować odpowiednim kierunkiem
obrotu wirnika w silniku.
Układ zasilany
jest dwoma napięciami. Pierwsze, czyli 5V służy do zasilenia układu scalonego.
Drugie, czyli 9V podawane jest na wyjścia 1Y / 2Y oraz 3Y/4Y, które podłączone
są do silników. Konkretna wartość napięcia, jaka będzie podawana zależy od
sygnałów „Jazda_pwm” oraz „Skret_pwm”. W celu odfiltrowania zbędnych zakłóceń,
zastosowano kondensator monolityczny o wartości 100nF. Kondensator został
dobrany zgodnie z notą katalogową układu scalonego.
W celu uniknięcia zbyt dużych skoków
prądowych podczas ruszania samochodu, zastosowano modulację szerokości impulsu
- PWM podawaną na port oznaczony 1-2EN układu scalonego L293D. Do tego celu
wykorzystano licznik Timer0, którego alternatywne wyjście OC0 jest bezpośrednio
podłączone do sygnału „Jazda_pwm”.
Samochód po naciśnięciu
klawisza odpowiedzialnego za jazdę do przodu / tyłu nie rusza z maksymalną prędkością,
lecz stopniowo rozpędza się. Dzięki temu nie występują duże skoki prądowe co
spowoduje dłuższe i bezawaryjne działanie układu.Czujnik odległości
Do wykrywania obiektów znajdujących się przed pojazdem wykorzystano gotowy czujnik odległości. Zasięg maksymalny tego urządzenia wynosi 30cm. Dzięki potencjometrowi, układ ma możliwość dowolnego ustawienia odległości, przy której przeszkoda ma zostać wykryta.
Układ oparty jest na odbiorniku podczerwieni działającym na częstotliwości 38 kHz i zasilany napięciem 5V.
Zasilanie
Samochód zasilany jest z 5 baterii typu AA 1.2V. Napięcie to jest bezpośrednio doprowadzone do mostka H, które jest przekazywane do silników.Układy cyfrowe zasilane są napięciem 5V. W tym celu zastosowano stabilizator napięcia LM7805
Napięcie uzyskane na wyjściu
stabilizatora służy do zasilania modułów:
·
Jednostka Centralna,
·
Odbiornik podczerwieni TSOP31236,
·
Czujnik odległości,
·
Mostek H – L293D.
Oprogramowanie urządzenia
Na początku programu następuje inicjalizacja
mikrokontrolera. W tym miejscu ustawiane są parametry liczników, przerwań oraz
ustawiane są rejestry portów jako wejścia i wyjścia. Za inicjalizację
mikrokontrolera odpowiedzialna jest funkcja sys_init().
Następnie program czeka na nadesłanie
danych z pilota podczerwieni. Po wykryciu przesłanej ramki, następuje proces
sprawdzenia, czy ramka nie zawiera błędów.
Jeżeli wszystko przebiegnie pomyślnie,
następuje sprawdzenie adresu urządzenia, wysłanej komendy i toggle_bit (bit sprawdzający nadesłanie
tej samej komendy ponownie) według następujących instrukcji w programie:
·
command =
IrData & 0b0000000000111111,
·
address =
(IrData & 0b0000011111000000) >> 6,
·
toggle_bit
= (IrData & 0b0000100000000000) >> 11.
Command, address oraz toggle_bit są to dane
zawarte w przesyłanej ramce podczerwieni. W zależności od tego, jaką informację chcemy odczytać z
nadesłanej ramki danych, odpowiednie bity są maskowane. Maskowanie polega na
użyciu operatora binarnego AND pomiędzy ciągiem bitów a maską w celu pozostawienia
tylko tych danych, które potrzebujemy.
Do odbioru i przetworzenia dostarczonej
ramki danych z nadajnika podczerwieni zastosowano gotową bibliotekę autorstwa
Mirosława Kardasia. Na potrzeby projektu została ona zmodyfikowana o obsługę
przycisków na pilocie, które wykorzystywane są do sterowania pojazdem.
Po odebraniu danych wykonywana jest komenda
jaka została wysłana do urządzenia. Jeżeli użytkownik naciśnie przycisk
odpowiedzialny za jazdę pojazdu do przodu/tyłu, ustawiany zostanie znacznik kierunek_przód bądź kierunek_tył. Na schemacie ponieżej zostało
to uproszczone do jednego znacznika FLAGA.
Po
ustawieniu znacznika, jeżeli użytkownik naciśnie przycisk odpowiedzialny za
skręcanie samochodu a wcześniej ustawiony był znacznik kierunek_przód=1 (na schemacie FLAGA=1), to pojazd pojedzie do przodu
jednocześnie skręcając. Prędkość oraz wychylenie przedniej osi kół zależy od
czasu przytrzymania przycisku przez użytkownika. Analogicznie dzieje się w
przypadku skręcania w innych kierunkach.
Jeżeli moduł czujnika odległości będzie
aktywny (domyślnie jest wyłączony, lecz użytkownik ma możliwość go załączyć),
to w momencie wykrycia przeszkody ustawiony zostanie znacznik obiekt=0. Spowoduje to brak możliwości
poruszania się samochodu do przodu. Jedyna dostępna wtedy funkcja pojazdu to
cofanie wraz z możliwością skrętu, bądź wyłączenie modułu czujnika odległości.
Wnioski
Zrealizowany układ spełnia wszystkie
założenia projektowe. Samochód świetnie nadaje się do zabawy. Dzięki sterowaniu
bezprzewodowemu, użytkownika nie musi ograniczać żaden kabel, przez co
sterowanie staje się jeszcze przyjemniejsze. Ze względu na ograniczone
możliwości kontroli, pojazd dobrze sprawuje się w terenie otwartym, gdzie jest
mało przeszkód.
Poniżej w tabeli przedstawione zostały
podstawowe parametry samochodu. Dane te zostały zmierzone i wyliczone na
podstawie przeprowadzonych pomiarów w domu.
Zasięg pilota
|
18m
|
Maksymalna prędkość
|
2 km/h
|
Czas do Vmax
|
1s
|
Zastosowanie czujnika odległości pozwoliło zwiększyć bezpieczeństwo pojazdu. Nie zostanie on uszkodzony, ponieważ gdy nastąpi wykrycie przeszkody, samochód zatrzyma się i nie pozwoli użytkownikowi na nią wjechać. Użytkownik zawsze ma możliwość włączenia/wyłączenia czujnika odległości.
Brak komentarzy:
Prześlij komentarz