Issuu on Google+

Warsztaty podstaw Arduino Jeśli wcześniej nie miałeś do czynienia z elektroniką i programowaniem, to pamiętaj, że: 1. Większość szczegółów technicznych, o których mówić będziemy w trakcie warsztatów prawdopodobnie zapomnisz zaraz po ich zakończeniu. TO ZUPEŁNIE NORMALNE. 2. Podstawowe informacje, takie jak nazwy funkcji i ich parametry, czy sposoby podłączania podstawowych części zapamiętuje się dopiero po KILKUDZIESIĘCIOKROTNYM ich powtórzeniu. 3. Funkcjonowanie niektórych konceptów, które poznasz w trakcie warsztatów, takich jak PWM, czy działanie bibliotek, nie jest oczywiste na pierwszy rzut oka. NIE TRZEBA ROZUMIEĆ JAK DZIAŁAJĄ, ŻEBY ICH UŻYWAĆ. 4. Najprawdopodobniej ZNAJOMOŚĆ KILKU PODSTAWOWYCH FUNKCJI ARDUINO + GOOGLE + KOPIUJ/WKLEJ to 95% elektronicznej magii niezbędnej, aby Twój projekt zaczął działać.


Arduino jako urządzenie PRZYCISK RESET - uruchamia odtwarzanie programu od początku

PINY CYFROWE 2 - 13 - zależnie od tego, jak określimy to w programie, piny cyfrowe mogą pracować jako WEJŚCIA (odczytują dane) lub WYJŚCIA (sterują zewnętrznym urządzeniem), w przeciwieństwie do pinów analogowych piny cyfrowe mogą mieć tylko dwa stany: WYSOKI (5V) lub NISKI (0V), w stanie wysokim pin cyfrowy może być źródłem zasilania dla podłączonego (niewielkiego!) urządzenia (np. diody led) PINY CYFROWE 1-RX, 2-TX - mogą działać podobnie jak pozostałe piny cyfrowe, z tą różnicą, że po podłączeniu do komputera są one blokowane przez komunikację przez port szeregowy (TX - nadawanie, RX odbieranie), wniosek - w prostych projektach lepiej unikać ich używania

GNIAZDO USB RX - komunikacja przez port szeregowy wysyłanie danych, zauważ, że dioda RX miga, gdy ładujesz program na Arduino TX - jw. - odbieranie danych, zwróć uwagę, że dioda TX również miga w trakcie komunikacji z komputerem (np. wgrywanie programu) L - wbudowana dioda połączona z pinem cyfrowym 13 miga, gdy pin jest w stanie wysokim ON - dioda sygnalizująca pracę Arduino

GNIAZDO ZASILANIA 5-12V

PINY CYFROWE PWM - 3,5,6,10,11,13, oznaczone falką ~, posiadają możliwość pracy w trybie Pulse Width Modulation (modulacja szerokości pulsu), będącym sposobem na to, jak operując tylko dwoma bazowymi stanami (wysoki - 5V, niski - 0V) uzyskać sygnał o płynnej charakterystyce, np. sterować jasnością diody lub położeniem serwomotoru, o PWM więcej w dalszej części kursu PIN CYFROWY 13 - jako jedyny z pinów cyfrowych posiada podłączony opornik, dzięki czemu można do niego bezpośrednio podłączyć diodę, jest on również połączony z wbudowaną diodą oznaczoną L POZOSTAŁE PINY- AREF, IOREF, RESET, SDA, SCL - w dużym skrócie odpowiadają głównie za komunikację Arduino z tzw. shieldami, czyli dużymi modułami nakładanymi na wierzch Arduino, rozszerzającymi jego możliwości o dodatkowe funkcje, póki co, nie są nam do niczego potrzebne więc ich opis pomijam

ZASILANIE 3.3V - podaje napięcie 3,3 Volta, konieczne do podłączenia niektórych czujników 5V - podaje napięcie 5 Voltów, niezbędne do podłączenia większości podstawowych elementów elektronicznych do Arduino GND - tzw. masa lub (-), wszystkie elementy elektroniczne podłączone do arduino muszą być na końcu obwodu podłączone do masy Vin - wejście zasilania, jeśli z jakichś powodów będziesz chciał zasilać Arduino z innego źródła, niż port USB lub przez gniazdo zasilacza, możesz do pinu Vin podłączyć (+) źródła zasilania, z którego chcesz skorzystać (przykładowo korzystając z baterii 9V podłączasz (+) do Vin, (-) do GND)

WEJŚCIA ANALOGOWE A0 - A5 - piny ANALOG IN, czyli analogowe WEJŚCIA, odczytują zmiany napięcia w zakresie od 0 do 5V, podłączasz do nich np. odczyt z potencjometru, fotorezystora i wszystkich innych analogowych czujników (czujnik temperatury, nacisku, odległości, akcelerometr.....)


