Spisu treści:

Prototypowa płyta dźwiękowa Arduino-Raspberry Pi: 9 kroków (ze zdjęciami)
Prototypowa płyta dźwiękowa Arduino-Raspberry Pi: 9 kroków (ze zdjęciami)

Wideo: Prototypowa płyta dźwiękowa Arduino-Raspberry Pi: 9 kroków (ze zdjęciami)

Wideo: Prototypowa płyta dźwiękowa Arduino-Raspberry Pi: 9 kroków (ze zdjęciami)
Wideo: TIK w pracy NAUCZYCIELA #98. Mikrokontrolery - praktyczne wykorzystanie podczas lekcji. 2024, Listopad
Anonim
Prototypowa płyta dźwiękowa Arduino-Raspberry Pi
Prototypowa płyta dźwiękowa Arduino-Raspberry Pi

Prototypowa płyta rezonansowa stworzona za pomocą Arduino i Raspberry Pi ma być prostym sposobem odtwarzania 4 różnych dźwięków lub szumów z możliwością przełączania zestawów dźwięków za pomocą pokrętła i wyświetlania bieżącego zestawu dźwięków na ekranie LCD.

*Uwaga: kod projektu jest kompletny w 99%, ale nie działa.

Raspberry Pi steruje ekranem LCD 16x2 i enkoderem obrotowym, podczas gdy Arduino odczytuje wejścia analogowe z rezystorów czułych na siłę (FSR) i wysyła sygnał do Arduino w celu odtworzenia dźwięku. Oboje nigdy nie używaliśmy Arduino ani Pi przed tą klasą, ale nasz profesor dał nam wszystkie niezbędne narzędzia i wskazówki, aby łatwo kodować i budować ten projekt. Do modelowania naszego projektu wykorzystano TinkerCad, bezpłatne narzędzie do modelowania 3D online firmy AutoDesk.

Najtrudniejszą częścią projektu było znalezienie sposobu na skomunikowanie Arduino i Raspberry Pi z komunikacją szeregową. Początkowo chcieliśmy używać tylko Pi w całym projekcie, ale potrzebowaliśmy Arduino, aby odczytać sygnał analogowy z FSR-ów. Mogliśmy łatwo wysyłać wiersze słów lub liczb z Arduino i wyświetlać je na Pi, ale problem pojawił się, gdy próbowaliśmy odczytać te wartości w Pythonie i zaimplementować je w instrukcjach warunkowych w celu ich przetworzenia.

Wymagane umiejętności

  • Proste zrozumienie C/C++ do kodowania Arduino
  • Proste zrozumienie Pythona do kodowania Raspberry Pi
  • Wiedza o tym, jak okablowana jest płytka stykowa
  • Podstawowe umiejętności modelowania 3D
  • Chęć uczenia się i rozwijania programowania, okablowania i budowania czegoś fajnego

Lista części

1 x Raspberry Pi 3

1 x Elegoo Uno LUB Arduino Uno

1x830 Tie Breadboard

1 x tablica zaciskowa GPIO (RSP-GPIO)

1 x kabel taśmowy do tabliczki zaciskowej

4 x rezystory wrażliwe na małą siłę

1 x podstawowy ekran LCD 16x2 znaków;

1 x moduł enkodera obrotowego

24 x przewody męskie na żeńskie

10 x przewody męskie na męskie

Rezystory 4 x 10k

Potencjometr 1x10 k

1 x nakolannik z pianki ogrodowej (sklep dolarowy)

Krok 1: Przetestuj FSR za pomocą Arduino

Przetestuj FSR z Arduino
Przetestuj FSR z Arduino

Najpierw zdecydowaliśmy się wypróbować FSR z Arduino. FSR wysyłają sygnał analogowy i dlatego musieliśmy użyć Arduino, ponieważ Pi nie odbiera analogu bez innych obwodów. Chcieliśmy przetestować progi, aby upewnić się, że prasy pracują pod dobrym naciskiem. Okazało się, że jest to około 150 z całkowitej liczby 1000. W tym kroku bardzo pomocny był ploter szeregowy w środowisku Arduino IDE.

Krok 2: Rozrysuj plany zarządu

Narysuj plany dla zarządu
Narysuj plany dla zarządu
Narysuj plany dla zarządu
Narysuj plany dla zarządu

Następnie opracowaliśmy i zmierzyliśmy plany tablicy. Chcieliśmy mieć 4 pady do odtwarzania dźwięków, miejsce na ekran LCD do wyświetlania bieżącej grupy dźwięków oraz enkoder obrotowy do zmiany grupy dźwięków.

Krok 3: Modeluj tablicę w TinkerCad

Modeluj tablicę w TinkerCad
Modeluj tablicę w TinkerCad
Modeluj tablicę w TinkerCad
Modeluj tablicę w TinkerCad
Modeluj tablicę w TinkerCad
Modeluj tablicę w TinkerCad

Po opracowaniu planów wymodelowaliśmy tablicę na internetowej, darmowej stronie do modelowania 3D o nazwie TinkerCad firmy Autodesk. Gorąco polecamy go tym z was, którzy nie chcą wydawać mnóstwa pieniędzy na duże oprogramowanie do modelowania 3D, ponieważ jest ono łatwe w użyciu, oparte na chmurze i ma pełne wsparcie dla drukowania 3D.

