Przyrząd do grania bluesa Projekt zaliczeniowy z przedmiotu Programowanie Mikrokontrolerów

Podobne dokumenty
Pomiar odległości z Arduino czujniki, schematy, przykładowe kody

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

Prosty system alarmowy z Arduino

LABORATORIUM - ELEKTRONIKI Układy mikroprocesorowe cz.2

Arduino jako wyłącznik z opóźnieniem

Spis treści. Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

ZASTOSOWANIE PLATFORM CYFROWYCH ARDUINO I RASPBERRY PI W NAUCZANIU STEROWANIA OBIEKTEM PNEUMATYCZNYM

Rafał Staszewski Maciej Trzebiński, Dominik Derendarz

Schemat blokowy architektury AVR

PROGRAMOWANIE I ARDUINO W SZKOLE

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

by Jody Culkin PIERWOTNY WZÓR BĘDĄCY PODSTAWĄ DO STWORZENIA GOTOWEGO PRODUKTU.

Zmierzyć się z żywiołami, czyli jak zbudować własną stację badawczą! Zaczynamy! Pole komunikatów programu. Nawigacja w programie Arduino

Instrukcja instalacji

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Arduino i nowe diody RGB

Nazwa implementacji: Pamięć i zręczność - zapamiętaj kolejność. Autor: Krzysztof Bytow

SCL > Pin 21 SDA > Pin 20 VCC > 5V GND > GND

Kurs Arduino #2 podstawy programowania, porty I/O. 2 //Zawartość programu. 1 int main() { void setup() { //Instrukcje, które wykonają się jeden raz

Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0.

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

Arduino prezentuje działanie bramki logicznej AND

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

WIZUALIZACJA DANYCH SENSORYCZNYCH MINISTACJA METEOROLOGICZNA

LabVIEW PLATFORMA EDUKACYJNA Lekcja 6 LabVIEW i Arduino programy wykorzystujące wyświetlacz LCD, czujnik temperatury, PWM i diodę LED

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

Opis czytnika TRD-FLAT 2LN ver Naścienny czytnik transponderów UNIQUE w płaskiej obudowie

2017 Electronics For Imaging, Inc. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym

Język programowania. KURS Kurs Arduino (1)

Immobilizer samochodowy otwierający dostęp poprzez kod czteroznakowy.

Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.

Kurs Elektroniki. Zastosowanie elektroniki w robotyce cz

Systemy Wbudowane. Arduino dołączanie urządzeń Wersja Arduino więcej portów I/O. Układy serii 74. Układy serii 74xx a seria 40xx

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

INSTRUKCJA OBSŁUGI K3-3. Czytnik kart i zamek kodowy z kontrolerem dostępu i interfejsem Wiegand. Copyright Domster T. Szydłowski

Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.

Instytut Teleinformatyki

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

ĆWICZENIE 5 WPŁYW KONWEKCJI NA ROZKŁAD TEMPERATURY W POMIESZCZENIU

Klawiatura matrycowa

Instrukcja obsługi Ultradźwiękowe czujniki odbiciowe UGB UGC

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

Kurs Arduino dla początkujących - Michał Jaworski str. 1. Lekcja 5

Projektowanie Systemów Wbudowanych

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

MS5145 Eclipse. Uproszczona instrukcja obsługi

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe

KA-NUCLEO-Weather. ver. 1.0

Programowanie mikrokontrolerów AVR z rodziny ATmega.

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

AS 520 ZEWNĘTRZNY SYGNALIZATOR AKUSTYCZNO-OPTYCZNY INSTRUKCJA INSTALACJI OPIS URZĄDZENIA: OPIS ZACISKÓW:

Wprowadzenie do programowania urządzeń Arduino (Arduino dla Informatyków)

KA-NUCLEO-UniExp. Wielofunkcyjny ekspander dla NUCLEO i Arduino z Bluetooth, MEMS 3DoF, LED-RGB i czujnikiem temperatury

Systemy Wbudowane. Arduino dołączanie urządzeń Wersja Arduino bez płytki Arduino. Czyli... Eliminowanie modułu z projektu. Na płytce...

Politechnika Śląska w Gliwicach

AKTUATOR DO SYSTEMU DUO Q

