Სარჩევი:
- ნაბიჯი 1: ინგრედიენტები
- ნაბიჯი 2: შეაერთეთ ულტრაბგერითი სენსორები Octasonic დაფასთან
- ნაბიჯი 3: შეაერთეთ ლოგიკური დონის გადამყვანი Octasonic დაფასთან
- ნაბიჯი 4: შეაერთეთ ლოგიკური დონის გადამყვანი Raspberry Pi– სთან
- ნაბიჯი 5: დაუკავშირეთ Raspberry Pi 5V Octasonic 5V– ს
- ნაბიჯი 6: დააინსტალირეთ პროგრამული უზრუნველყოფა
- ნაბიჯი 7: შექმენით მუსიკა
- ნაბიჯი 8: ჟესტების კონტროლი
- ნაბიჯი 9: დანართის დამზადება
- ნაბიჯი 10: პრობლემების მოგვარება და შემდეგი ნაბიჯები
ვიდეო: ულტრაბგერითი პიანინო ჟესტური კონტროლით!: 10 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ეს პროექტი იყენებს იაფ HC-SR04 ულტრაბგერითი სენსორებს, როგორც შესასვლელს და წარმოქმნის MIDI ჩანაწერებს, რომლებიც შეიძლება ჟანგბადის პიზე სინთეზატორით დაკვრა მაღალი ხარისხის ბგერისთვის.
პროექტი ასევე იყენებს ჟესტების კონტროლის ძირითად ფორმას, სადაც მუსიკალური ინსტრუმენტის შეცვლა შესაძლებელია ორი უკიდურესი სენსორის ხელების დაჭერით რამდენიმე წამით. კიდევ ერთი ჟესტი შეიძლება გამოყენებულ იქნას Raspberry Pi- ის დახურვის შემდეგ.
ზემოთ მოყვანილი ვიდეო გვიჩვენებს მზა პროდუქტს მარტივ ლაზერულ ჭრილში. მოგვიანებით არის უფრო დეტალური ვიდეო ამ ინსტრუქციებში, რომელიც განმარტავს, თუ როგორ მუშაობს პროექტი.
მე შევქმენი ეს პროექტი Gizmo Dojo– სთან ერთად (ჩემი ადგილობრივი მწარმოებელი Broomfield, CO), რათა შემექმნა ინტერაქტიული ექსპონატები, რომელთა გადატანა შეგვიძლია ადგილობრივ STEM/STEAM ღონისძიებებსა და Maker Faires– ში.
გთხოვთ ასევე გაეცნოთ უახლეს დოკუმენტაციას და გაკვეთილებს https://theotherandygrove.com/octasonic/, რომელიც ახლა შეიცავს ინფორმაციას ამ პროექტის პითონის ვერსიაზე (ეს ინსტრუქცია დაიწერა ჟანგის ვერსიისთვის).
ნაბიჯი 1: ინგრედიენტები
ამ ინსტრუქციისთვის დაგჭირდებათ შემდეგი ინგრედიენტები:
- ჟოლო Pi (2 ან 3) SD ბარათით
- 8 ულტრაბგერითი სენსორი HC-SR04
- Octasonic Breakout დაფა
- ორმხრივი ლოგიკური დონის კონვერტორი
- 32 x 12 "ქალი-ქალი მხტუნავი მავთულები ულტრაბგერითი სენსორების დასაკავშირებლად
- 13 x 6 "ქალი-ქალი Jumper მავთულები Raspberry Pi, Octasonic და Logic Level Converter დასაკავშირებლად
- შესაფერისი კვების წყარო Raspberry Pi– სთვის
- კომპიუტერის დინამიკები ან მსგავსი
მე გირჩევთ გამოიყენოთ Raspberry Pi 3, თუ ეს შესაძლებელია, ვინაიდან მას აქვს მეტი გამომთვლელი ძალა, რაც გამოიწვევს უფრო საპასუხო და სასიამოვნო ხმას. მას შეუძლია მშვენივრად იმუშაოს Raspberry Pi 2 -ით მცირედი შესწორებით, მაგრამ მე არ შევეცდები გამოვიყენო ორიგინალური Raspberry Pi ამ პროექტისთვის.
HC -SR04 ულტრაბგერითი სენსორებს აქვთ 4 კავშირი - 5V, GND, Trigger და Echo. როგორც წესი, Trigger და Echo დაკავშირებულია მიკროკონტროლერის ან Raspberry Pi- ს ცალკეულ ქინძისთავებთან, მაგრამ ეს ნიშნავს, რომ თქვენ დაგჭირდებათ 16 ქინძისთავის გამოყენება 8 სენსორის დასაკავშირებლად და ეს პრაქტიკული არ არის. სწორედ აქ შემოდის Octasonic Breakout დაფა. ეს დაფა უკავშირდება ყველა სენსორს და აქვს გამოყოფილი მიკროკონტროლი, რომელიც აკონტროლებს სენსორებს და შემდეგ დაუკავშირდება Raspberry Pi– ს SPI– ით.
HC-SR04 მოითხოვს 5V- ს და Raspberry Pi არის მხოლოდ 3.3V, ამიტომ ჩვენ ასევე გვჭირდება ლოგიკური დონის გადამყვანი, რომელიც Raspberry Pi- ს აკავშირებს Octasonic გარღვევის დაფაზე.
ნაბიჯი 2: შეაერთეთ ულტრაბგერითი სენსორები Octasonic დაფასთან
გამოიყენეთ 4 ქალი-ქალი ჯუმბერის მავთული თითოეული ულტრაბგერითი სენსორის დაფაზე დასაკავშირებლად, ფრთხილად იყავით, რომ სწორად დააკავშიროთ ისინი. დაფა შექმნილია ისე, რომ ქინძისთავები იყოს იმავე თანმიმდევრობით, როგორც ულტრაბგერითი სენსორის ქინძისთავები. დაფაზე მარცხნიდან მარჯვნივ, ქინძისთავები არის GND, Trigger, Echo, 5V.
ნაბიჯი 3: შეაერთეთ ლოგიკური დონის გადამყვანი Octasonic დაფასთან
Raspberry Pi და Octasonic Board ურთიერთობენ SPI– ით. SPI იყენებს 4 მავთულს:
- Master in, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- სერიული საათი (SCK)
- მონათა შერჩევა (SS)
გარდა ამისა, ჩვენ გვჭირდება ენერგიის დაკავშირება (5V და GND).
ლოგიკური დონის გადამყვანს აქვს ორი მხარე - დაბალი ძაბვა (LV) და მაღალი ძაბვა (HV). ჟოლო დაუკავშირდება LV მხარეს, რადგან ეს არის 3.3V. Octasonic დაუკავშირდება HV მხარეს, რადგან ის არის 5V.
ეს ნაბიჯი არის Octasonic– ის დასაკავშირებლად ლოგიკური დონის გადამყვანის HV მხარეს
იხილეთ ამ საფეხურზე თანდართული ფოტო, სადაც ნაჩვენებია რომელი ქინძისთავები უნდა იყოს დაკავშირებული ლოგიკური დონის გადამყვანთან.
კავშირები Octasonic– დან Logic Level– ის გადამყვანთან უნდა იყოს შემდეგი:
- 5V HV– მდე
- SCK- დან HV4- მდე
- MISO– დან HV3– მდე
- MOSI– დან HV2– მდე
- SS– დან HV1– მდე
- GND to GND
ნაბიჯი 4: შეაერთეთ ლოგიკური დონის გადამყვანი Raspberry Pi– სთან
Raspberry Pi და Octasonic Board ურთიერთობენ SPI– ით. SPI იყენებს 4 მავთულს:
- Master in, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- სერიული საათი (SCK)
- მონათა შერჩევა (SS)
გარდა ამისა, ჩვენ გვჭირდება ენერგიის დაკავშირება (3.3V და GND). ლოგიკური დონის გადამყვანს აქვს ორი მხარე - დაბალი ძაბვა (LV) და მაღალი ძაბვა (HV). ჟოლო დაუკავშირდება LV მხარეს, რადგან ეს არის 3.3V. Octasonic დაუკავშირდება HV მხარეს, რადგან ის არის 5V.
ეს ნაბიჯი არის Raspberry Pi ლოგიკური დონის გადამყვანის LV მხარეს დასაკავშირებლად
კავშირები Raspbery Pi– დან ლოგიკური დონის გადამყვანთან უნდა იყოს შემდეგი:
- 3.3V to LV
- GPIO11 (SPI_SCLK) LV4- მდე
- GPIO09 (SPI_MISO) LV3- მდე
- GPIO10 (SPI_MOSI) LV2– დან
- GPIO08 (SPI_CE0_N) SS– დან LV1– მდე
- GND to GND
გამოიყენეთ ამ საფეხურზე დამაგრებული დიაგრამა ჟოლოს პიზე სწორი ქინძისთავების მოსაძებნად!
ნაბიჯი 5: დაუკავშირეთ Raspberry Pi 5V Octasonic 5V– ს
დასამატებელია ერთი ბოლო მავთული. ჩვენ რეალურად უნდა გავამდიდროთ Octasonic დაფა 5V– ით, ასე რომ ჩვენ ამას ვაკეთებთ ერთი Raspberry Pi 5V ქინძისთავის შეერთებით Octasonic AVR სათაურზე 5V პინთან. ეს არის ქვედა მარცხენა პუნქტი AVR სათაურის ბლოკში (ეს არის 2 x 3 ბლოკი დაფის ზედა მარჯვენა კუთხეში). იხილეთ თანდართული ფოტო, სადაც ნაჩვენებია სად არის AVR ბლოკი.
იხილეთ სხვა თანდართული დიაგრამა, რომ იპოვოთ 5V პინი Raspberry Pi– ზე.
ნაბიჯი 6: დააინსტალირეთ პროგრამული უზრუნველყოფა
დააინსტალირეთ Raspian
დაიწყეთ Raspbian Jessie– ს სუფთა ინსტალაციით, შემდეგ განაახლეთ იგი უახლესი ვერსიით:
sudo apt-get განახლება
sudo apt-get განახლება
SPI ჩართვა
თქვენ უნდა ჩართოთ SPI Raspberry Pi– ზე ამ პროექტის მუშაობისთვის! ამისათვის გამოიყენეთ Raspberry Pi Configuration პროგრამა.
ასევე მნიშვნელოვანია Pi- ს გადატვირთვა SPI- ის მოქმედების შემდეგ
დააინსტალირეთ FluidSynth
Fluidsynth არის გასაოცარი უფასო პროგრამული უზრუნველყოფა MIDI synth. თქვენ შეგიძლიათ დააინსტალიროთ იგი ბრძანების სტრიქონიდან ამ ბრძანებით:
sudo apt-get დააინსტალირეთ fluidsynth
დააინსტალირეთ Rust პროგრამირების ენა
ულტრაბგერითი Pi პიანინო ხორციელდება Rust პროგრამირების ენაზე Mozilla– დან (ეს არის C ++ - ის მსგავსი, მაგრამ ცუდი ნაჭრების გარეშე). ეს არის ის, რასაც ყველა მაგარი ბავშვი იყენებს ამ დღეებში.
მიჰყევით ინსტრუქციას https://rustup.rs/, რომ დააინსტალიროთ Rust. თქვენი დროის დაზოგვის მიზნით, მითითებულია ამ ერთი ბრძანების შესრულება. თქვენ შეგიძლიათ მიიღოთ ნაგულისხმევი პასუხები ნებისმიერ კითხვაზე ინსტალაციის დროს.
შენიშვნა: მას შემდეგ რაც განათავსეთ ეს სასწავლო ინსტრუქცია, არის გარკვეული საკითხები ჟოლოს პიზე Ras- ის დაყენებასთან დაკავშირებით. ცუდი დრო:-/ მაგრამ მე შევცვალე ქვემოთ მოცემული ბრძანება საკითხის მოსაგვარებლად. იმედია მალე გამოასწორებენ ამას. მე ვმუშაობ ისეთი სურათის შექმნაზე, რომლის გადმოწერა და SD ბარათზე გადატანა შეუძლიათ ადამიანებს. თუ გსურთ, გთხოვთ დამიკავშირდეთ.
ექსპორტი RUSTUP_USE_HYPER = 1 კურსი https://sh.rustup.rs -sSf | შ
ჩამოტვირთეთ ულტრაბგერითი Pi Piano წყაროს კოდი
ულტრაბგერითი Pi Piano კოდის წყაროს კოდი განთავსებულია github– ზე. კოდის მიღების ორი ვარიანტი არსებობს. თუ თქვენ იცნობთ git და github, შეგიძლიათ მოახდინოთ რეპონის კლონირება:
git clone [email protected]: TheGizmoDojo/UltrasonicPiPiano.git
გარდა ამისა, შეგიძლიათ ჩამოტვირთოთ უახლესი კოდის zip ფაილი.
შეადგინეთ საწყისი კოდი
cd ულტრაბგერითი პიანინო
ტვირთის მშენებლობა -გამოშვება
გამოცადეთ კოდი
სანამ შემდეგ ეტაპზე გადავალთ მუსიკის შექმნაზე, მოდით დავრწმუნდეთ, რომ პროგრამული უზრუნველყოფა მუშაობს და რომ ჩვენ შეგვიძლია სენსორების სწორი მონაცემების წაკითხვა.
გამოიყენეთ შემდეგი ბრძანება პროგრამის გასაშვებად. ეს წაიკითხავს სენსორების მონაცემებს და თარგმნის მათ MIDI შენიშვნებში, რომლებიც შემდეგ იბეჭდება კონსოლზე. სენსორებზე ხელის გადაწევისას თქვენ უნდა ნახოთ გენერირებული მონაცემები. თუ არა, მაშინ გადადით პრობლემების მოგვარების განყოფილებაში ამ ინსტრუქციის ბოლოს.
ტვირთის გაშვება -გამოშვება
თუ გაინტერესებთ, "-გამოშვების" დროშა ეუბნება Rust- ს, შეადგინოს კოდი რაც შეიძლება ეფექტურად, განსხვავებით ნაგულისხმევი "-debug" პარამეტრისგან.
ნაბიჯი 7: შექმენით მუსიკა
დარწმუნდით, რომ თქვენ კვლავ ხართ დირექტორიაში, სადაც გადმოწერეთ საწყისი კოდი და გაუშვით შემდეგი ბრძანება.
ეს "run.sh" სკრიპტი დარწმუნებულია, რომ კოდი შედგენილია და შემდეგ აწარმოებს კოდს, მილსადენს გამოსავალს fluidsynth- ში.
./ გაუშვით.შ
დარწმუნდით, რომ თქვენ გაქვთ გამაძლიერებელი დინამიკები, რომლებიც დაკავშირებულია 3.5 მმ აუდიო ჯეკთან Raspberry Pi- ზე და სენსორებზე ხელის მოძრაობისას უნდა გესმოდეთ მუსიკა.
თუ თქვენ არ გესმით მუსიკა და გაქვთ HDMI მონიტორი მიმაგრებული, მაშინ აუდიო გამომავალი ალბათ იქ მიდის. ამის გამოსასწორებლად, უბრალოდ გაუშვით ეს ბრძანება და შემდეგ ხელახლა დაიწყეთ Pi Piano:
sudo amixer cset numid = 3 1
მოცულობის შეცვლა
მოცულობა (ან "მოგება") მითითებულია "-g" პარამეტრით fluidsynth. თქვენ შეგიძლიათ შეცვალოთ run.sh სკრიპტი და შეცვალოთ ეს მნიშვნელობა. გთხოვთ გაითვალისწინოთ, რომ ამ პარამეტრში მცირე ცვლილებები იწვევს მოცულობის დიდ ცვლილებას, ამიტომ შეეცადეთ გაზარდოთ იგი მცირე რაოდენობით (მაგალითად, 0.1 ან 0.2).
ნაბიჯი 8: ჟესტების კონტროლი
იხილეთ ამ საფეხურზე თანდართული ვიდეო პროექტის სრული დემონსტრირებისთვის, მათ შორის, როგორ მუშაობს ჟესტების კონტროლი.
კონცეფცია ძალიან მარტივია. პროგრამული უზრუნველყოფა თვალყურს ადევნებს რომელი სენსორები არის დაფარული (10 სმ -ის ფარგლებში) და რომელი არა. ეს ითარგმნება 8 ორობითი რიცხვით (1 ან 0). ეს ძალიან მოსახერხებელია, რადგან 8 ორობითი რიცხვის თანმიმდევრობა ქმნის "ბაიტს", რომელსაც შეუძლია წარმოადგინოს რიცხვები 0 -დან 255 -მდე. თუ თქვენ ჯერ კიდევ არ იცით ორობითი რიცხვების შესახებ, მაშინ მე გირჩევთ გაკვეთილის ძიებას. ორობითი რიცხვები არის ფუნდამენტური უნარი, თუ გსურთ გაიგოთ მეტი პროგრამირების შესახებ.
პროგრამული უზრუნველყოფა ასახავს სენსორების ამჟამინდელ მდგომარეობას ერთ ბაიტზე, რომელიც წარმოადგენს მიმდინარე ჟესტს. თუ ეს რიცხვი იგივე დარჩება მთელი რიგი ციკლის განმავლობაში, მაშინ პროგრამული უზრუნველყოფა მოქმედებს ამ ჟესტზე.
იმის გამო, რომ ულტრაბგერითი სენსორები არ არის ძალიან საიმედო და შეიძლება მოხდეს ჩარევა სენსორებს შორის, თქვენ უნდა გამოიჩინოთ გარკვეული მოთმინება ჟესტების გამოყენებისას. სცადეთ შეცვალოთ მანძილი სენსორებისგან და ასევე კუთხე, რომლითაც გიჭირავთ ხელები. თქვენ ასევე ცდილობთ დაიჭიროთ რაიმე ბრტყელი და მყარი სენსორებზე, რათა უკეთ აისახოს ხმა.
ნაბიჯი 9: დანართის დამზადება
თუ გსურთ გახადოთ ეს მუდმივი გამოფენა და შეძლოთ ხალხისთვის მისი ჩვენება, თქვენ ალბათ გსურთ რაიმე სახის დანართი გააკეთოთ. ეს შეიძლება გაკეთდეს ხის, მუყაოს ან მრავალი სხვა მასალისგან. აქ არის ვიდეო, სადაც ნაჩვენებია დანართი, რომელზეც ჩვენ ვმუშაობთ ამ პროექტისთვის. ის ხისგანაა დამზადებული, ხვრელებითაა გაბურღული ულტრაბგერითი სენსორების დასაკავებლად.
ნაბიჯი 10: პრობლემების მოგვარება და შემდეგი ნაბიჯები
Დიაგნოსტიკა
თუ პროექტი არ მუშაობს, ეს ჩვეულებრივ დაკავშირებულია გაყვანილობის შეცდომასთან. მიიღეთ დრო, რომ ორმაგად შეამოწმოთ ყველა კავშირი.
კიდევ ერთი საერთო პრობლემა არის SPI– ის ჩართვა და pi– ს გადატვირთვა.
გთხოვთ ეწვიოთ https://theotherandygrove.com/octasonic/ სრული დოკუმენტაციისთვის, მათ შორის პრობლემების მოგვარების რჩევებს, Rust და Python– ის სპეციალურ სტატიებს, ასევე ინფორმაციას იმის შესახებ, თუ როგორ მიიღოთ მხარდაჭერა.
Შემდეგი ნაბიჯები
პროექტის დასრულებისთანავე გირჩევთ ექსპერიმენტი ჩაატაროთ კოდზე და სცადოთ სხვადასხვა მუსიკალური ინსტრუმენტები. MIDI ინსტრუმენტის კოდები არის 1 -დან 127 -მდე და დოკუმენტირებულია აქ.
გსურთ ერთი მუსიკალური ინსტრუმენტი თითოეული სენსორით განსხვავებული ოქტავა? იქნებ გსურთ თითოეული სენსორი იყოს ცალკე ინსტრუმენტი? შესაძლებლობები თითქმის შეუზღუდავია!
იმედი მაქვს მოგეწონათ ეს სასწავლო. გთხოვთ მოიწონოთ, თუ მოგეწონათ და აუცილებლად გამოიწერეთ ჩემი აქ და ჩემი YouTube არხი მომავალი პროექტების სანახავად.
გირჩევთ:
IOT დაფუძნებული ჟესტური კონტროლირებადი რობოტი: 10 ნაბიჯი (სურათებით)
IOT დაფუძნებული ჟესტური კონტროლირებადი რობოტი: ეს რობოტი არის ჟესტით კონტროლირებადი, რომლის კონტროლირება შესაძლებელია ნებისმიერი ადგილიდან ინტერნეტის დახმარებით. ამ პროექტში აქსელერომეტრი MPU 6050 გამოიყენება ჩვენი ხელების მოძრაობის შესახებ მონაცემების შესაგროვებლად. ის ზომავს ჩვენი ხელის აჩქარებას სამში
კლავიატურის მოდულის პიანინო RGB LED- ით: 5 ნაბიჯი (სურათებით)
კლავიატურის მოდულის საფორტეპიანო RGB LED– ით: Intro გამარჯობა ქალბატონებო და ბატონებო, კეთილი იყოს თქვენი მობრძანება ჩემს პირველ სასწავლებელში! დღეს მე გასწავლით თუ როგორ უნდა შექმნათ ფორტეპიანო, რომლის ძირითადი კომპონენტებია კლავიატურის მოდული და პიეზო ზუზერი და შეძლებს DO-RE-MI დაკვრას და ასე შემდეგ. კლავიატურის მოდული m
SMD 555 ტაიმერი პიანინო!: 4 ნაბიჯი (სურათებით)
SMD 555 ტაიმერი ფორტეპიანო!: გამარჯობა ყველას! ამ სასწავლო ინსტრუქციაში მე გაჩვენებთ, თუ როგორ უნდა გააკეთოთ პატარა ფორტეპიანო საერთო ტაიმერის გამოყენებით 555, მაგრამ SMD კომპონენტებით! SMD ნიშნავს ზედაპირზე დამონტაჟებულ მოწყობილობას და ეს კომპონენტები დამონტაჟებულია ან მოთავსებულია პირდაპირ დაბეჭდილ ზედაპირზე
ნეოპიქსელის მართვადი ბეჭდის კონტროლი ჟესტური სენსორით: 3 ნაბიჯი (სურათებით)
ნეოპიქსელის მართვადი ბეჭდის კონტროლი ჟესტური სენსორით: ამ გაკვეთილში ჩვენ ვაპირებთ ვითამაშოთ ჟესტების სენსორით (APDS-9960) და ნეოპიქსელის ბეჭდით, რომ ვისწავლოთ როგორ გავაერთიანოთ ორივე Arduino UNO- ს გამოყენებით. საბოლოო პროდუქტი უპასუხებს მარცხენა - მარჯვენა ჟესტები მოძრაობის ანიმაციით მარჯვნივ ან მარცხნივ, და თქვენ
მათხოვარი რობოტი სახის კონტროლით და კონტროლით Xbox Controller - Arduino: 9 ნაბიჯი (სურათებით)
მათხოვარი რობოტი სახის კონტროლით და კონტროლი Xbox კონტროლერის მიერ - არდუინო: ჩვენ ვაპირებთ შევქმნათ მათხოვარი რობოტი. ეს რობოტი შეეცდება გააღიზიანოს ან მიიქციოს გამვლელ ადამიანთა ყურადღება. ის გამოავლენს მათ სახეებს და შეეცდება მათზე ლაზერების გადაღებას. თუ რობოტს მონეტას აძლევთ, ის იმღერებს სიმღერას და იცეკვებს. რობოტს დასჭირდება