Po wymodelowaniu musieliśmy podzielić go na 2 części, aby zmieścił się na drukarce. Wydrukowano naprawdę dobrze, ale moim błędem nie było zbyt dobre zwymiarowanie gniazda ekranu LCD (nie popełnij tego błędu!). Przesłaliśmy lewą i prawą stronę pliki. STL, jeśli chcesz je sprawdzić.

Krok 4: Przetestuj ekran LCD

Przetestuj ekran LCD
Przetestuj ekran LCD

Używaliśmy już ekranu na Arduino i konfiguracja była bardzo łatwa. Jednak trudniej było go uruchomić z Pi. Dzięki kilku godzinom rozwiązywania problemów w Google i wierceniu się z przewodami w końcu udało nam się to uruchomić. Proszę zobaczyć ostateczny kod Pythona na końcu, aby zobaczyć, jak to działa. Użyliśmy kilku stron internetowych, które pomogły nam okablować go i napisać kod. Sprawdź je:

learn.adafruit.com/drive-a-16x2-lcd-direct…

www.raspberrypi-spy.co.uk/2012/07/16x2-lcd…

Krok 5: Przetestuj enkoder obrotowy za pomocą ekranu LCD

Przetestuj enkoder obrotowy za pomocą ekranu LCD
Przetestuj enkoder obrotowy za pomocą ekranu LCD

Następnie chcieliśmy sprawdzić, czy możemy sprawić, by ekran LCD zmienił swój tekst, gdy enkoder został obrócony. Enkoder nie ma określonej liczby kątów ani obrotów, więc w kodzie policzyliśmy, ile razy został obrócony zgodnie z ruchem wskazówek zegara lub przeciwnie do ruchu wskazówek zegara, i obliczyliśmy go do 3. Jeśli przejdzie, wróci do 0 i gdyby spadła poniżej 0, wróciłaby do 3. Liczby te można ustawić dla dowolnej liczby zestawów dźwięków, ale ostatecznie testowaliśmy tylko jeden zestaw dźwięków. Upewnij się, że twoje dźwięki znajdują się w tym samym folderze/lokalizacji, w którym wykonywany jest główny kod Pythona.

Krok 6: Złóż tablicę

Złóż tablicę
Złóż tablicę
Złóż tablicę
Złóż tablicę
Złóż tablicę
Złóż tablicę

Rejestratory FSR wsuwają się pod cztery różne gniazda. Wyśrodkowaliśmy je i przykleiliśmy taśmą. Polecamy taśmę klejącą, a może nawet klejenie, ponieważ zwykła taśma klejąca była straszna w przyklejaniu się do drukowanego materiału 3D. Po krótkiej wycieczce do sklepu z dolarami znaleźliśmy miękką, ale gąbczastą nakolannik ogrodowy, który mogliśmy pociąć na cztery części i wykorzystać jako przyciski do tablicy. Przycięliśmy je tak, aby mogły ściśle przylegać do swoich miejsc, aby mogły pozostać na miejscu, ale także można je łatwo usunąć, jeśli zajdzie taka potrzeba.

Krok 7: Podłącz wszystko do góry

Podłącz wszystko do góry
Podłącz wszystko do góry
Podłącz wszystko do góry
Podłącz wszystko do góry

Po złożeniu płytki i umieszczeniu FSR, enkodera i ekranu na miejscu, wszystko okablowaliśmy. Przydałyby się 2 płytki stykowe, ale udało nam się zmieścić wszystko na jednej. Obraz wygląda jak bałagan, ale schemat ideowy wykonaliśmy w darmowym programie Fritzing. Zauważ, że możesz zmienić piny, do których chcesz wszystko dołączyć, ale diagram odpowiada naszemu kodowi.

Krok 8: Zakończ kodowanie WSZYSTKO

To była trudna część. Jak wspomniano we wstępie, nie mogliśmy ukończyć tej części. Kod jest tam w 99%, ale jedyną częścią, która nie działała, była komunikacja szeregowa z Arduino do Pi. Mogliśmy łatwo wysłać informacje, gdy podłączyliśmy Arduino do Pi za pomocą kabla USB, ale Pi nie mogło nic zrobić poza wyświetlaniem tych informacji na ekranie. Chcieliśmy być w stanie stwierdzić, który przycisk został naciśnięty i sprawić, by odtwarzał określony dźwięk, ale dane, które przechodziły przez komunikację, nie mogły zostać umieszczone w instrukcji warunku, aby sprawdzić, który przycisk został naciśnięty.

Zobacz załączony kod, uwagi zostały skomentowane w kodzie Pythona dla Pi. Kod Arduino powinien wynosić 100%.

Krok 9: Zakończ

Wyciągnąć wniosek
Wyciągnąć wniosek

Ogólnie rzecz biorąc, ten projekt był OGROMNYM doświadczeniem edukacyjnym dla nas dwojga i mamy nadzieję, że ten zapis może dać przyszłym uczniom, nauczycielom lub majsterkowiczom inspirację do ich własnego projektu i pokierować ich uczeniem się na własnych błędach. Pozdrowienia dla naszego wspaniałego profesora robotyki, który ogromnie pomógł podczas naszego czasu na zajęciach i dał nam możliwość dobrej zabawy i wiele się nauczyliśmy na starszych zajęciach COMP! Dziękuje za przeczytanie:)

Zalecana: