Šajā projektā mēs veidosim izklaides objektu, izmantojot Arduino. Mums visiem ir tāds ieradums pieskarties tabulai vai pildspalvai, lai radītu jebkuru nejaušu mūziku. Protams, to var neuzskatīt par labu manierismu, taču mums visiem patīk to darīt vismaz vienu reizi. Tāpēc es domāju to pārcelt uz nākamo līmeni, izmantojot Arduino spēju atskaņot toņus. Kad būsiet izveidojis šo projektu, varēsiet ģenerēt toņus, pieskaroties pirkstiem uz jebkura vadoša elementa un izveidojot savus ritmus, piemēram, spēlējot klavieres uz plaukstas. Labi izklausās labi, tāpēc uzbūvēsim to.
Nepieciešamās sastāvdaļas:
Materiāli, kas nepieciešami šim projektam, ir uzskaitīti zemāk, nav obligāti jāpieturas pie tā paša. Kad esat paņēmis koncepciju, varat to izmantot pats.
- Arduini Pro Mini
- Peizo runātājs
- Elastīgais sensors
- Pirkstu cimdi
- 10K rezistori
- BC547 tranzistori
- 9V akumulators
Shēmas shēma un skaidrojums:
Šī Arduino Palm Piano shēmas shēma ir parādīta zemāk.
Projektā kopā tiek izmantoti četri sensori, tas ir, divi elastīgie sensori un divi Darlingtona pāri, kas darbojas kā skārienjutīgs sensors. Mēs esam arī izmantojuši divus nolaišanas rezistorus R1 un R2, kuru vērtība ir 10k, kas darbosies kā Flex sensora pievilkšanas rezistors. Šeit Flex sensoru izmanto, lai ģenerētu trīs dažādus toņus, izmantojot vienu pirkstu, atkarībā no tā, cik tas ir saliekts. Tātad, izmantojot divus pirkstus, mēs varam radīt 6 skaņas. Uzziniet šeit par Flex sensoru.
Darlingtona pāris:
Pirms turpināt, ir svarīgi zināt, kas ir Darlingtons un kā tas tieši darbojas mūsu projektā. Dārlingtona pāri var definēt kā divus bipolārus tranzistorus, kas savienoti tādā veidā, ka pirmā pastiprināto strāvu tālāk pastiprina otrais tranzistors. Dārlingtona pāris ir parādīts zemāk esošajā attēlā:
Kā parādīts iepriekš, mēs esam izmantojuši divus BC547 tranzistorus, kuru kolektori ir piesaistīti, lai savāktos, un pirmā tranzistora izstarotājs ir savienots ar otrā tranzistora bāzi. Šī shēma darbojas kā pastiprinātājs ar pastiprinājumu, tas nozīmē, ka jebkura maza signāla, kas tiek dots pirmā tranzistora pamatnei, ir pietiekami, lai novirzītu otrā tranzistora pamatni. Mūsu ķermenis šeit darbojas kā zeme, tāpēc ikreiz, kad pieskaramies tranzistora pamatnei, otrais tranzistors kļūst neobjektīvs. Izmantojot to mūsu labā, mēs esam izveidojuši skārienjutīgo sensoru šim projektam.
2. un 3. tapas ir Arduino pārtraucamās tapas, kuras tiks augstas, izmantojot iekšējos pievilkšanas rezistorus, un tad šīs tapas tiks turētas zemē, kad Darlingtonas slēdzis aizveras. Šādā veidā katru reizi, kad pieskaramies vadam (no pirmā tranzistora pamatnes), Arduino tiks aktivizēts pārtraukums.
Izmantojot divus pirkstus, var iegūt tikai divu veidu toņus, tāpēc esmu pievienojis arī elastīgo sensoru, kas mainīs toņu atkarībā no tā, cik daudz tas ir saliekts. Esmu ieprogrammējis ražot trīs dažādus toņus uz pirksta, pamatojoties uz to, cik daudz pirksts (lieces sensors) ir saliekts. Varat palielināt numuru, ja vēlaties, lai pirkstu galos būtu vairāk toņu.
Es izgatavoju pilno tāfeli uz perf dēļa tā, lai tas viegli iekļūtu manās plaukstās, bet jūs varat izmantot arī maizes dēli. Vienkārši pārliecinieties, ka jūsu ķermenis kādā brīdī pieskaras ķēdes zemei. Kad viss ir pielodēts, tam vajadzētu izskatīties apmēram šādi
Esmu izmantojis divus pirkstu cimdus, lai nostiprinātu vadus no Darlington pāra un elastīgo sensoru pozīcijā, kā parādīts iepriekš. Jūs varat nākt klajā ar savu (labāk, ja iespējams) ideju, lai tos nostiprinātu, kamēr spēlējat savus toņus.
Arduino programmēšana:
Šī Arduino Tap Tone Generator programma ir diezgan taisna. Mums vienkārši jāpievērš uzmanība Dārlingtonas vadu pārtraukumiem, un, ja tādi ir atrasti, mums jāspēlē signāls, kas ir atkarīgs no tā, cik elastīgais sensors ir saliekts. Pilns kods ir norādīts šīs ziņas beigās, bet zemāk es paskaidroju dažus svarīgus gabalus.
Piezīme: Šī programma darbojas ar bibliotēkas “pitches.h” palīdzību. Tāpēc pirms kompilēšanas pārliecinieties, vai esat pievienojis galvenes failu savai programmai. Šeit var lejupielādēt galvenes failu pitches.h.
Jo iestatīšanas funkciju, mēs inicializēt pin 2 un 3, kā Input ar pull-up rezistori. Mēs arī paziņot tos pārtraukt tapas un izpildīt tone1 (), ja pastāv pārtrauc uz pin 2 un tone2 () funkciju, ja ir pārtrauc uz 3 rd pin. Šie pārtraukumi tiks aktivizēti ikreiz, kad šīs tapas saņems LOW no sava uzvilktā stāvokļa.
void setup () {pinMode (2, INPUT_PULLUP); pinMode (3, INPUT_PULLUP); attachInterrupt (digitalPinToInterrupt (2), tone1, LOW); attachInterrupt (digitalPinToInterrupt (3), tone2, LOW); Sērijas sākums (9600); }
Cilpas funkcijas iekšpusē mēs pastāvīgi pārbaudām, cik daudz elastīgais sensors ir saliekts. Piemēram, mans FlexSensor 1 sniedza vērtības ap 200, ja to atstāja plakanu, un līdz pat 130, kad es to salieku līdz maksimālajam līmenim, tāpēc vērtību no 200 līdz 130 esmu kartējis kā 1 līdz 3, jo man jāspēlē 3 dažādi veidi toņu. Jums ir jāpielāgo šīs divas līnijas, pamatojoties uz jūsu Flex sensora vērtībām un toņu skaitu.
void loop () {flexSensor1 = karte (analogRead (A0), 200,130,1,3); // Kartējiet ar savām vērtībām, pamatojoties uz savu elastīgo sensoru flexSensor2 = karte (analogRead (A1), 170,185,1,3); // Kartējiet ar savām vērtībām, pamatojoties uz elastīgo sensoru}
Kā jau iepriekš redzējām, funkcijas signāls1 () tiks izpildīts, kad tiek konstatēts pārtraukums uz tapas 2. Tas, kas notiek funkcijas tone1 () iekšpusē, ir parādīts iepriekš. Mēs aplūkojam FlexSensor1 vērtības un atskaņojam signālu, pamatojoties uz flexSesnor vērtību. Toņi tiks atskaņoti, izmantojot funkciju Arduino Tone. Iepriekšējā projektā esam izskaidrojuši funkciju tone ().
void tone1 () {if (flexSensor1 == 1) tonis (8, NOTE_D4,50); else if (flexSensor1 == 2) tonis (8, NOTE_A3,50); else if (flexSensor1 == 3) tonis (8, NOTE_G4,50); cits tonis (8, NOTE_D4,50); }
Zemāk esošā līnija tiek izmantota signāla atskaņošanai. Jūs varat atskaņot jebkuru signālu, kas pieejams galvenes failā “pitches.h”. Piemēram, iepriekšminētā līnija nospiež NOT_A3 uz tapas 50 mili sekunžu laikā.
tonis (8, NOTE_A3,50); // tonis (PinNum, piezīmes nosaukums, ilgums);
Darbs:
Kad aparatūra ir gatava, augšupielādējiet kodu un piestipriniet to uz pirkstiem. Pārliecinieties, ka jūsu ķermenis kādā brīdī pieskaras ķēdes zemei. Tagad vienkārši pieskarieties jebkuram vadošam materiālam vai ķermenim, un jums vajadzētu būt iespējai dzirdēt attiecīgo signālu. Jūs varat atskaņot savu melodiju vai mūziku, pieskaroties dažādiem intervāliem un dažādās pozīcijās.
Tālāk redzamajā videoklipā parādīta projekta pilnīga darbība. Ceru, ka jums patika veidot projektu, visus ieteikumus vai jautājumus var ievietot zemāk esošajā komentāru sadaļā. Pārbaudiet arī mūsu Arduino audio atskaņotāju un Arduino toņu ģeneratora projektu.