Autor: Dondu
Artykuł jest częścią cyklu: Robotyka - Teoria oraz kurs budowy robotów.
Zanim rozpoczniemy projektowanie schematu modułu głównego robota należy zrobić bilans zapotrzebowania na prąd całego robota z wyjątkiem samych silników.
Zgodnie z decyzjami wstępnymi musimy zasilać część sterującą robotem z napięcia 4,5 - 5,5V. Wasze roboty będą zasilane ze źródeł o różnych napięciach i prądach dlatego też, aby uniezależnić się od źródła zasilania, które wybierzecie wyposażymy naszą płytę główną we własny regulator napięcia.
Nasz układ będzie opracowany w następujący sposób (przykład z akumulatorem 7,4V):
RoDonM8 - Podział zasilania robota. |
W zależności od zastosowanego sterownika silników może zaistnieć potrzeba zasilania jego części logicznej napięciem niższym niż to, które będzie sterowało silnikami, co pokazałem na powyższym rysunku. Warto byłoby więc zasilać ten fragment sterownika z tego samego regulatora napięcia co moduł główny robota.
Istotnym parametrem jest w naszym przypadku prąd jakiego oczekujemy od regulatora LDO umieszczonego w module głównym RoDonM8-MB (Main Board). Dlatego:
Powinniśmy wstępnie policzyć sumaryczną wartość prądu wszystkich elementów zasilanych z regulatora LDO.
Zsumujemy oczywiście tylko najistotniejsze wartości prądów liczone co najmniej w miliamperach, a na pozostałe przyjmiemy dodatkowy zapas (margines bezpieczeństwa) w trakcie wyboru konkretnego regulatora dla naszego robota. Pod uwagę należy wziąć:
1. Mikrokontroler
W decyzjach wstępnych ustaliliśmy, że nasz mikrokontroler dla wybranej częstotliwości kwarcu 16MHz i napięciu zasilania 5V będzie pobierał około 11mA:
ATmega8a - Charakterystyka prądowa w funkcji częstotliwości zegara i wartości napięcia zasilania. |
Do bilansu przyjmujemy: 11mA
2. Pamięć SRAM
Także w decyzjach wstępnych wybraliśmy pamięć SRAM, którą będzie 23LCV1024. Zobaczmy więc jakie zapotrzebowanie dot. prądu jest przez nią wymagane. Zaglądamy do datasheet i znajdujemy parametr prądu pracy (ang. Operating current):
Pamięć SRAM 23LCV1024 Parametr prądu pobieranego w czasie pracy. |
Z tabelki wynika, że prąd ten przy zasilaniu pamięci z 5,5V i pracy z częstotliwością 20MHz z reguły wynosi 3mA, ale może sięgnąć nawet 10mA. Z naszego punktu widzenia do bilansu sumarycznego prądu powinniśmy przyjąć oczywiście maksymalny możliwy prąd, czyli 10mA.
Do bilansu przyjmujemy: 10mA
3. Odbiornik podczerwieni
Kolejnym elementem będzie odbiornik podczerwieni. Ponieważ producentów jest kilku, a odbiorniki te nie są specjalnie wymagające pod kątem poboru prądu (nie emitują światła tylko na nie reagują), to sprawdzimy to na przykładowym odbiorniku z rodziny TSOP11:
Odbiornik podczerwieni z rodziny TSOP11 Parametry poboru prądu w czasie pracy. |
W nowszych wersjach odbiorników podczerwieni prądy z reguły są niższe.
Do bilansu przyjmujemy: 1,5mA
4. Regulator LDO
Regulator LDO oprócz stabilizowania napięcia na wyjściu, także "pożera" nam nieco energii. Parametrem, który określa wielkość tego prądu jest Quiescent Current dla przypadku, w którym istnieje jakiś prąd wychodzący z regulatora napięcia.
Prąd Quiescent Current może wynosić od mikroamperów do wielu miliamperów.
Na przykład LF50C :
Regulator LDO z rodziny LFxx Parametry prądu quiescent current. |
Dokumentacja pokazuje, że w momencie gdy nie pobieramy z regulatora żadnego prądu, to on sam zużywa około 0,5-1mA. Ale jeżeli pobieramy 500mA, to dodatkowo regulator zużywa na własne potrzeby nawet 12mA (w skrajnym przypadku). Opisałem to dokładnie w linku powyżej.
Do bilansu przyjmujemy: 12mA
Zgodnie z decyzjami wstępnymi jako czujniki linii wykorzystamy transoptory odbiciowe, które zawierają w sobie źródło światła w postaci diod LED. Wyprodukowanie światła niestety kosztuje, a ceną jest spory prąd przewodzenia diody, o czym pisałem w artykule: Transoptor odbiciowy: Zależności prądów diody i kolektora oraz powierzchni
Na przykładzie transoptora CNY70 możemy więc ustalić, że maksymalny możliwy prąd diody wynosi 50mA:
Transoptor odbiciowy CNY70 Maksymalny możliwy prąd diody LED. |
Nie będziemy oczywiście przekraczać maksymalnego prądu diody, ale jakiś musimy przyjąć do naszego bilansu. Dlatego popatrzymy na wykres zależności prądu kolektora fototranzystora transoptora od napięcia emiter-kolektor i prądu diody (dla oświetlanej testowej powierzchni - opisałem to w linku powyżej):
Największą przyrost odpowiedzi tranzystora (prądu kolektora) uzyskamy w bezpiecznym przedziale prądu diody IF zawierającego się między krzywymi 10mA i 20mA. To duży przedział pozwalający nam na regulację świecenia diod w zależności od rodzaju i stanu podłoża oraz śledzonej linii.
Dlatego bezpiecznie byłoby gdybyśmy przyjęli, że jedna dioda transoptora będzie wymagała od nas prądu około 20mA.
Ile transoptorów będzie w czujniku linii?
Zgodnie z decyzjami wstępnymi w RoDonM8 do odczytu listwy czujników mamy używać przetwornik ADC. W Atmega8A mamy do dyspozycji zaledwie osiem kanałów ADC. Dwa z nich wykorzystamy do pomiaru prądów silników, dla czujników linii pozostanie nam więc co najwyżej sześć.
Sześć transoptorów to mało, o czym pisałem w artykule: Linefollower - Listwa czujników linii
a na pewno chcemy, by robot nie zajął ostatniego miejsca na zawodach :-)
Dlatego będziemy się starli w jakiś sposób zwiększyć ilość dostępnych kanałów, przyjmijmy więc na wszelki wypadek, że mamy co najmniej dwa razy tyle, czyli 12 sztuk. Stąd spodziewane zapotrzebowanie na prąd wynosi:
Do bilansu przyjmujemy: 240mA
6. Sterownik silników
Aby robot jechał musimy opracować sterowniki silników, po jednym dla prawej i lewej strony robota. Możemy także skorzystać z jednego wspólnego sterownika dla dwóch silników.
Sterownik będzie podawał silnikowi prąd bezpośrednio z akumulatorów, ale do poprawnej pracy w zależności od wersji może potrzebować także zasilania z naszego regulatora. Dotyczy to sytuacji, w której sterownik zawiera elementy logiki (kontrola pracy sterownika), a te nie mogą być zasilane z tego samego źródła co silnik, ze względu na:
- różnicę napięcia (silniki często potrzebują znacznie wyższego napięcia),
- generowane przez silniki zakłócenia.
Z tych powodów, z reguły scalone sterowniki silników posiadają dwa piny zasilające. Dla przykładu jedne z najbardziej popularnych, to scalone mostki-H L293D i L298:
Zaglądamy więc do tabelek w poszukiwaniu napięć i prądów pobieranych przez część logiczną w/w pokazanych sterowników:
Kolory pinów na rysunkach odpowiadają kolorom ich parametrów w tabelach.
Na powyższych fragmentach możesz znaleźć informacje dot. napięcia i prądu części logicznej oraz części dot. stricte silników. W tym momencie jednak interesuje nas ile prądu pobiera część logiczna sterownika, ponieważ będziemy ją zasilać z regulatora LDO znajdującego się w naszym module głównym.
Interesuje nas więc parametr Iss. W przypadku L298 musimy się przygotować na 36mA, ale w przypadku L293D, już nawet 60mA (!).
Jak widzisz to są całkiem pokaźne wartości, a związane jest to z tym, że wykonane są w starej technologi. Jeżeli zastosujesz mostek wykonany w technologi MOS, jak np. TB6612FNG:
to możesz się spodziewać znacznie niższego prądu części logicznej (tutaj pin Vcc, czyli szukamy parametru prądu Icc):
i stwierdzamy, że jest już przyzwoicie, bo maksymalnie 2,2mA :-)
W niniejszym cyklu artykułów będę prezentował różne wersje sterowników, stąd przyjmę bezpieczną granicę 100mA. Ty jednak możesz przyjąć ją według tego jaki sterownik zastosujesz.
Do bilansu przyjmujemy: 100mA
7. Pozostałe pożeracze prądu
Jednym z nich mogą być dodatkowe diody LED po jednej dla każdego koła, by móc naocznie lub za pomocą kamery obserwować, czy koło przyspiesza, czy też hamuje.
Diody LED, to "wydatek" rzędu kilkunastu mA na jedną z nich. Przyjmujmy więc, że łącznie będzie to 15mA, stąd dla dwóch diod otrzymamy 30mA.
Jeżeli w swoim robocie planujesz wykorzystać jeszcze inne elementy, które będą zasilane z regulatora LDO na płytce głównej RoDonM8, to powinieneś je tutaj uwzględnić.
Do bilansu przyjmujemy: 30mA
Prąd sumaryczny (bilans)
Sumujemy i otrzymujemy:
Funkcja | Wartość maksymalna [mA] |
---|---|
1. Mikrokontroler | 11 |
2. Pamięć SRAM | 10 |
3. Odbiornik podczerwieni | 1,5 |
4. Regulator LDO | 12 |
5. Czujniki podczerwieni | 240 |
6. Sterownik silników | 100 |
7. Inne | 30 |
Razem: | 404,5 |
… po czym łapiemy się za głowę mówiąc: Aż tyle?!
Tak, aż tyle, ale pamiętaj, że przyjęliśmy wstępne maksymalne zapotrzebowanie, na które musimy być przygotowani. W zależności od konfiguracji robota, spokojnie zmniejszy się ono o co najmniej 100mA.
400mA - no no, to ze stabilizatora może się zrobić niezła grzałka :). A z akumulatora będzie pobierany jeszcze niemały prąd silników. Z mojego punktu widzenia, w takim robociku jednak priorytetem są osiągi, a w mniejszym stopniu oszczędność baterii - na zawodach czas jego pracy jest rzędu jednej minuty. Ale z drugiej strony mniejszy pobór prądu = mniejszy akumulator = lepsze osiągi.
OdpowiedzUsuńDruga sprawa: widzę że zabawka robi się coraz droższa: transoptory 12x2,30zł, ram 12zł, sterownik dc 10zł, do tego pewnie olbrzymi koszt silników wraz z podwoziem.
Trzecia sprawa: jak już widzę że idziemy na całość, a także interesuje nas akwizycja danych do analizy, to może warto zastosować na pokładzie akcelerometr? Jeśli nie w tej wersji, bo widzę brak wolnego I2C, to może w kolejnej z ATXMEGA?
Dziękuję z merytoryczne uwagi i pytania :-)
UsuńAd. 1
W poprzednich artykułach już zwracałem na to uwagę, że należy minimalizować pobór prądu i wagę użytych elementów wszędzie tam gdzie jest to możliwe właśnie po to, by nie trzeba było taszczyć na garbie niepotrzebnie dużego akumulatora zgodnie z wyznawaną przeze mnie dewizą: "Ziarnko do ziarnka ..." :-)
W niniejszym artykule pokazuję jedynie jak należy podchodzić do tego etapu planowania, kiedy jeszcze nie wiemy jakie elementy zastosujemy. W tym cyklu artykułów, pokaże także jak zbudować własny mostek na MOSFET-ach, ale użyjemy także innej wersji sterownika, być może jednego albo wszystkich z wymienionych powyżej. Dlatego artykuł pisany jest w sposób "ogólny".
Dlatego faktyczne prądy będziemy liczyć za każdym wariantem, a tutaj przyjmujemy tylko maksymalny możliwy przypadek, który najprawdopodobniej nam się nie przytrafi.
Ad 2.
Robotyka nie jest tania, jeżeli korzysta się z nowych elementów. Ale większość z młodych ludzi ma dostęp do samochodów sterowanych itp. lub ma dostęp do kogoś, kto takie rzeczy ma w koszu z zepsutymi zabawkami.
Poza tym istnieje Allegro, na którym można kupić za grosze używane:
- silniki DC,
- gotowe podwozia starych modeli RC wraz z silnikami,
- małe zabawki zdalnie sterowane (czterokołowce bez skrętnych kół z dwoma silnikami) - takie podwozie zaprezentuję w mojej wersji RoDonM8 (kupione za 17zł z wysyłką - trzeba szukać i czekać),
- itd.
Podwoziem może być kawałek PCB - to zależy tylko od czytelnika. Oczywiście jeżeli chce startować w zawodach i zdobywać medale, to koszty są znacznie większe.
Z ankiety którą przeprowadziłem przed rozpoczęciem cyklu wynika, że zdecydowana większość czytelników, jest w stanie sporo gotówki na ten cel wyłożyć. Dlatego w tym cyklu będą tanie oraz droższe elementy, tak by każdy mógł dopasować się do swoich zasobów finansowych.
Ad. 3
Akcelerometr będzie w zaawansowanym robocie z XMega, ale nie tym który aktualnie Tmf tworzy (RoDonXM) równolegle do mojego RoDonM8 (zgodność z pinologią) tylko w następnym, którym zajmiemy się zimą. Tam skupimy się na śrubowaniu osiągów do granic możliwości, a akcelerometr, będzie jednym z najważniejszych jego elementów :-)
Pinów w XMEGA E5 mi wystarczy, pamięci (użytkownik może włożyć wersję z 32 kB FLASH) też, jak będę robił płytkę to wrzucę footprint pod akcelerometr. Jacek, tylko jak będziesz ją sprawdzał, to przypomnij mi o tym proszę gdybym zapomniał :) Ew. jest jeszcze jedna możliwość - na Allegro są aukcję modułu 9DOF lub 11 DOF za jakieś grosze. Można na płytce umieścić złącze dla takiego modułu. Nie będzie problemów z przylutowaniem elementów.
UsuńTylko jeszcze nie wiemy, jaki będzie akcelerometr :-)
UsuńNa razie go nie dodawaj, zrobimy go jako osobny moduł do płytki głównej.
Wrzuć na allegro hasło moduł akcelerometru - wychodzą całkiem fajne, małe i wygodne do połączenia. Biorąc pod uwagę w jakich są obudowach wygodniej kupić moduł - przylutować je naprawdę nie jest łatwo.
Usuń