Podstawy programowania Arduino programujemy pisząc kod składający się głównie z FUNKCJI i ZMIENNYCH. Napisany przez nas program to SKRYPT, czyli ciąg instrukcji, które wykonywać ma mikrokontroler. Wyobraź sobie, że Arduino to samochód, którym chcemy kierować. FUNKACJA to czynność jaką ma wykonać nasze auto np. JEDŹ, HAMUJ, SKRĘĆ, ZMIEŃ BIEG. ZMIENNA pozwala nam zapamiętać i odczytać stan jakiegoś parametru, przykładowe zmienne w samochodzie to: PRĘDKOŚĆ, PRZYSPIESZENIE, NUMER BIEGU ZMIENNE mogą być różnego TYPU tak jak różne są rodzaje informacji przez nie przekazywane (np. liczba całkowita albo tekst, w samochodzie możemy powiedzieć, że przebieg kilometrów to liczba zmiennoprzecinkowa (tzw. FLOAT - floating point number) m/s, a stan świateł to ON/OFF czyli zmienna typu logicznego BOOLEAN

PODSTAWOWA STRUKTURA SKRYPTU ARDUINO Każdy (podstawowy) skrypt, który wgrywać będziemy na Arduino musi składać się z dwóch podstawowych funkcji: SETUP - w tym miejscu umieścimy wszelkie operacje, które Arduino ma wykonać TYLKO RAZ, zaraz po uruchomieniu (można porównać to do załadowania systemu operacyjnego po uruchomieniu komputera) LOOP - w tym miejscu umieścimy główną część naszego programu, po zakończeniu wykonywania funkcji SETUP Arduino wykona operacje zawarte w funkcji LOOP, a po ich zakończeniu rozpocznie wykonywanie sekcji LOOP od początku i będzie ją powtarzać bez końca aż do momentu wyłączenia urządzenia. Kod dwóch podstawowych funkcji wygląda następująco:

void setup() { // tu wpisujemy instrukcje, które mają być wykonane raz, po włączeniu urządzenia } void loop() { // tu wpisujemy instrukcje, które mają być powtarzane w pętli } UWAGA - pisząc funkcje w programie zwracaj uwagę na wielkości liter!!!

Przy pomocy zmiennych możemy również dokładniej opisywać funkcje np. SKRĘĆ W LEWO, SKRĘĆ W PRAWO - w tym przypadku LEWO i PRAWO to zmienne opisujące funkcję SKRĘĆ ZMIENNA opisująca funkcję to jej PARAMETR. W kodzie parametry funkcji zapisujemy w nawiasach np. SKRĘĆ(LEWO), JEDŹ(500m), SKRĘĆ(PRAWO), itp.

analogRead(numerPinu) - zwraca (czyt. wydając to polecenie mikrokontrolerowi w odpowiedzi otrzymamy) wartość napięcia na zadanym pinie analogowym, przykładowo jeśli do pinu A0 podłączymy potencjometr i wydamy komendę analogRead(0) w odpowiedzi otrzymamy wartość napięcia (w zakresie od 0 do 1023) odpowiadającą położeniu gałki potencjometru. digitalRead(numerPinu) / digitalWrite(numerPinu) - odczytywanie / ustawianie wartości pinu cyfrowego, zależnie czy jest on ustawiony jako wejście czy wyjście, wartość pinu cyfrowego może wynosić 0 lub 5V czyli LOW lub HIGH - są to tzw. stany NISKI i WYSOKI pinMode(numerPinu) - ustawia czy zadany pin pracuje jako wejście czy jako wyjście analogWrite(numerPinu) - ustawia pseudoanalogową wartość pinu cyfrowego jako WYJŚCIE PWM w ten sposób możemy sterować jasnością diody albo położeniem ramienia serwomotoru


Podstawowe schematy

PRZYCISK

POTENCJOMETR - przy podłączeniu trzech nóżek potencjometr pracuje jako PODZIELNIK NAPIĘCIA - przy podłączeniu dwóch nóżek w obwodzie, potencjometr pracuje jako opornik o zmiennej rezystancji

- opornik przypięty do jednej z nóżek przycisku to tzw. OPORNIK OBCIĄŻAJĄCY PULL-DOWN RESISTOR zapobiega on PŁYWANIU pinu, do którego przypięty jest przycisk

STEROWANIE JASNOŚCIĄ DIODY - dłuższa noga diody (+), zasilana z pinu cyfrowego PWM~ krótsza noga (-) do GND

SERWOMOTOR - przewód sterujący położeniem musi być podłączony do pinu PWM~

ELEKTRONICZNY THEREMIN - fotorezystor razem z opornikiem tworzy PODZIELNIK NAPIĘCIA - głośnik nie wymaga opornika


Instrukcja Arduino