- హార్డ్వేర్ అవసరం:
- Arduino యొక్క టోన్ () ఫంక్షన్ను అర్థం చేసుకోవడం :
- Pitches.h శీర్షిక ఫైలు:
- ఆర్డునోలో సంగీత గమనికలను ప్లే చేయడం:
- స్కీమాటిక్ మరియు హార్డ్వేర్:
- ఆర్డునో ప్రోగ్రామ్ వివరణ:
- ఈ మెలోడీ ప్లేయర్ ఆర్డునో సర్క్యూట్ యొక్క పని:
మీ మైక్రోకంట్రోలర్ ప్రాజెక్ట్లను సరళీకృతం చేయడానికి మరియు వేగవంతం చేయడానికి ఆర్డునో ఒక అద్భుతమైన మార్గం, దాదాపు ప్రతిదీ సరళంగా కనిపించేలా చేసిన డెవలపర్ల సంఘానికి ధన్యవాదాలు. మీరు ప్రయత్నించడానికి మరియు ఆనందించడానికి ఇక్కడ చాలా ఆర్డునో ప్రాజెక్టులు ఉన్నాయి. మీ కొన్ని ప్రాజెక్ట్లకు ఏదైనా గురించి తెలియజేయడానికి లేదా వీక్షకులను ఆకట్టుకోవడానికి కొన్ని శబ్దాల చర్య అవసరం కావచ్చు. పియానోలో ప్లే చేయగల దాదాపు ఏదైనా థీమ్ సాంగ్స్ మీ ఆర్డునోలో సాధారణ ప్రోగ్రామ్ మరియు చౌకైన పిజో స్పీకర్ సహాయంతో అనుకరించవచ్చని నేను మీకు చెబితే?
ఈ ట్యుటోరియల్లో ఆర్డ్యునో టోన్ () ఫంక్షన్ను ఉపయోగించి పిజో బజర్ లేదా స్పీకర్పై మెలోడీని ప్లే చేయడం ఎంత సులభం మరియు సులభం అని నేర్చుకుంటాము. ఈ ట్యుటోరియల్ చివరలో మీరు పైరేట్స్ ఆఫ్ కరేబియన్, క్రేజీ ఫ్రాగ్, సూపర్ మారియో మరియు టైటానిక్ యొక్క కొన్ని ప్రసిద్ధ టోన్లను ప్లే చేయగలరు. ఆర్డునోతో పియానో సంగీతం యొక్క ఏదైనా భాగాన్ని ఎలా ప్లే చేయాలో కూడా మీరు నేర్చుకుంటారు. చివరిలో వీడియోను తనిఖీ చేయండి.
హార్డ్వేర్ అవసరం:
- ఆర్డునో (ఏదైనా వెర్షన్ - UNO ఇక్కడ ఉపయోగించబడుతుంది)
- పిజో స్పీకర్ / బజర్ లేదా మరేదైనా 8ohm స్పీకర్.
- బ్రెడ్బోర్డ్
- వైర్లను కనెక్ట్ చేస్తోంది
- పుష్ బటన్లు
- 1 కె రెసిస్టర్ (ఐచ్ఛికం)
Arduino యొక్క టోన్ () ఫంక్షన్ను అర్థం చేసుకోవడం:
టోన్ () ఎలా పనిచేస్తుందో అర్థం చేసుకోవడానికి ముందు పిజో బజర్ ఎలా పనిచేస్తుందో తెలుసుకోవాలి. మేము మా పాఠశాలలో పిజో స్ఫటికాల గురించి నేర్చుకున్నాము, ఇది యాంత్రిక ప్రకంపనలను విద్యుత్తుగా మార్చే ఒక క్రిస్టల్ తప్ప మరొకటి కాదు. ఇక్కడ మనం వేరియబుల్ కరెంట్ (ఫ్రీక్వెన్సీ) ను వర్తింపజేస్తాము, దీని కోసం క్రిస్టల్ కంపించే విధంగా ధ్వనిని ఉత్పత్తి చేస్తుంది. అందువల్ల పిజో బజర్ను కొంత శబ్దం చేయడానికి మనం పిజో ఎలక్ట్రిక్ క్రిస్టల్ను కంపించేలా చేయాలి, పిచ్ మరియు శబ్దం యొక్క స్వరం క్రిస్టల్ ఎంత వేగంగా కంపిస్తుంది అనే దానిపై ఆధారపడి ఉంటుంది. అందువల్ల ప్రస్తుత పౌన frequency పున్యాన్ని మార్చడం ద్వారా టోన్ మరియు పిచ్ను నియంత్రించవచ్చు.
సరే, కాబట్టి మనం ఆర్డునో నుండి వేరియబుల్ ఫ్రీక్వెన్సీని ఎలా పొందగలం ? ఇక్కడే టోన్ () ఫంక్షన్ వస్తుంది. టోన్ () ఒక నిర్దిష్ట పిన్పై నిర్దిష్ట ఫ్రీక్వెన్సీని ఉత్పత్తి చేస్తుంది. అవసరమైతే సమయ వ్యవధిని కూడా పేర్కొనవచ్చు. కోసం వాక్యనిర్మాణం టోన్ () ఉంది
సింటాక్స్ టోన్ (పిన్, ఫ్రీక్వెన్సీ) టోన్ (పిన్, ఫ్రీక్వెన్సీ, వ్యవధి) పారామితులు పిన్: టోన్ ఫ్రీక్వెన్సీని ఉత్పత్తి చేసే పిన్: హెర్ట్జ్లోని టోన్ యొక్క ఫ్రీక్వెన్సీ - సంతకం చేయని పూర్ణాంక వ్యవధి: మిల్లీసెకన్లలో టోన్ యొక్క వ్యవధి (ఐచ్ఛికం) - సంతకం చేయని పొడవు
పిన్ యొక్క విలువలు మీ డిజిటల్ పిన్లో ఏదైనా కావచ్చు. నేను ఇక్కడ పిన్ నంబర్ 8 ను ఉపయోగించాను. ఉత్పత్తి చేయగల ఫ్రీక్వెన్సీ మీ ఆర్డునో బోర్డులోని టైమర్ పరిమాణంపై ఆధారపడి ఉంటుంది. UNO మరియు ఇతర సాధారణ బోర్డులకు ఉత్పత్తి చేయగల కనీస పౌన frequency పున్యం 31Hz మరియు ఉత్పత్తి చేయగల గరిష్ట పౌన frequency పున్యం 65535Hz. అయితే మనం మానవులు 2000Hz మరియు 5000 Hz మధ్య పౌన encies పున్యాలను మాత్రమే వినగలం.
Pitches.h శీర్షిక ఫైలు:
ఇప్పుడు, ఆర్డునో టోన్ () ఫంక్షన్ను ఉపయోగించి కొంత శబ్దాన్ని ఎలా ఉత్పత్తి చేయాలో మాకు తెలుసు. కానీ, ప్రతి ఫ్రీక్వెన్సీకి ఎలాంటి టోన్ ఉత్పత్తి అవుతుందో మనకు ఎలా తెలుసు?
ఆర్డునో మాకు ఒక గమనిక పట్టికను ఇచ్చారు, ఇది ప్రతి పౌన frequency పున్యాన్ని నిర్దిష్ట సంగీత గమనిక రకానికి సమానం. ఈ గమనిక పట్టికను మొదట బ్రెట్ హగ్మాన్ రాశారు, దీని పని మీద టోన్ () ఆదేశం ఆధారపడింది. మేము మా థీమ్లను ప్లే చేయడానికి ఈ గమనిక పట్టికను ఉపయోగిస్తాము. మీరు షీట్ మ్యూజిక్ గురించి తెలిసినవారైతే మీరు ఈ టేబుల్ గురించి కొంత అర్ధం చేసుకోగలుగుతారు, నా లాంటి ఇతరులకు ఇవి కోడ్ యొక్క మరొక బ్లాక్.
# NOTE_B0 31 ను నిర్వచించండి # NOTE_C1 33 ని నిర్వచించండి # NOTE_CS1 35 # నిర్వచించండి NOTE_D1 37 # నిర్వచించండి NOTE_DS1 39 # NOTE_E1 41 ను నిర్వచించండి # # NOTE_F1 44 # నిర్వచించండి NOTE_B1 62 # నిర్వచించండి NOTE_C2 65 # నిర్వచించండి NOTE_CS2 69 # నిర్వచించండి NOTE_D2 73 # NOTE_DS2 78 ని నిర్వచించండి # NOTE_E2 82 # NOTE_F2 87 ని నిర్వచించండి # NOTE_C3 131 ని నిర్వచించండి # NOTE_CS3 139 # నిర్వచించండి NOTE_D3 147 # NOTE_DS3 ని నిర్వచించండి 156 # NOTE_E3 165 # నిర్వచించండి NOTE_F3 175 # నిర్వచించండి NOTE_C4 262 # NOTE_CS4 277 # నిర్వచించండి NOTE_D4 294 # నిర్వచించండి NOTE_DS4 311 # NOTE_E4 330 ని నిర్వచించండి # NOTE_F4 349 ని నిర్వచించండి# NOTE_FS4 370 ను నిర్వచించండి # NOTE_G4 392 # నిర్వచించండి NOTE_GS4 415 # నిర్వచించండి NOTE_A4 440 # నిర్వచించండి NOTE_AS4 466 # నిర్వచించండి NOTE_B4 494 # నిర్వచించండి NOTE_C5 523 # నిర్వచించండి NOTE_CS5 554 # నిర్వచించండి NOTE_FS5 740 # నిర్వచించండి NOTE_G5 784 # నిర్వచించండి NOTE_GS5 831 # నిర్వచించండి NOTE_A5 880 # నిర్వచించండి NOTE_AS5 932 # నిర్వచించండి NOTE_B5 988 # నిర్వచించండి NOTE_C6 1047 # NOTE_CS6 1109 # నిర్వచించండి #E__ # NOTE_G6 1568 ను నిర్వచించండి # NOTE_GS6 1661 ను నిర్వచించండి # NOTE_A6 1760 # నిర్వచించండి NOTE_AS6 1865 # NOTE_B6 1976 ను నిర్వచించండి # NOTE_C7 2093 ను నిర్వచించండి # NOTE_CS7 2217 # నిర్వచించండి NOTE_D7 23E # NOTE_G7 3136 # NOTE_GS7 3322 ని నిర్వచించండి # NOTE_A7 3520 ని నిర్వచించండి # NOTE_AS7 ని నిర్వచించండి3729 # NOTE_B7 3951 # నిర్వచించండి NOTE_C8 4186 # నిర్వచించండి NOTE_CS8 4435 # NOTE_D8 4699 ని నిర్వచించండి # NOTE_DS8 4978 ను నిర్వచించండి
కోడ్ ఈ జిప్ ఫైల్ లో pitches.h శీర్షిక ఫైల్ లో ఇవ్వబడుతుంది పైన , మీరు కేవలం డౌన్లోడ్ అవసరం మరియు ముగింపు ఈ ట్యుటోరియల్ ఇచ్చిన లేదా జిప్ ఫైల్ లో ఇచ్చిన కోడ్ ఉపయోగించడానికి వంటి మా Arduino కోడ్ లో ఈ ఫైలు ఉన్నాయి.
ఆర్డునోలో సంగీత గమనికలను ప్లే చేయడం:
ఆర్డునో ఉపయోగించి మంచి శ్రావ్యత ఆడటానికి ఈ శ్రావ్యాలు ఏమిటో మనం తెలుసుకోవాలి. థీమ్ ఆడటానికి అవసరమైన మూడు ప్రధాన కారకాలు
- గమనిక విలువ
- గమనిక వ్యవధి
- టెంపో
ఏదైనా గమనిక విలువను ఆడటానికి మన దగ్గర పిచ్స్.హెచ్ హెడర్ ఫైల్ ఉంది, ఇప్పుడు దాన్ని ప్లే చేయడానికి దాని నిర్దిష్ట నోట్ వ్యవధిని తెలుసుకోవాలి. టెంపో ఏమీ కాదు, శ్రావ్యత ఎంత వేగంగా ఆడాలి. మీరు గమనిక విలువ మరియు గమనిక వ్యవధిని తెలుసుకున్న తర్వాత మీరు వాటిని టోన్ () వంటి టోన్తో ఉపయోగించవచ్చు
టోన్ (పిన్ నేమ్, నోట్ వాల్యూ, నోట్ వ్యవధి);
ఈ ట్యుటోరియల్లో ప్లే చేసిన టోన్ల కోసం “థీమ్స్.హెచ్” హెడర్ ఫైల్ లోపల నోట్ విలువ మరియు నోట్ వ్యవధిని మీకు ఇచ్చాను, వీటిని ఉపయోగించి మీరు వాటిని మీ ప్రాజెక్ట్లలో ప్లే చేయవచ్చు. మీ గనిలో మీకు ఏదైనా నిర్దిష్ట స్వరం ఉంటే మరియు మీరు చదివిన మీ ప్రాజెక్ట్లో ప్లే చేయాలనుకుంటే…. లేకపోతే ఈ అంశాన్ని దాటవేసి తదుపరిదానికి వస్తాయి.
ఏదైనా నిర్దిష్ట స్వరాన్ని ప్లే చేయడానికి మీరు ఆ నిర్దిష్ట సంగీతం యొక్క షీట్ సంగీతాన్ని పొందాలి మరియు దాని నుండి గమనిక విలువ మరియు గమనిక వ్యవధిని చదవడం ద్వారా షీట్ సంగీతాన్ని ఆర్డునో స్కెచ్కు మార్చాలి. మీరు సంగీత విద్యార్ధి అయితే అది మీ కోసం కేక్ ముక్క అవుతుంది, లేకపోతే కొంత సమయం గడిపాను మరియు నేను చేసినట్లుగా మిమ్మల్ని విచ్ఛిన్నం చేస్తాను. కానీ పిజో బజర్లో మీ స్వరం ఆడుతున్న రోజు చివరిలో మీరు మీ ప్రయత్నానికి విలువనిస్తారు.
మీరు గమనిక విలువ మరియు గమనిక వ్యవధిని కలిగి ఉంటే, క్రింద చూపిన విధంగా వాటిని “theme.h” హెడర్ ఫైల్ లోపల ప్రోగ్రామ్లోకి లోడ్ చేయండి
// ############# ** "అతను పైరేట్" పైరేట్స్ ఆఫ్ కరేబియన్ యొక్క థీమ్ సాంగ్ ** ############# // int పైరేట్స్_నోట్ = {NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4 NOTE_A3, NOTE_C4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_4, NOTE_4 NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_D4, 0, 0, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_F4, NOTE_G4, NOTE_G4, NOTE_G4, NOTE_G4, NOTE_G4, NOTE_G4 0, NOTE_D4, NOTE_E3, NOTE_F4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_D4, 0, NOTE_D4, NOTE_F4,NOTE_E4, NOTE_E4, NOTE_F4, NOTE_D4}; int పైరేట్స్_ వ్యవధి = {4,8,4,8,4,8,8,8,8,4,8,4,8,4,8,8,8,8,4,8,4,8, 4, 8,8,8,8,4,4,8,8,4,4,8,8,4,4,8,8, 8,4,8,8,8,4,4,8,8, 4,4,8,8,4,4,8,4, 4,8,8,8,8,4,4,8,8,4,4,8,8,4,4,8,8, 8,4,8,8,8,4,4,4,8,4,8,8,8,4,4,8,8}; // ########### అతను ముగింపు ఒక పైరేట్ పాట ############ //
పై కోడ్ ఆఫ్ కోడ్ "పైరేట్స్ ఆఫ్ ది కరీబియన్" చిత్రం "అతను పైరేట్" థీమ్ యొక్క గమనిక విలువ మరియు గమనిక వ్యవధిని చూపుతుంది. మీరు మీ థీమ్ను ఇలాగే జోడించవచ్చు.
స్కీమాటిక్ మరియు హార్డ్వేర్:
ఈ ఆర్డునో టోన్ జనరేటర్ ప్రాజెక్ట్ ప్రాజెక్ట్ యొక్క స్కీమాటిక్ క్రింది చిత్రంలో చూపబడింది:
కనెక్షన్ చాలా సులభం, మనకు పిజో స్పీకర్ ఉంది, ఇది 1 కె రెసిస్టర్ ద్వారా పిన్ 8 మరియు గ్రౌండ్ ఆఫ్ ది ఆర్డునోకు అనుసంధానించబడి ఉంది. ఈ 1 కె రెసిస్టర్ ప్రస్తుత పరిమితి నిరోధకం, ఇది కరెంట్ను సురక్షిత పరిమితుల్లో ఉంచడానికి ఉపయోగించబడుతుంది. అవసరమైన శ్రావ్యతను ఎంచుకోవడానికి మాకు నాలుగు స్విచ్లు కూడా ఉన్నాయి. స్విచ్ యొక్క ఒక చివర భూమికి అనుసంధానించబడి ఉంటుంది మరియు మరొక చివర వరుసగా పిన్ 2, 3, 4 మరియు 5 కి అనుసంధానించబడి ఉంటుంది. స్విచ్లు సాఫ్ట్వేర్ను ఉపయోగించి అంతర్గతంగా ప్రారంభించబడిన పుల్ అప్ రెసిస్టర్లను కలిగి ఉంటాయి. సర్క్యూట్ చాలా సులభం కనుక ఇది క్రింద చూపిన విధంగా బ్రెడ్ బోర్డ్ ఉపయోగించి కనెక్ట్ చేయవచ్చు:
ఆర్డునో ప్రోగ్రామ్ వివరణ:
మీరు భావనను అర్థం చేసుకున్న తర్వాత, ఆర్డునో ప్రోగ్రామ్ చాలా సరళంగా ముందుకు ఉంటుంది. పూర్తి కోడ్ ట్యుటోరియల్ చివరిలో ఇవ్వబడింది. హెడర్ ఫైళ్ళను జోడించడం మీకు తెలియకపోతే, మీరు కోడ్ను ఇక్కడ నుండి జిప్ ఫైల్గా డౌన్లోడ్ చేసుకొని నేరుగా మీ ఆర్డునోకు అప్లోడ్ చేయవచ్చు.
పై రెండు జతచేయవలసిన హెడర్ ఫైల్స్. "Pitches.h" ఒక ప్రత్యేకమైన పౌనఃపున్యాన్ని మరియు ప్రతి సంగీత నోట్ అర్ధంతో కొన్నిసార్లు ఉపయోగిస్తారు "themes.h" నోటు విలువ మరియు నాలుగు స్వరాలను గమనిక వ్యవధి కలిగి.
#include "pitches.h" # చేర్చండి "theme.h"
అవసరమైనప్పుడు ప్రతి స్వరాన్ని ప్లే చేయడానికి ఒక ఫంక్షన్ సృష్టించబడుతుంది. ఇక్కడ Play_Pirates () ఫంక్షన్ను “అతడు పైరేట్” అని పిలిచినప్పుడు టోన్ ఆడబడుతుంది. ఈ ఫంక్షన్ పిన్ నంబర్ 8 వద్ద ఫ్రీక్వెన్సీని ఉత్పత్తి చేసే టోన్ ఫంక్షన్ను కలిగి ఉంటుంది. సంగీతాన్ని ప్లే చేసిన తర్వాత దాన్ని ఆపడానికి నోటోన్ (8) అంటారు. మీరు మీ స్వంత స్వరాన్ని ప్లే చేయాలనుకుంటే, పైరేట్స్_నోట్ మరియు పైరేట్స్_ వ్యవధిని మీరు “థీమ్స్.హెచ్” విలువలో సేవ్ చేసిన క్రొత్త గమనిక మరియు వ్యవధి విలువలకు మార్చండి.
(int thisNote = 0; thisNote <(sizeof (Pirates_note) / sizeof (int)); thisNote ++) {int noteDuration = 1000 / Pirates_duration; // వ్యవధిని ఆలస్యం టోన్గా మార్చండి (8, పైరేట్స్_నోట్, నోట్డ్యూరేషన్); int pauseBetweenNotes = noteDuration * 1.05; // ఇక్కడ 1.05 టెంపో, నెమ్మదిగా ఆలస్యం ఆడటానికి పెంచండి (pauseBetweenNotes); నోటోన్ (8); }}
పిన్ 2, 3, 4 మరియు 5 ప్రత్యేకమైన టోన్ను ఎంచుకోవడానికి ఉపయోగిస్తారు. పైన పేర్కొన్న కోడ్ను ఉపయోగించడం ద్వారా అంతర్గత పుల్ అప్ రెసిస్టర్లను ఉపయోగించి ఈ పిన్లు అప్రమేయంగా అధికంగా ఉంటాయి. బటన్ నొక్కినప్పుడు అది నేలమీదకు లాగబడుతుంది.
పిన్మోడ్ (2, INPUT_PULLUP); పిన్మోడ్ (3, INPUT_PULLUP); పిన్మోడ్ (4, INPUT_PULLUP); పిన్మోడ్ (5, INPUT_PULLUP);
ఒక బటన్ నొక్కినప్పుడు పాటను ప్లే చేయడానికి కోడ్ ఆఫ్ బ్లాక్ క్రింద ఉపయోగించబడుతుంది. ఇది ప్రతి బటన్ యొక్క డిజిటల్ విలువను చదువుతుంది మరియు అది తక్కువ (సున్నా) వచ్చినప్పుడు బటన్ నొక్కినట్లు umes హిస్తుంది మరియు అవసరమైన ఫంక్షన్ను పిలవడం ద్వారా సంబంధిత టోన్ను ప్లే చేస్తుంది.
if (DigitalRead (2) == 0) {Serial.println ("ఎంచుకున్నది -> 'అతను పైరేట్'"); ప్లే_ పైరేట్స్ (); } if (DigitalRead (3) == 0) {Serial.println ("ఎంచుకున్నది -> 'క్రేజీ ఫ్రాగ్'"); Play_CrazyFrog (); } if (DigitalRead (4) == 0) {Serial.println ("ఎంచుకున్నది -> 'మారియో అండర్ వరల్డ్'"); Play_MarioUW (); } if (DigitalRead (5) == 0) {Serial.println ("ఎంచుకున్నది -> 'అతను పైరేట్'"); ప్లే_ పైరేట్స్ (); }
ఈ మెలోడీ ప్లేయర్ ఆర్డునో సర్క్యూట్ యొక్క పని:
మీ కోడ్ మరియు హార్డ్వేర్ సిద్ధమైన తర్వాత, ప్రోగ్రామ్ను మీ ఆర్డునోలో బర్న్ చేయండి మరియు మీరు బటన్లను నొక్కడం ద్వారా టోన్ని ప్లే చేయగలగాలి. మీకు ఏవైనా సమస్యలు ఉంటే డీబగ్గింగ్ కోసం మీ సీరియల్ మానిటర్ను చూడండి లేదా సమస్యను నివేదించడానికి వ్యాఖ్య విభాగాన్ని ఉపయోగించండి మరియు మీకు సహాయం చేయడానికి నేను సంతోషిస్తాను.
ప్రాజెక్ట్ యొక్క పూర్తి పని క్రింది వీడియోలో చూపబడింది. మీరు ప్రాజెక్ట్ను ఆస్వాదించారని మరియు మీ ప్రాజెక్ట్లో కొన్నింటిని ఉపయోగిస్తారని లేదా మీ ప్రాజెక్ట్ కోసం కొత్త స్వరాన్ని సృష్టిస్తారని ఆశిస్తున్నాము. అవును సంకోచించకపోతే మీ పనిని వ్యాఖ్య విభాగంలో పంచుకోండి.