Ławki. Dorota Błaszczak. Opis techniczny. projektu Joanny Napieralskiej. Warszawa, 2 lipca 2011

Pilot RF 4-kanałowy + odbiornik XY-DJM-5V umożliwia zdalne sterowanie do czterech urządzeń. Nadajnik pilot MX804. Odbiornik XY-DJM.

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

Nazwa implementacji: Zróbmy grę - Tetris. Autor: Łukasz Ciężki

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści

INSTRUKCJA INSTALACJI SPN-IR INSTRUKCJA INSTALACJI I OBSŁUGI. Sterownik Pracy Naprzemiennej SPN-IR

Seria MS9500 Voyager

Model: OR-ZS-802 (OR-ZS-SB-102) ZAMEK SZYFROWY Z CZYTNIKIEM KART I BRELOKÓW ZBLIŻENIOWYCH ID. Instrukcja montażu i programowania

Spis treści. S t r o n a 2

Systemy Wbudowane. Arduino rozszerzanie Wersja Plan. Biblioteka EPROM Arduino bez płytki Arduino. Czyli... Co musimy mieć, aby uruchomić chip?

2 Przygotował: mgr inż. Maciej Lasota

ZAMEK KODOWY 100 KODÓW REF. 6991

Czytnik kart zbliżeniowych PROX 4k Instrukcja obsługi kartą Master

Tematem projektu jest oparty na Arduino zegar pokazujący godzinę oraz datę.

KA-Nucleo-Weather. Rev Źródło:

Oscyloskop (007; ; arduino; processing)

BEZDOTYKOWY CZUJNIK ULTRADŹWIĘKOWY POŁOŻENIA LINIOWEGO

A-100WP ELEKTRONICZNY WANDALOODPORNY ZEWNĘTRZNY ZAMEK SZYFROWY DO MONTAŻU NADTYNKOWEGO

Instrukcja obsługi. Zamek szyfrowy ATLO-RM (wersja bez klawiatury) Dane techniczne oraz treść poniższej instrukcji mogą ulec zmianie bez uprzedzenia.

Teraz możesz kupić zestaw ponad 70 elementów niezbędnych do przeprowadzenia ćwiczeń z kursu u naszych dystrybutorów!

Sterownik źródła zasilania STR-Z01

PROFIBUS DP w topologii pierścieniowej LWL

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

Model: OR-ZS-802 ZAMEK SZYFROWY Z CZYTNIKIEM KART I BRELOKÓW ZBLIŻENIOWYCH ID. Instrukcja montażu i programowania

Włączenie ograniczenia stałej prędkości obrotowej silnika

Pomiar prędkości światła

INSTRUKCJA INSTALACJI DARWIN 02/04/06/08 bariera podczerwieni

Arduino Power Shield. Moduł Arduino do sterowania silnikami dużej mocy i pomiaru prądu

Podłączenie do szyny polowej światłowodem (LWL) w topologii linii/gwiazdy

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Transkrypt:

Przyrząd do grania bluesa Projekt zaliczeniowy z przedmiotu Programowanie Mikrokontrolerów Artem Poliszczuk 1 Opis działania urządzenia W ramach projektu skonstruowano urządzenie pozwalające na granie bluesa za pomocą ruchów dłonią (bądź czymkolwiek innym). Konstrukcja została oparta na mikrokontrolerze Atmega 328P podłączonym do platformy Arduino Uno. Ruch wykrywany był przez ultradźwiękowy czujnik ruchu, z którego sygnał był przekazywany poprzez mikrokontroler do brzęczyka. W zależności od odległości przedmiotu od czujnika ruchu, brzęczyk emitował inny sygnał dźwiękowy odpowiadający jednej ze składowych bluesowej skali G. Ponadto układ był wyposażony w trzy diody: żółtą, zieloną oraz czerwoną. Żółta dioda zapalała się w momencie, gdy w odległości od czujnika, pozwalającej na emisję dźwięku, nie znajdował się żaden przedmiot. Zakres tej odległości ustawiono na przedział [3cm, 28cm] od czujnika. Każdemu elementowi skali przypisany był odpowiedni odcinek o długosci 3cm 1. Diody zielona oraz czerwona były przypisane do poszczególnych dźwięków tak, by grając po kolei elementy skali zapalały się one naprzemiennie. 2 Elementy użyte do zbudowania układu Do zbudowania układu użyto następujących elementów: platforma Arduino Uno mikrokontroler Atemga 328P ultradźwiękowy czujnik odległości HC-3R04 brzęczyk TMB12A05 1 Prócz najniższego dźwięku, rozpoczynającego się najdalej - jemu był przypisany odcinek o długości 7cm 1

