Mniejsze rozmiary i niższe koszta czyli alternatywy dla płytek Arduino.

17 grudnia 2018

Podczas naszej przygody z Arduino z pewnością nadejdzie moment, gdy zamiast budować układy na płytce stykowej będziemy chcieli stworzyć w pełni samodzielne urządzenie. Jak wiemy Arduino Uno, Leonardo, czy też Mega są dosyć sporymi płytkami. A zatem budowa wielu urządzeń na bazie tych płytek może znacząco zwiększyć koszta projektu. Aby zapobiec tym problemom, skorzystamy z Pro Mini, oraz zewnętrznych mikro kontrolerów 8-bitowych.

Arduino Pro Mini, czyli najłatwiejsza alternatywa dla Uno.

Arduino Pro Mini jest pomniejszoną wersją Uno, jednak pozbawioną dość istotnego elementu, mianowicie wbudowanego programatora na bazie układu Atmega 16u2. Aby zaprogramować nasze Pro Mini niezbędny będzie konwerter USB-FTDI. Podłączenie programatora do płytki jest bardzo proste, ponieważ ogranicza się do jedynie czterech przewodów, dwóch sygnałowych oraz sekcji zasilania. Piny zasilania, czyli GND oraz VCC podłączamy do pinów o tej samej nazwie w programatorze, natomiast piny RX podłączmy do TX programatora, a TX naszego Arduino do RX konwertera.

Możemy zastanawiać się dlaczego nie łączymy pinu TX Pro Mini z pinem TX konwertera. Odpowiedź jest bardzo prosta, nazwa pinu TX, czyli transsmiter, z angielskiego “nadajnik”. Łącząc dwa piny TX razem nie nastąpi wymiana danych pomiędzy dwoma urządzeniami, ze względu na to, że oba piny będą nadawać, a żaden nie będzie tych danych odbierał. Podłączenie Pro Mini powinno wyglądać tak jak na grafice poniżej.

Musimy pamiętać, że różni producenci płytek mogą modyfikować położenie danych pinów. Lecz nadal łączymy sekcje zasilania do sekcji zasilania, a piny sygnałowe do pinów sygnałowych, tutaj nic się nie zmienia.

Jeżeli podłączyliśmy Pro Mini do konwertera możemy przejść do części softwarowej. Aby prawidłowo zaprogramować nasze Arduino, musimy wejść w Narzędzia>Płytki i wybieramy tam naszą płytkę, najpopularniejszym wariantem Pro Mini jest model pracujący na logice 5V i taktowany zegarem o częstotliwości 16MHz, ale istnieją też modele o innych poziomach napięć, więc warto pamiętać o wybraniu właściwej płytki w IDE. Podczas podłączania Pro Mini do programatora pamiętajmy też o właściwym ustawieniu zworki ustawiającej napięcia. W taki sposób, aby przypadkiem nie podać zbyt wysokiego napięcia na model o niższej logice napięciowej.

Gdy wszystko jest podłączone wgramy przykładowy program o nazwie “Blink”. Podczas wgrywania programu do płytek posiadających wbudowany programator nie musimy martwić się o zresetowanie układu przed wgraniem programu. Jak powiedzieliśmy wcześniej Pro Mini nie posiada wbudowanego programatora, więc gdy w IDE pokaże się poniższy komunikat musimy wcisnąć przycisk RESET na naszej płytce. Po wgraniu programu wbudowana dioda powinna mrugać.

Mikro kontrolery 8-bitowe, czyli zbawienie dla fanów minimalizmu.

Mikro kontrolery 8-bitowe są sercem Arduino, ale nie potrzebujemy żadnej z płytek, aby z nich korzystać. Dzięki czemu oszczędzamy bardzo dużo miejsca, jak i zasobów pieniężnych ze względu na to, że sam mikro kontroler kosztuję około ⅕ samej płytki. A zajmuje też o wiele mniej miejsca. Przy projektowaniu urządzeń, w których korzystamy z płytek PCB, a nie tworzymy układy na płytkach prototypowych są one dużo lepszym wyborem niż samo Arduino.

Oczywiście nie jest tak kolorowo jak może się nam wydawać, ponieważ aby układ działał prawidłowo musimy o niego zadbać. Do działania będzie nam potrzebne kilka kondensatorów i rezystorów, mikro kontrolery są też dosyć wybredne, ponieważ prawie każdy model ma, chociaż delikatnie odmienną specyfikację, co znaczy, że podłączenie może się trochę różnić. Aby nauczyć się jak korzystać z zewnętrznych mikro kontrolerów użyjemy układu Atmega328, czyli procesora, który napędza nasze Uno. Warto posiadać sam mikro kontroler, aby w razie awarii Atmegi w Arduino bez problemu ją wymienić.

Jeżeli chodzi o programowanie mikro kontrolera, mamy do wyboru aż trzy możliwości. Pierwszą jest programowanie mikro kontrolera za pomocą naszego Uno. Rozwiązanie to jest o tyle wygodne, że nie musimy zaopatrywać się w dodatkowy programator. Dlatego że to Arduino będzie pełnić jego rolę. Jeśli chodzi o zastosowanie Uno, to możemy układ zaprogramować, a następnie wyjąć go z podstawki w naszym Arduino i za jego pomocą sterować innym urządzeniem. Jednak należy pamiętać, że w płytce mikro kontroler taktowany jest zegarem o częstotliwości 16MHz. Więc układ w którym procesor będzie działać musi być w identyczny kwarc wyposażony.

