Orodha ya maudhui:
- Hatua ya 1: Vitu vinavyotumiwa katika Mradi huu
- Hatua ya 2: Uunganisho wa vifaa
- Hatua ya 3: Programu ya Programu
- Hatua ya 4: Operesheni
Video: Nuru ya furaha ya Muziki wa Krismasi: Hatua 4
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:52
Krismasi Njema! Je! Unataka kuwa na mti wa Krismasi ambao unaweza kushirikiana nawe?
Hatua ya 1: Vitu vinavyotumiwa katika Mradi huu
Vipengele vya vifaa
- Seeeduino V4.2
- Shield ya Msingi V2
- Grove - Sensor ya Mwendo wa PIR inayoweza kurekebishwa
- Grove - Sura ya Sauti
- Grove - WS2813 RGB LED Strip Waterproof - 60 LED / m - 1m
Programu za programu na huduma za mkondoni
Arduino IDE
Hatua ya 2: Uunganisho wa vifaa
Unganisha sensorer ya PIR, Sensor ya Loudness na ukanda wa LED kwenye bandari ya Base Shield D2, A0 na D6 kando. Chomeka Ngao ya Msingi kwa Seeduino, yote yamefanywa.
Hatua ya 3: Programu ya Programu
Maktaba zinazofuata chini zinahitaji kusanikishwa kabla ya programu, tafadhali pakua na uiingize kwa IDE yako ya Arduino kwa mikono:
- Umeongoza_Strip
- MsTimer2
- Arduino_Vector
Ili kuifanya nambari iwe fupi zaidi, tumeifunga. Darasa la CheerLight ni darasa la maombi ya mradi huu.
maombi ya darasa:: CheerLight
: maombi ya umma:: interface:: IApplication {public: void setup (batili); kitanzi batili (batili); batili setPIRSensorPin (uint8_t pini); utupu setLoudnessSensorPin (uint8_t pini); Vipimo batili Sensors (batili); mabadiliko batiliUhuishaji (batili * args); mabadiliko ya batili kasi (tupu * args); mabadiliko batili Rangi (batili * args); maombi tuli:: CheerLight * GetInstance (batili); kulindwa: dereva:: LEDStrip _ledStrip; dereva:: PIRSensor _pirSensor; dereva:: LoudnessSensor _loudnessSensor; uint8_t _anionation; middleware:: Mjumbe _detectedDelegate; vifaa vya katikati:: Mjumbe _absoluteLoudnessDelegate; vifaa vya kati:: Mjumbe _relativeLoudnessDelegate; CheerLight (batili); maombi tuli:: CheerLight _instance; };
Darasa la CheerLight liliundwa na Sampuli za Singleton, ambayo inamaanisha kuna mfano mmoja tu kwa hiyo, unaweza kupiga CheerLight:: getInstance () kwa tukio hilo. Ikiwa muunganisho wako wa Sensorer ni tofauti na Muunganisho wa Vifaa, unaweza kuzibadilisha kwa kupiga njia za setPIRSensorPin () na setLoudnessSensorPin ().
Tunapendekeza njia ya kupiga simu ya Sensors () katika kipima muda ili kufanya sensorer ipimwe kwa wakati unaofaa, lakini kupiga simu changeAnimation (), changeSpeed () au changeColor () njia sio lazima. Wataitwa kupitia Wajumbe wakati sensorer inapimwa.
Mjumbe ni nini?
Kama tunavyojua, tunaweza kutangaza kiboreshaji cha kazi na kuifanya ionyeshe kazi katika C:
utupu func1 (utupu);
batili (* pFunc) (batili) = func1;
na itumie kuita kazi iliyoelekezwa kwake
pFunc ();
Lakini kuna tofauti katika C ++, ikiwa unajaribu kukusanya nambari ifuatayo:
darasa A {
umma: utupu func1 (utupu); }; utupu (* pFunc) (utupu) = & A:: func1;
mkusanyaji ataripoti kosa la ubadilishaji wa aina, hapa kuna mfano sahihi:
batili (A:: * pFunc) (batili) = & A:: func1;
Tunapojaribu kuitumia kuita njia hiyo, kosa tena. Sababu ya kosa hilo ni kwamba njia ya kitu lazima iitwe na kitu. Kwa hivyo tunaunda kitu kuiita:
A;
* pFunc ();
Wakati huu hakuna shida. Kwa hivyo kuna darasa la Ujumbe katika Delegate.h.
kiolezo
class middleware:: Delegate: publicwareware:: interface:: IDgate {public: Delegate (T * kitu, batili (T:: * method) (void *)); ombi batili (batili * args); kulindwa: T * _ject; batili (T:: * _ njia) (batili *); }; template inline middleware:: Delegate:: Delegate (T * kitu, batili (T:: * method) (void *)): _object (object), _method (method) {} template inline void middleware:: Delegate:: ombi (batili * args) {(_object -> * _ njia) (args); }
Kwa sababu darasa la Ujumbe ni darasa la templeti, ambayo inamaanisha kuwa Ujumbe ni tofauti kwa Ujumbe, jinsi ya kuwafanya waelekezwe na pointer kuwa na aina moja? Jibu ni kiolesura, kwa hivyo kuna interface ya IDelegate katika IDelegate.h.
darasa la kati vifaa:: kiolesura:: IDelegate {
umma: ombi la utupu wa kweli (batili * args) = 0; };
Katika darasa la Sura ya Sura ya PIR na Loudness, kuna tofauti inayoitwa _delegates inayotumika kuhifadhi pointer ya Wajumbe, na kuna njia inayoitwa invokeAllDelegates () inayotumiwa kuomba Wajumbe wote katika _delegates, itaitwa kwa kipimo () njia.
KUMBUKA: Njia za kukabidhi, kama vile changeAnimation (), changeSpeed () na changeColor () zitaitwa katika timer2 kukatiza, kwa hivyo USITUMIE kuchelewesha () au kazi nyingine inayotegemea kukatiza ndani yake.
Ilipendekeza:
Onyesho la Nuru ya Krismasi Iliyosawazishwa na Muziki !: Hatua 4
Onyesho la Nuru ya Krismasi Iliyosawazishwa na Muziki!: Katika mafunzo haya, nitakuonyesha jinsi ya kutengeneza onyesho la mwangaza la Krismasi lililosawazishwa na muziki wa Krismasi ukitumia saizi za RGB. Usiruhusu jina hilo likutishe! Sio ngumu sana kujifunza jinsi ya kufanya hivyo. Nitawaonya ingawa hii inaweza kuwa kabisa
Taa za Krismasi za Muziki Moja kwa Moja (MSGEQ7 + Arduino): Hatua 6 (na Picha)
Taa za Krismasi za Muziki Moja kwa Moja za DIY (MSGEQ7 + Arduino): Kwa hivyo kila mwaka nasema nitafanya hii na kamwe sitawahi kuifanya kwa sababu ninachelewesha sana. 2020 ni mwaka wa mabadiliko kwa hivyo nasema huu ni mwaka wa kuifanya. Kwa hivyo tunatumahi unapenda na utengeneze taa zako za Krismasi za muziki. Hii itakuwa s
Mti wa Krismasi wa kupumua - Mdhibiti wa Taa ya Krismasi ya Arduino: Hatua 4
Mti wa Krismasi wa Kupumua - Mdhibiti wa Taa ya Krismasi ya Arduino: Sio habari njema kwamba sanduku la kudhibiti la mti wangu wa Krismasi uliowashwa kabla ya kuwaka kabla ya Krismasi, na mtengenezaji haitoi sehemu mbadala. Hii haiwezi kusomeka inaonyesha jinsi ya kutengeneza dereva wako wa mwangaza wa LED na matumizi ya mtawala Ar
Nuru ya Tendaji ya Muziki -- Jinsi ya Kufanya Nuru Nyepesi ya Muziki Tendaji ya Kutengeneza Desktop Awsome .: Hatua 5 (na Picha)
Nuru ya Tendaji ya Muziki || Jinsi ya Kufanya Nuru Nyepesi ya Muziki Kuangaza Mwanga kwa Kufanya Desktop Awsome .: Haya ni nini wavulana, Leo tutaunda mradi wa kupendeza sana. Leo tutaunda taa tendaji ya muziki. Iliyoongozwa itabadilisha mwangaza wake kulingana na bass ambayo kwa kweli ni ishara ya sauti ya masafa ya chini. Ni rahisi sana kujenga. Tutafanya
Furaha ya Krismasi ya Arduino !: Hatua 5 (na Picha)
Furaha ya Krismasi ya Arduino!: Tiss msimu wa kushikamana na Arduino katika maeneo ya sherehe, na mahali pazuri kuliko mti wa Krismasi! Katika mradi huu, tutatengeneza mti wa Krismasi ambao unaweza kuimba rundo la nyimbo tofauti za Krismasi na kuwasha kwa kushirikiana na mu