Zaprogramuj microBOARD-M8 w środowisku Arduino! | MSX

Zaprogramuj microBOARD-M8 w środowisku Arduino!

 

m8 arduino

Środowisko Arduino zyskało sobie rzeszę fanów z dwóch podstawowych powodów. Po pierwsze – gotowe zestawy uruchomieniowe, które nie wymagają od użytkownika zaawansowanej wiedzy elektronicznej na starcie zabawy z mikrokontrolerami. Po drugie – Arduino, ze swoim Arduino IDE sprawiło, że programowanie mikrokontrolerów przestało wymagać siedzenia nad notą katalogową i poświęcenia półtora tygodnia czasu, żeby nauczyć się zapalać diodę LED – wystarczy parę prostych poleceń, aby osiągać naprawdę zaawansowane efekty.

Kupując moduł M8 microBOARD spełniliście już pierwszy warunek – mikrokontroler na płytce zawiera wszystko, co niezbędne do prawidłowej pracy – naszym jedynym zmartwieniem jest zasilić go i wgrać na niego program. Dzięki temu wpisowi, dowiecie się jak spełnić drugi z warunków, czyli jak uzyskać możliwość programowania modułu M8 przy pomocy wygodnego środowiska Arduino.

Rozpoczynamy, (oczywiście) od pobrania środowiska Arduino IDE. Środowisko to jest darmowe i można je pobrać ze strony producenta – http://arduino.cc/en/Main/Software#toc2. W chwili pisania niniejszego artykułu, najnowszą stabilną wersją dostępną jest 1.0.5 i dla tej wersji został stworzony niniejszy opis.

Po pobraniu i zainstalowaniu wersji odpowiedniej dla Twojego systemu operacyjnego, należy pobrać następujący plik:

http://msx-elektronika.pl/resources/boards.txt

Plik ten zawiera opis płytek, które można programować z Arduino IDE, wraz z informacjami niezbędnymi dla kompilatora – plik „boards.txt”. Dla większości użytkowników wystarczy przekopiować plik do katalogu <miejsce zainstalowania Arduino IDE>/hardware/arduino/. Nadpisujemy w ten sposób domyślny plik Arduino „boards.txt” do wersji dodającej obsługę modułu M8. Jeżeli nie dodawaliśmy nigdy wcześniej żadnych nowych płytek do tego pliku, to nie ma żadnego problemu. Jeżeli jednak dodawaliśmy w przeszłości dodatkowe płytki, aby nie utracić tamtych wpisów należy otworzyć plik „boards.txt” do edycji i dopisać na jego końcu następujące dane:

dane do pliku boards.txt ZaznaczPokaż

 

Po tej operacji możemy uruchomić już Arduino IDE. Po włączeniu się głównego okna aplikacji należy przejść do menu Narzędzia->Płytka. Powinniśmy zobaczyć tam taki widok:

 arduino_plytki

Jak widać, mamy do wyboru 5 opcji programowania modułu M8, każda z inną częstotliwością taktowania. Opcja pierwsza (12MHz) wykorzystuje oczywiście zewnętrzny kwarc, który znajduje się na płytce modułu. Pozostałe 4 opcje (8,4,2,1 MHz) wykorzystują wewnętrzny oscylator, znajdujący się w mikrokontrolerze.

Ze względu na fakt, iż programować nasz moduł będziemy przy pomocy programatora USBasp nie musimy używać tzw. bootloadera Arduino, dzięki czemu zaoszczędzimy 1KB pamięci! Ktoś mógłby powiedzieć, że to niedużo, rozpieszczony swoim dyskiem o pojemności 1TB (czyli, trochę ponad miliard razy więcej, niż zajmuje bootloader), ale musimy pamiętać, że mikrokontroler ATmega8A, który wchodzi w skład układu M8 posiada pamięć 8KB.

Jednak, pomimo tego, że nie używamy bootloadera i tak wykorzystywać będziemy opcję „Wypal Bootloader”. Pozwoli nam ona na ustawienie wewnętrznych fusebitów, które w telegraficznym skrócie odpowiadają m.in. za wybór zegara taktującego pracę mikrokontrolera.

Podsumowując – za każdym razem, gdy chcemy zmienić częstotliwość taktowania mikrokontrolera musimy wybrać odpowiednią wersję płytki z Narzędzia->Płytki, upewnić się, że wybranym programatorem (Narzędzia->Programator) jest USBasp, a następnie kliknąć „Wypal Bootloader”. Operacja ta powinna trwać bardzo krótko, ponieważ nie następuje wypalanie bootloadera, a jedynie przestawienie fusebitów.

W dalszej części artykułu zaprezentuję jak zaprogramować moduł M8 prostym programem „Blink”, który powoduje miganie diody LED.

Po pierwsze, należy podłączyć programator do modułu M8 – najprościej zrobić to przy pomocy zamieszczonego na płytce złącza ISP KANDA. Jeżeli nie dysponujecie jeszcze programatorem – zapraszamy do naszego sklepu, w którym zakupicie programator USBasp w wielu różnych kolorach! Po podłączeniu programatora należy założyć zworki. Pierwsza (w przypadku programatora USBasp ze sklepu msx-elektronika jest to zworka POWER, lub w starszych wersjach programatora – J3) powoduje zasilenie programowanego modułu bezpośrednio przez programator z portu USB. Druga (SLOW, lub J2) potrzebna jest w momencie, gdy moduł uprzednio skonfigurowany był do pracy z zegarem mniejszym od 1,5MHz.

Po podłączeniu programatora do modułu, należy podłączyć go do portu USB. Jeżeli jest to pierwsze programowanie tego modułu, najlepiej upewnić się, że fusebity są ustawione tak, że zegar układu jest dokładnie taki jak tego chcemy. W tym celu należy wybrać odpowiedni wpis w menu Narzędzia->Płytki (ja wykorzystam zew. kwarc 12MHz), wybrać programator USBasp (Narzędzia->Programator), a następnie w menu Narzędzia wybrać opcję „Wypal Bootloader”. Jeżeli operacja nie rozpocznie się prawidłowo (w dolnej części okna zostaną wyświetlone jakieś błędy) należy upewnić się, czy układ jest prawidłowo zasilony (zworka POWER), oraz (jeżeli błędy nadal wyskakują) można spróbować założyć zworkę SLOW.

 1

 2

3

Po poprawnym wgraniu bootloadera (a tak naprawdę – ustawieniu fusebitów) zostanie wyświetlony komunikat informujący o sukcesie operacji, a my będziemy mogli przystąpić do wgrania pierwszego programu napisanego w Arduino.

Nasz pierwszy program będzie typowym programem typu „hello world!” dla mikrokontrolerów, czyli blink. Prosty program blink znajduje się standardowo w bibliotece przykładowych programów Arduino – Plik->Przykłady->01.Basics->Blink. Program sprawi, że dioda podłączona do pinu 13 będzie zapalała się na sekundę i gasła na sekundę, tak długo jak długo mikrokontroler będzie otrzymywał zasilanie.

 blink

Wypadałoby jeszcze wiedzieć, który pin modułu M8 jest pinem 13. W tym celu przygotowaliśmy dla Was prostą grafikę która pozwoli na łatwe i szybkie programowanie modułu M8 przy pomocy Arduino.

M8_arduino pinout

Wobec tego do pinu B5, poprzez typowy rezystor 330Ohm podłączamy anodę diody LED (dłuższa nóżka), a katodę (nóżkę krótszą) podłączamy do jednego z pinów masy układu GND.

 led

Wgrywamy program przyciskiem strzałki znajdującym się u góry ekranu i po chwili dioda zacznie migać!

 wgrywanie

Comments are closed.

Post Navigation