Kolejną metodą jest korzystanie z konwertera USB-FTDI, tego samego, którym programowaliśmy Pro Mini. Tutaj podobnie jak w Pro Mini musimy połączyć szyny danych oraz zasilania. Najbardziej niezawodnym moim zdaniem programatorem do mikro kontrolerów jest urządzenie o nazwie ASP-USB, tutaj korzystamy z interfejsu ISP.

Rozwiązanie to jest jednym z najczęściej wykorzystywanych przez osoby które programują osobne mikro kontrolery. Nie tylko za pomocą Arduino IDE, ale także innych języków programowania. My ze względu na to, że posiadamy pod ręką Arduino Uno, użyjemy go do wgrania programu do naszego mikro kontrolera.

Najpierw kilka rzeczy które musimy zrobić przed przystąpieniem do pracy z mikro kontrolerem, czyli sprawdzenie noty katalogowej. Pozwoli nam to określić co i gdzie musimy podłączyć aby układ działał bez zarzutów. Zacznijmy od opisu wyjść, podczas wyszukiwania danych na temat wyjść w mikro kontrolerze najłatwiej wyszukać je wpisując w przeglądarkę nazwę procesora i pinout. Opis pinów Atmegi328, wraz z podpisaniem funkcji które pełni w Arduino pokazany jest na grafice poniżej.

Widzimy już, które piny posłużą nam do zasilania mikro kontrolera, które mają funkcję PWM, a które mogą pełnić funkcję pinów analogowych. Korzystając z Arduino nie musimy martwić się o prawidłowe zasilanie oraz jego filtrowanie, bo płytka wyposażona jest w kondensatory filtrujące oraz stabilizatory napięcia. Często na różnego typu forach możemy przeczytać wypowiedzi “specjalistów” na temat podłączenia zasilania do mikro kontrolera. My nie będziemy opierać się na plotkach, tylko sprawdzimy u źródła.

Producent opisuje w nocie katalogowej (szukaj pod nazwą datasheet) minimalne podłączenie zasilania. Jeżeli chodzi o mikrokontrolery z rodziny Atmega jest pewne minimum które pozwoli nam na prawidłowe zasilanie procesora oraz stabilną pracę. Podłączenie to wygląda następująco:

-VCC podłączamy do zasilania, nawet jeśli piny są obok siebie

-GND podłączmy do masy

-AVCC podłączmy do zasilania, tak jak VCC

-AGND podłączmy do masy, tak jak GND

-Reset podłączamy do zasilania przez rezystor 4,7KOhm

Litera “A” poprzedzająca nazwy oznacza, że pin ten odpowiada za sekcję analogową naszego mikro kontrolera. Należy pamiętać, że nawet gdy nie będziemy korzystać z przetwornika ADC w naszym procesorze sekcja analogowa powinna być zasilana. Jeżeli chodzi o filtrację zasilania do każdego pinu zasilającego podłączamy kondensator ceramiczny 100nF. Jedną nóżkę kondensatora podłączamy do zasilania, a drugą do masy.

Gdy przeszliśmy przez dżunglę podstawowej obsługi mikrokontrolera zabierzmy się za wgranie do niego programu. Żeby, zaprezentować działanie użyjemy po raz kolejny Blinka. Trudniejszą częścią będzie podłączenie mikro kontrolera na płytce stykowej, ale nie ma się czego bać, układ powinien wyglądać jak poniżej. Zanim jednak podłączymy Uno do płytki stykowej musimy wgrać program o nazwie ArduinoISP. Dzięki czemu płytka będzie służyła nam za programator.

Jeżeli mamy zbudowany układ, na Arduino wgrany program, to możemy przejść do dodania mikro kontrolerów z rodziny Atmega do Arduino IDE. Aby dodać mikro kontrolery, wchodzimy kolejno w Narzędzia>Płytka>Menedżer płytek. Gdy znajdziemy się w menedżerze płytek musimy pobrać paczkę o nazwie MiniCore. Gdy pobierzemy i zainstalujemy paczkę powinien pojawić nam się widok jak na grafice poniżej.

Teraz musimy wypalić bootloader, czyli program rozruchowy w naszym mikro kontrolerze. Cała operacja jest bardzo prosta. Wystarczy, że wartości w zakładce Narzędzia będą wyglądały jak na grafice poniżej i nie ma szans na żadne niepowodzenie. Gdy wybraliśmy odpowiednie warianty klikamy wypal bootloader.

Gdy wypaliliśmy bootloader możemy wgrać naszego Blinka. W momencie gdy układ został zaprogramowany możemy odpiąć przewody MISO,MOSI, SCK oraz Reset i do pinu 13 naszej Atmegi podłączyć diodę. Proste? I to jak!

Wiedza z dzisiejszego artykułu pozwoli na łatwe budowanie układów bez konieczności kupowania nowych płytek dla każdego projektu!

Produkty użyte w poradniku:

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *