Სარჩევი:

ამინდზე დაფუძნებული მუსიკის გენერატორი (ESP8266 დაფუძნებული მიდი გენერატორი): 4 ნაბიჯი (სურათებით)
ამინდზე დაფუძნებული მუსიკის გენერატორი (ESP8266 დაფუძნებული მიდი გენერატორი): 4 ნაბიჯი (სურათებით)

ვიდეო: ამინდზე დაფუძნებული მუსიკის გენერატორი (ESP8266 დაფუძნებული მიდი გენერატორი): 4 ნაბიჯი (სურათებით)

ვიდეო: ამინდზე დაფუძნებული მუსიკის გენერატორი (ESP8266 დაფუძნებული მიდი გენერატორი): 4 ნაბიჯი (სურათებით)
ვიდეო: No Man's Sky: A Tribe Called COSMOS? 2024, ივლისი
Anonim
ამინდზე დაფუძნებული მუსიკის გენერატორი (ESP8266 დაფუძნებული მიდი გენერატორი)
ამინდზე დაფუძნებული მუსიკის გენერატორი (ESP8266 დაფუძნებული მიდი გენერატორი)
ამინდზე დაფუძნებული მუსიკის გენერატორი (ESP8266 დაფუძნებული მიდი გენერატორი)
ამინდზე დაფუძნებული მუსიკის გენერატორი (ESP8266 დაფუძნებული მიდი გენერატორი)

გამარჯობა, დღეს მე აგიხსნით, თუ როგორ უნდა შექმნათ თქვენი საკუთარი ამინდიზე დაფუძნებული მუსიკის გენერატორი.

იგი ემყარება ESP8266- ს, რომელიც არდუინოს მსგავსია და რეაგირებს ტემპერატურაზე, წვიმასა და სინათლის ინტენსივობაზე.

ნუ ელოდებით, რომ ის მთელ სიმღერებს ან აკორდის პროგრესირებას მოახდენს. ეს უფრო გენერიკული მუსიკის მსგავსია, რასაც ადამიანები ზოგჯერ მოდულური სინთეზატორით აკეთებენ. მაგრამ ეს ოდნავ ნაკლებად შემთხვევითია, მაგალითად, ის გარკვეულ მასშტაბებს ემორჩილება.

მარაგები

ESP8266 (მე ვიყენებ ბუმბულის Huzzah ESP8266 ადაფრუტიდან)

BME280 ტემპერატურის, ტენიანობის და ბარომეტრიული წნევის სენსორი (I2C ვერსია)

არდუინოს წვიმის სენსორი

25K LDR (შუქზე დამოკიდებული რეზისტორი)

ზოგიერთი რეზისტენტული (ორი 47, ერთი 100, ერთი 220 და ერთი 1k Ohm)

ქალი Midi კონექტორი (5 პინი Din) შესაფერისი PCB სამონტაჟო

Jumper Wires

პურის დაფა ან რაიმე სახის პროტოტიპის დაფა

კომპიუტერი, მე ვიყენებ ერთს Windows 8.1 – ით, მაგრამ ის უნდა მუშაობდეს ნებისმიერ OS– ზე რამდენადაც ვიცი.

სურვილისამებრ: 1250 mAh LiPo ბატარეა JST კონექტორით Adafruit– დან (თავსებადია მხოლოდ ზოგიერთ ESP– სთან)

ნაბიჯი 1: ნაბიჯი 1: პროგრამული უზრუნველყოფა

პირველ რიგში გჭირდებათ Arduino IDE.

შემდეგ გჭირდებათ SiLabs CP2104 დრაივერი და ESP8266 დაფის პაკეტი.

ეს საშუალებას აძლევს თქვენს კომპიუტერს დაპროგრამდეს ESP ჩაშენებული UART საშუალებით და საშუალებას აძლევს Arduino IDE- ს დაპროგრამდეს ESP.

თქვენ შეგიძლიათ იპოვოთ ყველა ინფორმაცია IDE, Driver and Board Package ამ გვერდზე Adafruit ვებსაიტზე.

თქვენ ასევე დაგჭირდებათ Arduino Midi ბიბლიოთეკა, რომ შეძლოთ Midi მონაცემების გაგზავნა. ეს შეიძლება გაკეთდეს გარეშეც, მაგრამ ეს უბრალოდ ბევრად ამარტივებს ყველაფერს.

BME280– თან დასაკავშირებლად გამოვიყენე ეს ბიბლიოთეკა BME280-I2C-ESP32. (ეს არის BME280– ის I2C ვერსიისთვის)

და ეს ბიბლიოთეკა თავის მხრივ მოითხოვს ადაფრუტის ერთიან სენსორულ დრაივერს. ეს არ არის პირველი შემთხვევა, როდესაც მჭირდება ეს ბიბლიოთეკა, რათა გამოვიყენო სხვა ბიბლიოთეკა უპრობლემოდ, ამიტომ მე ყოველთვის მაქვს ეს ბიბლიოთეკა სადღაც მონიშნული.

ნაბიჯი 2: ნაბიჯი 2: აპარატურა

ნაბიჯი 2: აპარატურა
ნაბიჯი 2: აპარატურა
ნაბიჯი 2: აპარატურა
ნაბიჯი 2: აპარატურა
ნაბიჯი 2: აპარატურა
ნაბიჯი 2: აპარატურა

კარგი, ასე რომ, ჩვენ საბოლოოდ მივიღებთ კარგ ნივთებს, ტექნიკას.

როგორც აღვნიშნე მე გამოვიყენე ეს Adafruit ESP, მაგრამ ის უბრალოდ კარგად უნდა მუშაობდეს NodeMCU– სთან. მე გირჩევთ V2 ვერსიას, რადგან მე მჯერა, რომ ის ბევრად ჯდება პურის დაფაზე და შეგიძლიათ მიიღოთ ისინი ძალიან იაფად eBay– დან ან AliExpress– დან. მე მომწონს ის ფაქტი, რომ Adafruit ESP– ს აქვს უფრო სწრაფი CPU, გააჩნია ქალი JST კონექტორი LiPo– სთვის და დამუხტვის წრედ. ასევე ცოტა ადვილია იმის გარკვევა, თუ რა პინს იყენებთ. მე მჯერა, რომ NodeMCU- ზე, მარკირებული D1 არის, ფაქტობრივად, GPIO5, ასე რომ თქვენ ყოველთვის გჭირდებათ Pinout სქემა მოსახერხებელი. სულაც არ არის დიდი საკითხი, მაგრამ ახალბედებისთვის მოსახერხებელი იყო მათ ასე მკაფიოდ შეაფასეს ადაფრუტი.

პირველ რიგში მოდით დავუკავშიროთ BME280, რადგან ამ მოდელში არის ვარიაციები. როგორც სურათებიდან ხედავთ, ჩემსას აქვს ერთი დიდი ხვრელი, მაგრამ ასევე არის რამდენიმე, რომელსაც აქვს 2 ხვრელი. თქვენ ხედავთ, რომ მას აქვს 4 შემოსავალი და გამოსავალი, 1 ენერგიისთვის, ერთი მიწისზედა და SCL და SDA. ეს ნიშნავს, რომ ის ურთიერთობს I2C საშუალებით. მე მჯერა, რომ სხვა მოდელები ურთიერთობენ SPI– ით. ზოგიერთში შეგიძლიათ აირჩიოთ SPI ან I2C. SPI შეიძლება მოითხოვდეს სხვა ბიბლიოთეკას ან სულ მცირე განსხვავებულ კოდს და განსხვავებულ გაყვანილობას. მე ასევე მჯერა, რომ SPI- ში S ნიშნავს სერიალს და ვერ ვიტყვი, ეს ხელს შეუშლის თუ არა ამ პროექტის Midi ნაწილს, რადგან ის ასევე მუშაობს სერიული კავშირის საშუალებით.

ამ BME– ს დაკავშირება საკმაოდ წინ არის. ESP8266– ზე თქვენ ხედავთ, რომ პინ 4 და 5 ეტიკეტებია შესაბამისად SDA და SCL. უბრალოდ დააკავშირეთ ეს ქინძისთავები პირდაპირ SDA და SCL პინზე BME– ზე. რა თქმა უნდა, ასევე დაუკავშირეთ VIN პურის დაფის პოზიციურ რკინიგზას და GND ნეგატიურ რკინიგზას. ესენი თავის მხრივ დაკავშირებულია ESP– ის 3V3 და GND პინთან.

შემდეგი ჩვენ გავაერთიანებთ LDR- ს. ფრიზინგის მაგალითში თქვენ ხედავთ 3.3 ვოლტს, რომელიც გადის რეზისტორში, შემდეგ ის იყოფა LDR და სხვა რეზისტორზე. შემდეგ LDR– ის შემდეგ ის კვლავ იყოფა რეზისტორსა და ADC– ზე.

ეს არის იმისათვის, რომ დაიცვას ESP ძალიან მაღალი ძაბვისგან და დარწმუნდეს, რომ ის იკითხება მნიშვნელობებს. ADC შეუძლია გაუმკლავდეს 0-1 ვოლტს, მაგრამ 3V3 აწვდის 3.3 ვოლტს. ალბათ არ ააფეთქებს 1 ვოლტზე მაღლა, მაგრამ ის კარგად არ იმუშავებს.

ასე რომ, პირველ რიგში ჩვენ ვიყენებთ ძაბვის გამყოფს 220 და 100 Ohm რეზისტორების გამოყენებით ძაბვის დასაწევად 3.3 -დან 1.031 ვოლტამდე. შემდეგ 25k ohm LDR და 1k ohm რეზისტორი ქმნიან სხვა ძაბვის შემმუშავებელს, რომელიც ამცირებს ძაბვას ნებისმიერი ადგილიდან 1.031 -დან 0 ვოლტამდე, რაც დამოკიდებულია LDR- ის სინათლის რაოდენობაზე.

შემდეგ ჩვენ გვაქვს წვიმის სენსორი. ერთი ნაწილი ამბობს FC-37, მეორე ნაწილი HW-103. მე ვიყიდე პირველი, რაც ვიპოვე Ebay– ზე, სადაც ნათქვამია, რომ მას შეუძლია გაუმკლავდეს 3.3 და 5 ვოლტს. (მგონი ყველას შეუძლია).

ეს არის საკმაოდ პირდაპირი, ჩვენ შეგვიძლია გამოვიყენოთ ანალოგური გამომავალი, მაგრამ ჩვენ შეგვიძლია უბრალოდ გადავაქციოთ პატარა Trimpot, რათა სენსორი იყოს ისეთი მგრძნობიარე, როგორც გვსურს (და ჩვენ უკვე გამოვიყენეთ ჩვენი ერთი ანალოგური პინი ESP– ზე). სხვა სენსორების მსგავსად, ჩვენ უნდა მივაწოდოთ ენერგია პოზიტიური რკინიგზისგან და დავუკავშიროთ მას სახმელეთო რკინიგზაზე. ზოგჯერ ქინძისთავების რიგი განსხვავებულია. ჩემზე ეს არის VCC, Ground, Digital, Analog, მაგრამ Fritzing სურათზე სხვაგვარადაა. მაგრამ თუ თქვენ უბრალოდ მიაქცევთ ყურადღებას, ეს ადვილი უნდა იყოს სწორი.

და ბოლოს, მიდი ჯეკი. ჩემს პურის დაფაზე ის ვერ იჯდება პურის დაფის პირას, რადგან ქინძისთავები ყველა არ ემთხვევა. თუ ეს გაწუხებთ, შევეცდები პურის დაფა მივიღო ფიზიკურ მაღაზიაში. ან კარგად დაათვალიერეთ სურათები.

როგორც სქემატურიდან ხედავთ, დადებითი ძაბვა და სერიული სიგნალი ორივე გადის 47 ოჰმ რეზისტორს.

თუ თქვენ აკეთებთ ამ პროექტს Arduino Uno– სთან ერთად, დარწმუნდით, რომ გამოიყენოთ 220 ohm რეზისტორი !! ეს ESP მუშაობს 3.3 V ლოგიკაზე, მაგრამ Arduino– ს უმეტესობა იყენებს 5.0 V– ს, ასე რომ თქვენ უნდა შეზღუდავთ მიმდინარეობას, რომელიც გადის Midi კაბელში.

და ბოლოს შუა პინი დაუკავშირეთ სახმელეთო რკინიგზას. დანარჩენი 2 პინი 5 პინიდან არ გამოიყენება.

ნაბიჯი 3: ნაბიჯი 3: კოდი

და ბოლოს ჩვენ გვაქვს კოდი!

ამ Zip ფაილში დავდე 2 ესკიზი. 'LightRainTemp' უბრალოდ ამოწმებს ყველა სენსორს და აგზავნის მათ მნიშვნელობებს. (დარწმუნდით, რომ გახსენით ტერმინალის ფანჯარა!)

და რა თქმა უნდა, ჩვენ გვაქვს LRTGenerativeMidi (LRT ნიშნავს სინათლეს, წვიმას, ტემპერატურას) ესკიზს.

შიგნით შეგიძლიათ იპოვოთ რამოდენიმე ახსნა კომენტარებში, თუ რა ხდება. მე არ ვაპირებ იმის აღებას, თუ როგორ დავწერე ეს ყველაფერი, ამას საათები დასჭირდება. თუ გსურთ იცოდეთ საიდან დაიწყოთ მსგავსი რამ, მაქვს სხვა პროექტები მხედველობაში. პატარა შემთხვევითი რიფის გენერატორი რამდენიმე ღილაკით და Sequencer რამოდენიმე მახასიათებლით მე ვერ ვპოულობ სხვა მოდელებზე.

მაგრამ ის, ვინც ჯერ დიზაინისა და კოდირების დამთავრება მომიწევს. ნება მომეცით იცოდეთ, თუ გსურთ იყოთ განახლებული სხვა პროექტების შესახებ. მე არ მაქვს გადაწყვეტილი, გავაკეთებ უფრო სასწავლო ინსტრუქციას თუ ვიდეო სერიას.

ნაბიჯი 4: ნაბიჯი 4: მიამაგრეთ და გამოსცადეთ

და ახლა დროა შეამოწმოთ იგი!

უბრალოდ დააკავშირეთ Midi კაბელი, დარწმუნდით, რომ დააყენეთ თქვენი Synth/Keyboard რეაგირება 1 არხზე ან შეცვალეთ არხი Arduino კოდში და ნახეთ მუშაობს თუ არა!

მე ნამდვილად მაინტერესებს იმის დანახვა და მოსმენა, რასაც თქვენ აკეთებთ მასთან. თუ თქვენ შეიტანთ ცვლილებებს, განახლებებს, შესწორებებს (მაგალითად, სინათლის სენსორისა და ტემპერატურის მნიშვნელობებს. გარეთ ის შეიძლება უკეთესად ან უარესად იმუშაოს, ვიდრე შიგნით) არაფერში.

მე ასევე მაინტერესებს ვნახო კარგად მუშაობს თუ არა ყველა სინთეზატორთან. ჩემს ვოლკა ბასზე ის მშვენივრად მუშაობს, მაგრამ ჩემს ნეიტრონზე LFO იჭედება როგორც კი მიდი ნოტს გავგზავნი. კარგია როცა გადატვირთავ, მაგრამ უცნაურია. მე არ ვარ დარწმუნებული, არის თუ არა რაიმე შუალედურ ბიბლიოთეკაში ან ჩემს კოდში, შეიძლება ვცდილობ მალე გავაკეთო ბიბლიოთეკის გარეშე და ვნახო უკეთესობისკენ.

მადლობა კითხვისთვის და ყურებისთვის და წარმატებები !!

გირჩევთ: