Агуулгын хүснэгт:
- Алхам 1: Энэхүү төсөлд ашигласан зүйлс
- Алхам 2: Тоног төхөөрөмжийн холболт
- Алхам 3: Програм хангамжийн програмчлал
- Алхам 4: Үйл ажиллагаа
Видео: Христийн Мэндэлсний Баярын хөгжмийн баяр хөөр: 4 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Зул сарын баярын мэнд! Тантай харилцах зул сарын гацуур модтой болохыг хүсч байна уу?
Алхам 1: Энэхүү төсөлд ашигласан зүйлс
Тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүд
- Seeeduino V4.2
- Үндсэн бамбай V2
- Grove - Тохируулах боломжтой PIR хөдөлгөөн мэдрэгч
- Гроув - Чанга дууны мэдрэгч
- Grove - WS2813 RGB LED зурвас ус нэвтрүүлдэггүй - 60 LED/м - 1м
Програм хангамж, онлайн үйлчилгээ
Arduino IDE
Алхам 2: Тоног төхөөрөмжийн холболт
PIR Sensor, Loudness Sensor, LED зурвасыг Base Shield -ийн D2, A0, D6 портод тус тусад нь холбоно уу. Base Shield -ийг Seeduino руу залгаарай, бүгдийг нь хийлээ.
Алхам 3: Програм хангамжийн програмчлал
Дараахь номын санг програмчлахаас өмнө суулгах шаардлагатай бөгөөд тэдгээрийг Arduino IDE руу гараар татаж аваад импортлоорой.
- Led_Strip
- Хатагтай Таймер2
- Arduino_Vector
Кодыг илүү товч болгохын тулд бид үүнийг багцалсан. CheerLight анги бол энэ төслийн хэрэглээний анги юм.
ангийн програм:: CheerLight
: нийтийн програм:: интерфейс:: IApplication {public: void setup (void); хоосон тойрог (хоосон); хүчингүй setPIRSensorPin (uint8_t зүү); хүчингүй setLoudnessSensorPin (uint8_t зүү); Мэдрэгч (хүчингүй); void changeAnimation (void * args); void changeSpeed (void * args); void changeColor (void * args); статик програм:: CheerLight * getInstance (хүчингүй); хамгаалагдсан: драйвер:: LEDStrip _ledStrip; жолооч:: PIRSensor _pirSensor; жолооч:: LoudnessSensor _loudnessSensor; uint8_t _animation; дунд програм:: Төлөөлөгч _detectedDelegate; дунд програм:: Төлөөлөгч _absoluteLoudnessDelegate; дундын програм хангамж:: Төлөөлөгч _relationLoudnessDelegate; CheerLight (хүчингүй); статик програм:: CheerLight _instance; };
CheerLight ангийг Singleton Patterns зохион бүтээсэн бөгөөд энэ нь зөвхөн ганцхан жишээ байдаг тул та CheerLight:: getInstance () руу дуудаж болно. Хэрэв таны мэдрэгчийн холболт нь Тоног төхөөрөмжийн холболтоос ялгаатай бол та тэдгээрийг setPIRSensorPin () болон setLoudnessSensorPin () аргуудыг дуудаж өөрчлөх боломжтой.
Мэдрэгчийг цаг тухайд нь хэмжихийн тулд хэмжигч таслах горимд хэмжихSensors () аргыг дуудахыг зөвлөж байна, гэхдээ changeAnimation (), changeSpeed () эсвэл changeColor () аргуудыг гараар дуудах шаардлагагүй. Мэдрэгчийг хэмжих үед тэднийг Төлөөлөгчөөр дамжуулан дуудах болно.
Төлөөлөгч гэж юу вэ?
Бидний мэдэж байгаагаар бид функцийн заагчийг зарлаж, C дээрх функцийг зааж өгч болно.
void func1 (хүчингүй);
void (*pFunc) (void) = func1;
мөн үүнийг зааж өгсөн функцийг дуудахад ашиглана уу
pFunc ();
Гэхдээ хэрэв та дараах кодыг хөрвүүлэхийг оролдвол C ++ дээр ялгаа бий.
А анги {
нийтийн: void func1 (void); }; void (*pFunc) (void) = & A:: func1;
хөрвүүлэгч нь хөрвүүлэлтийн алдааны талаар мэдээлэх болно, энд зөв жишээ байна:
void (A::*pFunc) (void) = & A:: func1;
Бид энэ аргыг дуудахын тулд үүнийг ашиглах гэж оролдоход дахин алдаа гарна. Энэ алдааны шалтгаан нь объект-аргыг объектоор дуудах ёстой. Тиймээс бид үүнийг дуудах объектыг бий болгодог:
А а;
a.*pFunc ();
Энэ удаад ямар ч асуудалгүй. Тиймээс Delegate.h -д Delegate анги байдаг.
загвар
class middleware:: Delegate: public middleware:: interface:: IDelegate {public: Delegate (T *object, void (T:: *method) (void *)); void invoke (void * args); хамгаалагдсан: T * _объект; хүчингүй (T:: *_ арга) (хүчингүй *); }; template inline middleware:: Delegate:: Delegate (T *object, void (T:: *method) (void *)): _object (object), _method (method) {} template inline void middleware:: Delegate:: invoke (void * args) {(_object-> * _ арга) (args); }
Төлөөлөгчийн анги бол загвар анги бөгөөд Төлөөлөгч нь Төлөөлөгчийн ялгаа гэсэн үг бөгөөд тэдгээрийг ижил төрлийн заагчаар зааж өгөхийн тулд яах вэ? Хариулт нь интерфэйс тул IDelegate.h дээр IDelegate интерфэйс байдаг.
дунд шатны програм хангамж:: интерфейс:: IDelegate {
public: virtual void invoke (void * args) = 0; };
PIR Sensor and Loudness Sensor -ийн ангид Төлөөлөгчдийн заагчийг хадгалахад ашигладаг _delegates нэртэй хувьсагч байдаг бөгөөд бүх төлөөлөгчдийг _delegates -д дуудахад ашигладаг invokeAllDelegates () нэртэй арга байдаг бөгөөд үүнийг tədbir () арга гэж нэрлэнэ.
ТАЙЛБАР: changeAnimation (), changeSpeed (), changeColor () гэх мэт төлөөлөх аргуудыг timer2 тасалдалд дуудах тул түүнд delay () эсвэл тасалдалд суурилсан бусад функцийг БИДЭЛДЭХ хэрэггүй.
Зөвлөмж болгож буй:
Христийн Мэндэлсний Баярын сүлд мод, програмчлагдах гэрэл нь Arduino -той хамт: 11 алхам
Христийн Мэндэлсний Баярын сүлд мод ба програмчлагдах гэрлийг Arduino -той хамт эргүүлэх: Ардуиногоор зул сарын гацуур мод, програмчлагдах гэрлийг хэрхэн яаж эргүүлэх зул сарын гацуур модыг ардуино, хөргөгч, цоолсон туршилтын самбар, LED гэрэл болон бусад электрон элементүүдээр хэрхэн яаж хийхийг харах болно
Христийн Мэндэлсний Баярын гэрэлд зориулсан NeoPixel C9-сарниулагч: 6 алхам (зурагтай)
Христийн Мэндэлсний Баярын гэрэлд зориулсан NeoPixel Clip-On C9 сарниулагч: Царцсан C9 чийдэн гэх мэт сайн зүйл заримдаа алга болдог. Будаг хагардаг газруудыг та мэднэ. Тийм ээ, Чарли Брауны сайн чанарын царцсан C9 чийдэн .. Энд 12 мм WS2811 NeoPixel хаягтай LED -д тохирох C9 LED сарниулагч байна. П -ээр
Hall Effect Sensor: Христийн Мэндэлсний Баярын хөгжмийн хайрцаг: 4 алхам
Hall Effect Sensor: Христийн Мэндэлсний Баярын хөгжмийн хайрцаг: Энэ бол нэг удаа нээгдсэн хөгжим тоглодог хөгжмийн хайрцаг юм (видеог үзээрэй!). Энэ бол онцгой хүнд зориулж бэлгээ боох гайхалтай, онцгой, өвөрмөц арга юм! Соронзон орон дутагдсанаас таг нээгдсэн эсэхийг шалгахын тулд танхимын эффект мэдрэгчийг ашигладаг
(Зуны) LED String нь баярын (Христийн Мэндэлсний Баярын) LED String!: 5 алхам (зурагтай)
(Зуны) LED String to F Баяр (Христийн Мэндэлсний Баярын) LED String !: Тиймээс би өнгөрсөн зунаас хойш LED -ээр дүүрсэн эдгээр (зуны) утаснууд байсаар л байсан, гэхдээ тэд зүгээр харагдаж байна, гэхдээ Христийн Мэндэлсний Баяр дөхөж байна … Тиймээс би шийдсэн Өнгөрсөн зунаас эхлэн LED -ийг баярын өнгийн өнгөлөг LED болгон хувиргаарай! Шаардлагатай зүйлсийг
Христийн Мэндэлсний Баярын хайрцаг: Arduino/ioBridge Интернетээр хянагддаг Христийн Мэндэлсний Баярын гэрэл ба хөгжмийн шоу: 7 алхам
Христийн Мэндэлсний Баярын хайрцаг: Arduino/ioBridge Интернетээр хянагддаг Христийн Мэндэлсний Баярын гэрэл ба хөгжмийн шоу: Миний зул сарын баярын төсөл нь интернетийн хяналттай Христийн Мэндэлсний Баярын гэрэл, хөгжмийн шоунаас бүрдэнэ. Христийн Мэндэлсний Баярын дууг онлайнаар авах боломжтой бөгөөд үүнийг дараалалд оруулаад хүссэн дарааллаар нь тоглуулж болно. Хөгжмийг FM статусаар дамжуулдаг