diody (żółta, zielona, czerwona) dwa oporniki 1kΩ przewody płytka stykowa (breadboard) 3 Efekt końcowy oraz schemat budowy układu Na poniższych zdjęciach widać zbudowany układ. Rysunek 1: Budowa układu. Widok z góry 2

Rysunek 2: Budowa układu. Widok z boku W rozdziale DODATEK umieszczono schemat układu. Część opisującą platformę Arduino Uno pobrano ze strony producenta. 4 Kod Kod programu składał się z następujących funkcji: funkcji setup() ustawiającej piny podłączone do poszczególnych elementów układu na stan wejścia lub wyjścia, funkcji microsecondstocenimeters() otrzymującej w postaci argumentu czas, który upłynął między emisją i rejestracją sygnału dźwiękowego przez czujnik i zwracającej odległość między czujnikiem i przeszkodą, funkcji play(), która przypisywała wartości zwróconej przez funkcję microsecondstocenimeters()dźwięk odpowiadający długości fali zdefiniowanej w pliku nagłówkowym pitches.h oraz odpowiednią konfigurację diod, ponadto funkcja play() dbała o to, by przerywać emitowanie dźwięku jedynie wówczas, gdy zmieni się odległość pomiędzy czujnikiem i przeszkodą. Funkcja play() była realizowana wewnątrz funkcji loop() tworzącej pętlę. 4.1 Kod programu #i n c l u d e p i t c h e s. h c o n s t u n s i g n e d i n t t p i n =2; 3

const unsigned i n t epin =4; const unsigned i n t green =7; const unsigned i n t red =6; const unsigned i n t yellow =8; const unsigned i n t buzzerpin =12; void play ( long cm, long old cm ) ; void setup ( ){ pinmode ( tpin, OUTPUT) ; pinmode ( epin, INPUT ) ; pinmode ( green, OUTPUT) ; pinmode ( red, OUTPUT) ; pinmode ( yellow, OUTPUT) ; pinmode ( buzzerpin, OUTPUT) ; void loop ( ){ long duration, cm, old cm ; d i g i t a l W r i t e ( tpin, LOW) ; delaymicroseconds ( 2 ) ; d i g i t a l W r i t e ( tpin, HIGH ) ; delaymicroseconds ( 1 0 ) ; d i g i t a l W r i t e ( tpin, LOW) ; old cm=cm ; duration=p u l s e I n ( epin, HIGH ) ; cm=microsecondstocentimeters ( duration ) ; play (cm, old cm ) ; long microsecondstocentimeters ( long microseconds ) { return microseconds /29/2; // p r z e k s z t a l c e n i e czasu na o d l e g l o s c // predkosc dzwieku : 29 mikrosekund /cm // sygnal l e c i tam i z powrotem, // d l a t e g o nas i n t e r e s u j e polowa o d l e g l o s c i 4

void play ( long cm, long old cm ){ i f ( old cm!=cm){ notone ( 1 2 ) ; i f (cm>3 && cm<=6){ d i g i t a l W r i t e ( red, HIGH ) ; tone (12, NOTE G3 ) ; i f (cm>6 && cm<=9){ d i g i t a l W r i t e ( red, LOW) ; d i g i t a l W r i t e ( green, HIGH ) ; tone (12, NOTE F3 ) ; i f (cm>9 && cm<=12){ d i g i t a l W r i t e ( red, HIGH ) ; tone (12, NOTE D3 ) ; i f (cm>12 && cm<=15){ d i g i t a l W r i t e ( red, LOW) ; d i g i t a l W r i t e ( green, HIGH ) ; tone (12, NOTE CS3 ) ; i f (cm>15 && cm<=18){ d i g i t a l W r i t e ( red, HIGH ) ; tone (12, NOTE C3 ) ; i f (cm>18 && cm<=21){ d i g i t a l W r i t e ( red, LOW) ; d i g i t a l W r i t e ( green, HIGH ) ; tone (12, NOTE AS2 ) ; 5

i f (cm>21 && cm<=28){ d i g i t a l W r i t e ( red, HIGH ) ; tone (12, NOTE G2 ) ; { d i g i t a l W r i t e ( red, LOW) ; d i g i t a l W r i t e ( yellow, HIGH ) ; delay ( 3 0 0 ) ; 4.2 Kod pliku nagłówkowego pitches.h #d e f i n e NOTE B0 31 #d e f i n e NOTE C1 33 #d e f i n e NOTE CS1 35 #d e f i n e NOTE D1 37 #d e f i n e NOTE DS1 39 #d e f i n e NOTE E1 41 #d e f i n e NOTE F1 44 #d e f i n e NOTE FS1 46 #d e f i n e NOTE G1 49 #d e f i n e NOTE GS1 52 #d e f i n e NOTE A1 55 #d e f i n e NOTE AS1 58 #d e f i n e NOTE B1 62 #d e f i n e NOTE C2 65 #d e f i n e NOTE CS2 69 #d e f i n e NOTE D2 73 #d e f i n e NOTE DS2 78 #d e f i n e NOTE E2 82 #d e f i n e NOTE F2 87 #d e f i n e NOTE FS2 93 #d e f i n e NOTE G2 98 #d e f i n e NOTE GS2 104 #d e f i n e NOTE A2 110 #d e f i n e NOTE AS2 117 6

#d e f i n e NOTE B2 123 #d e f i n e NOTE C3 131 #d e f i n e NOTE CS3 139 #d e f i n e NOTE D3 147 #d e f i n e NOTE DS3 156 #d e f i n e NOTE E3 165 #d e f i n e NOTE F3 175 #d e f i n e NOTE FS3 185 #d e f i n e NOTE G3 196 #d e f i n e NOTE GS3 208 #d e f i n e NOTE A3 220 #d e f i n e NOTE AS3 233 #d e f i n e NOTE B3 247 #d e f i n e NOTE C4 262 #d e f i n e NOTE CS4 277 #d e f i n e NOTE D4 294 #d e f i n e NOTE DS4 311 #d e f i n e NOTE E4 330 #d e f i n e NOTE F4 349 #d e f i n e NOTE FS4 370 #d e f i n e NOTE G4 392 #d e f i n e NOTE GS4 415 #d e f i n e NOTE A4 440 #d e f i n e NOTE AS4 466 #d e f i n e NOTE B4 494 #d e f i n e NOTE C5 523 #d e f i n e NOTE CS5 554 #d e f i n e NOTE D5 587 #d e f i n e NOTE DS5 622 #d e f i n e NOTE E5 659 #d e f i n e NOTE F5 698 #d e f i n e NOTE FS5 740 #d e f i n e NOTE G5 784 #d e f i n e NOTE GS5 831 #d e f i n e NOTE A5 880 #d e f i n e NOTE AS5 932 #d e f i n e NOTE B5 988 #d e f i n e NOTE C6 1047 #d e f i n e NOTE CS6 1109 #d e f i n e NOTE D6 1175 7

#d e f i n e NOTE DS6 1245 #d e f i n e NOTE E6 1319 #d e f i n e NOTE F6 1397 #d e f i n e NOTE FS6 1480 #d e f i n e NOTE G6 1568 #d e f i n e NOTE GS6 1661 #d e f i n e NOTE A6 1760 #d e f i n e NOTE AS6 1865 #d e f i n e NOTE B6 1976 #d e f i n e NOTE C7 2093 #d e f i n e NOTE CS7 2217 #d e f i n e NOTE D7 2349 #d e f i n e NOTE DS7 2489 #d e f i n e NOTE E7 2637 #d e f i n e NOTE F7 2794 #d e f i n e NOTE FS7 2960 #d e f i n e NOTE G7 3136 #d e f i n e NOTE GS7 3322 #d e f i n e NOTE A7 3520 #d e f i n e NOTE AS7 3729 #d e f i n e NOTE B7 3951 #d e f i n e NOTE C8 4186 #d e f i n e NOTE CS8 4435 #d e f i n e NOTE D8 4699 #d e f i n e NOTE DS8 4978 8

5 DODATEK 9 Rysunek 3: Schemat budowy układu