Съдържание:

Прототип Arduino-Raspberry Pi Soundboard: 9 стъпки (със снимки)
Прототип Arduino-Raspberry Pi Soundboard: 9 стъпки (със снимки)

Видео: Прототип Arduino-Raspberry Pi Soundboard: 9 стъпки (със снимки)

Видео: Прототип Arduino-Raspberry Pi Soundboard: 9 стъпки (със снимки)
Видео: Building a Digital Music Player with I2S?! What is I2S! EB#45 2024, Ноември
Anonim
Прототип Arduino-Raspberry Pi Soundboard
Прототип Arduino-Raspberry Pi Soundboard

Прототипът на звуковата дъска, създаден с Arduino и Raspberry Pi, е предназначен да бъде прост начин за възпроизвеждане на 4 различни звука или шума, като същевременно има възможност за превключване на звукови набори с копче и показване на текущия набор от звуци с LCD екран.

*Моля, обърнете внимание: Кодът на проекта е завършен на 99%, но не е функционален.

Raspberry Pi контролира 16x2 LCD екрана и въртящия се енкодер, докато Arduino чете аналоговите входове от чувствителни към сила резистори (FSR) и изпраща сигнал към Arduino за възпроизвеждане на звук. И двамата никога не бяхме използвали Arduino или Pi преди този клас, но нашият професор ни даде всички необходими инструменти и насоки за лесно кодиране и изграждане на този проект. TinkerCad, безплатен онлайн инструмент за 3D моделиране от AutoDesk, беше използван за моделиране на нашия проект.

Най -трудната част от проекта беше намирането на начин да накараме Arduino и Raspberry Pi да комуникират със серийна комуникация. Първоначално искахме да използваме Pi само за целия проект, но се нуждаехме от Arduino, за да прочетем аналоговия сигнал от FSR. Лесно успяхме да изпратим редове от думи или числа от Arduino и да ги покажем на Pi, но проблемът дойде, когато се опитахме да прочетем тези стойности в Python и да ги внедрим в изявления за състояние, за да ги обработим.

Необходими умения

  • Просто разбиране на C/C ++ за кодиране на Arduino
  • Просто разбиране на Python за кодиране на Raspberry Pi
  • Знания за това как е свързан макет
  • Основни умения за 3D моделиране
  • Желание да научите и разширите програмирането, окабеляването и изграждането на нещо доста спретнато

Списък на частите

1 x Raspberry Pi 3

1 x Elegoo Uno ИЛИ Arduino Uno

1 x 830 Вратовръзка

1 x GPIO Breakout Board (RSP-GPIO)

1 х лентов кабел за пробивна дъска

4 x Чувствителни резистори с малка сила

1 x основен 16x2 символен LCD екран

1 x Ротационен кодиращ модул

24 x мъжки към женски проводници

10 x мъжки проводници

4 x 10k резистора

1 x 10k потенциометър

1 x подложка за коляно от градинска пяна (доларов магазин)

Стъпка 1: Тествайте FSR с Arduino

Тествайте FSR с Arduino
Тествайте FSR с Arduino

Първо решихме да изпробваме FSR с Arduino. FSR изпращат аналогов сигнал и затова трябваше да използваме Arduino, тъй като Pi не получава аналог без други схеми. Искахме да тестваме праговете, за да се уверим, че пресите са с добро налягане. Открихме, че е около 150 от общо 1000. Серийният плотер на Arduino IDE беше много полезен за тази стъпка.

Стъпка 2: Начертайте плановете за дъската

Начертайте плановете за дъската
Начертайте плановете за дъската
Начертайте плановете за дъската
Начертайте плановете за дъската

След това съставихме и измерихме плановете за борда. Искахме да имаме 4 подложки за възпроизвеждане на звуци, място за LCD екран за показване на текущата група звуци и въртящ се енкодер за промяна на групата звуци.

Стъпка 3: Моделирайте дъската в TinkerCad

Моделирайте дъската в TinkerCad
Моделирайте дъската в TinkerCad
Моделирайте дъската в TinkerCad
Моделирайте дъската в TinkerCad
Моделирайте дъската в TinkerCad
Моделирайте дъската в TinkerCad

След като плановете бяха съставени, ние моделирахме дъската на онлайн безплатен уебсайт за 3D моделиране, наречен TinkerCad от Autodesk. Силно го препоръчваме за тези от вас, които не искат да харчат много пари за голям софтуер за 3D моделиране, тъй като е лесен за използване, базиран на облак и има пълна поддръжка за 3D печат.

След като беше моделиран, трябваше да го разделим на 2 части, за да го поставим на принтера. Отпечата се много добре, но моята грешка не беше да оразмеря много добре слота на LCD екрана (не правете тази грешка!) Качихме лявата и дясната страна. STL файлове, ако искате да ги проверите.

Стъпка 4: Тествайте LCD екрана

Тествайте LCD екрана
Тествайте LCD екрана

Вече използвахме екрана на Arduino и настройката беше много лесна. Въпреки това беше по -трудно да се управлява с Pi. С няколко часа за отстраняване на неизправности в Google и забъркване с кабели, най -накрая го заработихме. Моля, вижте крайния код на Python в края, за да видите как работи. Използвахме няколко уебсайта, за да ни помогнат да го свържем и да напишем кода. Проверете ги:

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

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

Стъпка 5: Тествайте въртящия се енкодер с LCD екрана

Тествайте въртящия се енкодер с LCD екрана
Тествайте въртящия се енкодер с LCD екрана

След това искахме да видим дали можем да накараме LCD екрана да промени текста си при завъртане на енкодера. Енкодерът няма зададено количество ъгли или завъртания, така че в кода сме преброили колко пъти е завъртян по посока на часовниковата стрелка или обратно на часовниковата стрелка и сме го направили да брои до 3. Ако премине, ще се върне към 0 и ако беше под 0, щеше да се върне до 3. Тези цифри могат да бъдат зададени за колкото и звукови комплекти да ви харесат, но в крайна сметка тествахме само един звуков набор. Уверете се, че вашите звуци са в същата папка/място, където се изпълнява основният код на Python.

Стъпка 6: Сглобете дъската

Сглобете дъската
Сглобете дъската
Сглобете дъската
Сглобете дъската
Сглобете дъската
Сглобете дъската

FSR се плъзгат под четирите различни слота. Центрирахме ги и ги залепихме. Препоръчваме тиксо или може би дори залепване, защото обикновената скоч беше ужасна прилепването към 3D печатния материал. След кратко пътуване до доларовия магазин открихме мека, но хлъзгава градинска подложка за коляното, която можехме да нарежем на четири парчета, които да използваме като бутони за дъската. Нарязахме ги така, че да могат да се прибират плътно на местата си, така че да могат да останат на място, но също така лесно да бъдат отстранени, ако е необходимо.

Стъпка 7: Свържете всичко

Свържете всичко
Свържете всичко
Свържете всичко
Свържете всичко

След като сглобихме платката и поставихме FSR, енкодер и екран на място, свързахме всичко. Можете да използвате 2 дъски, но успяхме да поставим всичко върху едно. Картината изглежда като бъркотия, но ние направихме схематична диаграма в безплатна програма, наречена Fritzing. Имайте предвид, че можете да промените към какви пинове искате да прикачите всичко, но диаграмата съответства на нашия код.

Стъпка 8: Завършете кодирането на ВСИЧКО

Това беше сложната част. Както е посочено във въведението, не можахме да завършим тази част. Кодът е 99% изцяло там, но единствената част, която не работи, беше серийната комуникация от Arduino до Pi. Можехме лесно да изпратим информацията, когато свързахме Arduino към Pi с USB кабела, но Pi не можеше да направи нищо, освен да покаже тази информация на екрана. Искахме да можем да кажем кой бутон е натиснат и да накара този звук да възпроизведе специфичен звук, но данните, които идваха през комуникацията, не можеха да бъдат поставени в изявление за условие, за да тестваме кой бутон е натиснат.

Моля, вижте прикачения код, бележките са коментирани в кода на Python за Pi. Кодът на Arduino трябва да бъде 100%.

Стъпка 9: Заключете

Заключете
Заключете

Като цяло този проект беше ОГРОМНО учене за нас двамата и се надяваме, че това писане може да даде на бъдещите студенти, учители или калайджии някакво вдъхновение за техния собствен проект и да ги напътства, като се учи от нашите грешки. Извикайте на нашия страхотен професор по роботика, който помогна изключително много през нашето време в класа и ни даде възможност да се забавляваме много и да научим много в старши клас по COMP! Благодаря за четенето:)

Препоръчано: