Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy
Wałaszek |
©2024 mgr Jerzy Wałaszek
|
Moduły Arduino możesz zatem traktować jak pełnoprawne komputery, ponieważ faktycznie nimi są. Na początek nauki dobrze jest wybrać coś w miarę prostego, aby nie przytłaczał nas ogrom opcji, jednakże nie polecam do tego celu Digisparka, lepszy będzie standardowy moduł Arduino Uno. Digispark wygląda następująco (jest kilka wersji, ale ich wygląd jest dosyć podobny):
Płytka Arduino Digispark jest bardzo mała. Ma wymiary około 19 x 17,5 mm. Pomimo tego posiada dosyć duże możliwości jak na swój rozmiar i gwarantuję, że dostarczy wiele zabawy przy programowaniu.
W Digisparku zastosowano dwa układy scalone:
Układ programuje się z poziomu środowiska Arduino IDE poprzez port USB (może być potrzebny odpowiedni kabel USB). Jeśli chcesz się zająć programowaniem tego modułu, to najpierw zainstaluj na swoim komputerze odpowiednie środowisko programistyczne. Dokładną instrukcję znajdziesz tutaj. Dalej musisz opanować podstawowe zasady programowania w języku C. Zaopatrz się w kilka modułów Arduino Digispark (koszt jednego to około 7...9zł za chiński klon). Przylutuj do płytki goldpiny. Zdobądź płytkę stykową z zestawem przewodów. Każdy prezentowany tutaj układ elektroniczny został wcześniej uruchomiony i przetestowany.
Komunikacja z komputerem PC odbywa się poprzez złącze USB. W niektórych modułach Digispark nie ma gniazda USB: moduł podpina się bezpośrednio do portu USB w komputerze PC:
Do przesyłania danych pomiędzy komputerem PC a Digisparkiem wykorzystuje się sam mikrokontroler ATtiny 85, który jest sercem tego modułu. Takie rozwiązanie jest tanie, lecz wnosi pewne niedogodności, o których musisz wiedzieć.
Mikrokontroler ATtiny85 posiada 8KB pamięci Flash na programy użytkownika. Z tego około 2KB zajmuje program komunikacyjny, tzw. loader. Program ten przez 5 sekund po włączeniu zasilania modułu sprawdza, czy moduł nie jest podłączony do komputera PC przez port USB i czy komputer PC nie stara się przesłać nowego programu (patrz: procedura programowania Digisparka opisana tutaj). Jeśli przez 5 sekund nie zostanie nawiązana komunikacja z PC-tem, to loader uruchamia poprzednio załadowany do ATtiny85 program użytkownika. Dla programów użytkownika pozostaje zatem około 6KB pamięci. To całkiem sporo jak na takiego malucha. Mój pierwszy komputer w latach 80-tych ubiegłego wieku, ZX-81, miał tylko 1KB pamięci na moje programy.
Do obsługi komunikacji poprzez port USB wykorzystywane są porty P3 i P4. Jeśli ich używasz w swoim projekcie, to na czas programowania należy je odłączyć od reszty układu, aby nie powodować niepożądanych działań.
Parametry użytego mikrokontrolera ATtiny85 są następujące:
Chociaż w nazwie modułu Digispark widnieje słowo Arduino, to jednak nie udostępnia on tych samych możliwości co "prawdziwe" moduły Arduino. Po pierwsze redukcja kosztów wymusiła oszczędności. Po drugie mikrokontroler ATtiny85 nie posiada tej samej mocy obliczeniowej, co mikrokontroler ATMega328P (słowo tiny w języku angielskim oznacza coś malutkiego, tyciego). Jeśli jesteś zupełnie początkujący, to powinieneś raczej rozpocząć naukę od tych większych modułów Arduino (Nano/Uno), gdzie nie ma tylu ograniczeń i do których można podłączyć tysiące gotowych układów. Digispark nadaje się natomiast do bardzo małych projektów i jest pewnego rodzaju wyzwaniem intelektualnym.
Po tych wstępnych informacjach, zapraszam do kursu programowania Digisparka.
Funkcje portu P5 można przeprogramować za pomocą programatora ISP ustawiając tzw. fusebity (bity bezpiecznikowe) Ponieważ wymaga to pewnych umiejętności (nieumiejętne postępowanie może doprowadzić do zablokowania mikrokontrolera), umawiamy się, że w projektach dotyczących Digisparka nie będziemy korzystać z portu P5.
Jak sprawdzić, czy masz chiński klon? Bardzo prosto.
Zaopatrz się w dwa przewody z żeńskimi wtykami po obu stronach.
Podepnij jeden przewód do P5, drugi do GND.
Do wtyków po drugiej stronie podłącz opornik 220...470Ω.
Podłącz Digisparka do portu USB.
Jeśli P5 pełni funkcję RESET, to w Windows od razu usłyszysz dźwięk rozłączanego urządzenia USB. Jeśli pomimo opornika Digispark się uruchomi, to masz oryginalną płytkę i możesz używać P5 do sterowania.
Jeśli już masz pewne doświadczenie w programowaniu mikrokontrolerów AVR za pomocą programatora ISP i programu AVRDude, to możesz sam odpowiednio przeprogramować fusebity, tak aby port P5 stał się zwykłym portem wejścia/wyjścia.
Podaję instrukcję wyłączenia funkcji RESET na P5 na twoje własne ryzyko. Jeśli zrobisz coś źle, to Digispark może przestać działać i do naprawy będzie konieczny programator wysokonapięciowy. Zatem zupełnie początkującym odradzam wykonanie tej operacji.
Do przeprogramowania Digisparka będziesz potrzebował programatora oraz programu avrdude. Zobacz tutaj, jak to zainstalować.
Programator musisz połączyć z płytką Digispark w sposób następujący:
Uruchom terminal (w Windows przejdź do katalogu, w którym znajduje się program avrdude.exe).
Najpierw sprawdzimy komunikację z mikrokontrolerem. Wpisz polecenie:
avrdude -c usbasp -p t85 |
Jeśli masz inny programator niż usbasp, to za parametrem -c wpisz jego nazwę.
Gdy programator nawiąże kontakt z mikrokontrolerem ATtiny85 na płytce Digispark, pojawi się informacja zwrotna:
avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e930b (probably t85) avrdude: safemode: Fuses OK (E:FE, H:DD, L:E1) avrdude done. Thank you. |
W tym momencie wszystko jest gotowe do przeprogramowania mikrokontrolera. Musimy zmienić stan fusebitu RSTDISBL (poszukaj informacji w sieci). W terminalu wpisz:
avrdude -c usbasp -p t85 -U hfuse:w:0x5D:m |
Otrzymasz informację zwrotną:
avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e930b (probably t85) avrdude: reading input file "0x5D" avrdude: writing hfuse (1 bytes): Writing | ################################################## | 100% 0.02s avrdude: 1 bytes of hfuse written avrdude: verifying hfuse memory against 0x5D: avrdude: load data hfuse data from input file 0x5D: avrdude: input file 0x5D contains 1 bytes avrdude: reading on-chip hfuse data: Reading | ################################################## | 100% 0.01s avrdude: verifying ... avrdude: 1 bytes of hfuse verified avrdude: safemode: Fuses OK (E:FE, H:5D, L:E1) avrdude done. Thank you. |
Uwaga: od tego momentu port P5 nie pełni już roli RESET i można go używać jako portu wejścia/wyjścia P5. Przeprogramowanie układu za pomocą programatora również przestaje być możliwe. Programowanie przez USB z poziomu Arduino IDE przebiega normalnie. Przeprogramowanie ATtiny85 wymaga programatora wysokonapięciowego. Informacje znajdziesz w sieci.
Port P5 ma mniejszą wydajność prądową (tylko kilka miliamperów, to tzw. słaby port we/wy, ang. weak i/o port) od portów PB0...PB4. W swoich projektach musisz to wziąć pod uwagę.
Aby nie komplikować układów, w tym kursie nie korzystamy zupełnie z portu P5, nie musisz go zatem przeprogramowywać.
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.