Բովանդակություն:
- Պարագաներ
- Քայլ 1: 3D տպագրություն
- Քայլ 2: Շղթան
- Քայլ 3. Ազնվամորու Պի պատրաստում
- Քայլ 4: Կոդ
- Քայլ 5: Ամեն ինչ միասին դնել
- Քայլ 6: Մեկ տարի անց…
Video: Երեխաների քնի ուսուցման ժամացույց ՝ 6 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Ինձ ժամացույց էր պետք, որպեսզի օգներ իմ 4 տարեկան երկվորյակներին մի փոքր ավելի երկար ժամանակ սովորել քնել (արդեն բավական է, որ ստիպված եմ արթնանալ շաբաթ օրերին առավոտյան 5: 30 -ին), բայց նրանք դեռ ժամանակ չեն կարողանում կարդալ: Շատ հայտնի գնումների կայքում մի քանի իրեր թերթելուց հետո ես մտածեցի. «Որքա՞ն դժվար կլիներ պարզապես պատրաստել»:
Այսպիսով, ահա այն, ինչ ես մտածեցի, որ ուզում էի այս նախագծում: Երեք տարբեր գույներ ցուցադրելու համար այն կօգտագործեր որոշ RGB LED (հիմնականում այն պատճառով, որ դրանցից մոտ հիսունն ունեմ մեկ այլ նախագծից): Կարմիրը կնշանակի վերադառնալ քնելու, դեռ վաղ է արթնանալ: Դեղինը կնշանակի, որ նրանք կարող են վեր կենալ և հանգիստ խաղալ իրենց սենյակում: Կանաչը, իհարկե, նշանակում է, որ կարող ես վեր կենալ: Նաև ցանկանում էի, որ կարողանամ հարմարեցնել ժամանակը, որովհետև կցանկանայի որոշ օրեր ավելի երկար քնել (հանգստյան օրեր/արձակուրդներ vs աշխատանքային օրեր և այլն):
Պարագաներ
Ազնվամորի Pi Zero W
Երկու RGB LED
Վեց 220 Օմ դիմադրություն
Այստեղ գտնված ֆայլերը (.stl, python, html)
Անհրաժեշտության դեպքում տարբեր փոքր պտուտակներ, լարեր և փոքր մասեր:
Քայլ 1: 3D տպագրություն
Աղջիկս իսկապես միաեղջյուրների նման է, ուստի այս նախագծի համար ես վերամշակեցի Riven02- ի Unicorn Nightlight- ը, որը Apachcreation- ի Unicorn Trophy- ի ռեմիքսն է, որը կարելի է գտնել Thingiverse.com կայքում և օգտագործել Creative Commons ոչ առևտրային լիցենզիայի ներքո: Ես փոփոխեցի միաեղջյուրի հիմքը, որպեսզի տեղավորվի հոսանքի լարը ազնվամորու պի զրոյի համար: Ինձ պատահեց, որ AMZ3D Red PLA- ն շուրջս է տեղադրված, այնպես որ միաեղջյուրի հիմքն ու գլուխը կարմիր կլինեն: Ես օգտագործել եմ թափանցիկ/կիսաթափանցիկ PLA բեղիկի համար:. Stl ֆայլերն ու օգտագործած պարամետրերն են.
Միաեղջյուր. Stl
- Շերտի բարձրությունը `0.02
- Պատի հաստությունը.8
- Պատի գծերի քանակը `2
- Լցնել ՝ 15%
- Լրացման ձև. Ridանց
UnicornBase.stl
- Շերտի բարձրությունը `0.02
- Պատի հաստությունը.8
- Պատի գծերի քանակը `2
- Լցնել ՝ 15%
- Լրացման ձև. Ridանց
Horn.stl
- Շերտի բարձրությունը `0.02
- Պատի հաստությունը `0,8
- Պատի գծերի քանակը `3
- Լցնել ՝ 0
Քայլ 2: Շղթան
Շղթան բավականին հեշտ է: Ես ընտրեցի վեց տարբեր GPIO կապում ՝ RGB- ի տարբեր գույների միացում/անջատումը վերահսկելու համար: Այդ կապումներն ու համապատասխան LED Գույներն են.
- Կցեք 11 -ը RGB 1 ԿԱՐՄԻՐ
- Ամրացրեք 13 -ը RGB 1 GREEN- ին
- Կցեք 15 -ը RGB 1 BLUE- ին
- Կցեք 16 -ը RGB 2 RED- ին
- Կցեք 18 -ը RGB 2 GREEN- ին
- Կցեք 36 -ը RGB 2 BLUE- ին
- Ամրացրեք 39 -ը գետնին
Յուրաքանչյուր քորոց ամրացվում է դիմադրիչին 220 օմ հոսանքի սահմանափակող դիմադրության միջոցով (իհարկե, բացառությամբ գետնի): Ես ռեզիստորը շարել եմ շարքում և ծածկել այն ջերմության նվազեցման խողովակով:
Քայլ 3. Ազնվամորու Պի պատրաստում
Ես ուզում էի, որ կարողանայի վեբ ինտերֆեյսի միջոցով քնի վարժեցնող ժամացույցի ժամեր սահմանել: Այսպիսով, ես պետք է Apache և PHP սերվեր ստեղծեի Raspberry Pi- ի վրա: Առաջին բանը, որ դուք միշտ պետք է անեք Raspberry Pi- ի վրա նոր ծրագրակազմ տեղադրելիս, համոզվելն է, որ այն արդիական է ՝ մուտքագրելով.
sudo apt-get թարմացում
Դրանից հետո մենք իսկապես կարող ենք գործի անցնել: Մենք դա կանենք ՝ տեղադրելով Apache2- ը.
sudo apt -get տեղադրել apache2 -y
սա պետք է տեղադրի Apache վեբ սերվերը: Դուք կարող եք դա ստուգել ՝ օգտագործելով Raspberry pi- ի դիտարկիչը և նավարկելով դեպի.
localhost/
կամ այլ համակարգչի դիտարկիչից նավարկելով ձեր Raspberry Pi- ի IP հասցեով: Ձեր IP հասցեն գտնելու համար.
հյուրընկալողի անունը -I
Սրանք անելը կհանգեցնի Apache վեբ սերվերի կանխադրված էջի: Սա կարող է փոխվել ՝ փոխարինելով index.html- ին, որը գտնվում է/var/www/html/գրացուցակում: Այն կարող է փոխարինվել իմ սեփական index.html ֆայլով:
Հաջորդը մենք կստեղծենք Apache վեբ սերվերը, որպեսզի կարողանանք գործարկել PHP ֆայլերը: Սկսեք ՝ մուտքագրելով.
sudo apt-get տեղադրել php libapache2-mod-php -y
այժմ պետք է կարողանաք sleepset.php ֆայլը տեղադրել/var/www/html- ում index.html ֆայլով:
Ձեր սեփական ցանցում այս էջին նավարկելու համար ձեզ հարկավոր է կարգավորել ձեր Raspberry Pi- ն ստատիկ ip հասցեով (կամ կարող եք պարզապես փորձել պարզել նոր IP հասցեն, երբ ձեր ցանցը ժամանակ առ ժամանակ այն թարմացնի): Որպեսզի դա աշխատի, ձեզ հարկավոր է խմբագրել մի քանի ֆայլ: Դուք պետք է խմբագրեք /etc/dhcpcd.conf ֆայլը հետևյալով.
ինտերֆեյս wlan0
ստատիկ ip_address = 192.168.1.static routers = 192.168.1.1 ստատիկ տիրույթի_անուն_ սերվերներ = 192.168.1.1
Փոխարինեք ձեր ցանցի տեղեկատվությամբ: Միակ բանը, որ ձեզ հարկավոր է անել հիմա, վերագործարկումն է:
sudo վերագործարկում
Google Drive- ի հղումից ֆայլերի տեղադրումը պետք է լինի հետևյալը.
- index.html և sleepset.php պետք է տեղադրվեն/var/www/html գրացուցակում
- sleepset.txt և sleeptrainer1_1.py պետք է տեղադրվեն/home/pi/pythoncode գրացուցակում (ակնարկ. դուք պետք է ստեղծեք այս գրացուցակը)
Այս ֆայլերը ճիշտ գրացուցակում տեղադրելուց հետո, rc.local ֆայլը պետք է փոփոխվի `գործարկման ժամանակ sleeptrainer1_1.py ծրագիրը գործարկելու համար: Rc.local ֆայլը փոփոխելու համար ձեզ հարկավոր կլինի արմատային մակարդակի մուտք, այնպես որ մուտքագրեք.
sudo nano /etc/rc.local
Խմբագրիչում ոլորեք ներքև և 0 ելքի տողից անմիջապես առաջ ավելացրեք.
python /home/pi/pythoncode/sleeptrainer1_1.py &
Այստեղ երկու բան պետք է հիշել.
- Օգտագործեք բացարձակ ֆայլուղին, որպեսզի LINUX- ը չմտածի, որ sleeptraner1_1.py ֆայլը գտնվում է rc.local- ի նույն գրացուցակում:
- Վերջում մի մոռացեք ամպերսանդը (&): սա թույլ կտա LINUX- ին գործարկել այս ֆայլը հետին պլանում և շարունակել բեռնվելը:
Այժմ, պահպանեք ֆայլը `մուտքագրելով ctrl-x, այնուհետև y, երբ պահանջվում է պահել, այնուհետև ENTER:
Այնուհետև մուտքագրեք sudo reboot:
Այստեղ ինչ -որ տեղ պետք է նշվի, որ (նվազագույնը) դուք պետք է փոխեք ձեր Raspberry Pi գաղտնաբառը ՝ օգտագործելով passwd հրամանը: Եթե դեռ չեք արել դա, հիմա լավ ժամանակ կլիներ:
Քայլ 4: Կոդ
Ստորև բերված է ծածկագիրը sleeptrainer1_1.py ֆայլից: Ես օգտագործել եմ datetime օբյեկտ ՝ ժամանակները համեմատելու համար sleepset.txt ֆայլում կարդացածների հետ: Տեքստային ֆայլը պարզապես երկու տող է, առաջինը ՝ ժամով, երկրորդը ՝ րոպեով: sleeptrainer1_1.py- ն մեկ րոպե քնում է հանգույցի կրկնությունների միջև `պրոցեսորը չկապելու համար: Կանաչ լույսն ի սկզբանե չափազանց պայծառ էր դուրս գալիս, ուստի ես օգտագործեցի զարկերակի լայնության մոդուլյացիան ՝ այն մգացնելու համար, երբ կարմիրով օգտագործվում էր դեղին:
Python կոդ:
ներմուծեք RPi. GPIO- ն որպես GPIO
datetime- ից ներմուծել datetime որպես dt ներմուծման ժամանակ GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) red1 = 11 red2 = 16 green1 = 13 green2 = 18 blue1 = 15 blue2 = 36 GPIO.setup (red1, GPIO. OUT) GPIO.setup (red2, GPIO. OUT) GPIO.setup (green1, GPIO. OUT) GPIO.setup (green2, GPIO. OUT) GPIO.setup (blue1, GPIO. OUT) GPIO.setup (blue2, GPIO. OUT) p1 = GPIO. PWM (green1, 100) p2 = GPIO. PWM (green2, 100) def readset (): setfile = open ("/home/pi/pythoncode/sleepset.txt", 'r') a = setfile: readline () b = setfile.readline () a = int (a) b = int (b) վերադարձնել a, b def լուսարձակը (գույնը). եթե (գույն == «կարմիր») ՝ GPIO.output (red1, GPIO Բարձր) GPIO.output (red2, GPIO. HIGH) p1.stop () p2.stop () GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (գույն == «կապույտ») GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) p1.stop () p2.stop () GPIO.output (blue1, GPIO. HIGH) GPIO.output (blue2, GPIO): HIGH) elif (գույն == «կանաչ») ՝ GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) p1.start (100) p2.start (100) GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (գույն == «դեղին») ՝ p1.start (60) p2.start (60) GPIO.output (red1, GPIO. HIGH) GPIO.output (red2, GPIO. HIGH) GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (color == "off"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) p1.stop () p2.stop () while True: settime = readset () ժամ, րոպե = settime եթե րոպե == 0: եթե dt (dt.now (). տարի, dt.now (). ամիս, dt.now (). օր, ժամ -2) <dt.now () <dt (dt.now (). տարի, dt.now (). ամիս, dt.now (). օր, ժամ -1, րոպե+30). լուսարձակ («կարմիր») elif dt (dt.now (). տարի, dt.now (ամիս.. օր, ժամ, րոպե). լուսարձակ («դեղին») elif dt (dt.now (). տարի, dt.now (). ամիս, dt.now (). օր, ժամ, րոպե) <dt.now () <dt (dt.now (). տարի, dt.now (). ամիս, dt.now (). օր, ժամ+1, րոպե). լուսարձակ ("կանաչ") այլ. լուսարձակ ("անջատված") elif dt (dt.now (). տարի, dt.now (). ամիս, dt.now (). օր, ho ur-2) <dt.now () <dt (dt.now (). տարի, dt.now (). ամիս, dt.now (). օր, ժամ, րոպե -30). լուսարձակ («կարմիր») elif dt (dt.now (). տարի, dt.now (). ամիս, dt.now (). օր, ժամ, րոպե -30) <dt.now () <dt (dt.now () տարի, dt.now (). ամիս, dt.now (). օր, ժամ, րոպե). լուսարձակ («դեղին») elif dt (dt.now (). տարի, dt.now (). ամիս, dt.now (). օր, ժամ, րոպե) <dt.now () <dt (dt.now (). տարի, dt.now (). ամիս, dt.now (). օր, ժամ+1, րոպե): լուսարձակ («կանաչ») այլ. լուսարձակ («անջատված») ժամանակը: քուն (60)
Index.html ֆայլը HTML- ում ձևավորված հիմնական ձև է: Այն վերցնում է երկու տեքստային տուփերի բովանդակությունը և դրանք փոխանցում sleepset.php ֆայլին ՝ ձևը մշակելու համար: PHP ֆայլը պարզապես փոխարինում է sleepset.txt ֆայլին ՝ թարմացված տվյալներով:
Քայլ 5: Ամեն ինչ միասին դնել
Երբ ծածկագրումն ավարտված է և բոլոր մասերը տպված են, հավաքման ժամանակն է: Ես հետևեցի այս քայլերին ՝ ամեն ինչ հավաքելու համար.
- Հորատեք ներքևի RGB LED- ների չափի երկու փոքր անցք և տեղադրեք LEDS- ն այս անցքերի մեջ:
- Տեղադրեք եղջյուրը միաեղջյուրի գլխի անցքի մեջ և քաշեք այն մինչև այն ամուր: Օգտագործեք սոսինձ ներսից ՝ եղջյուրը ամրացնելու համար:
- Կցեք Raspberry Pi Zero W- ը միաեղջյուրի գլխի ներսում: (Գուցե տաք սոսինձ ատրճանակ օգտագործելը)
- Կցեք միաեղջյուրի գլուխը միաեղջյուրի հիմքին:
- Կցեք հոսանքի լարը և ամրացրեք ամբողջ հավաքածուն պատին:
- Միացրեք ժամացույցը:
Այս պահին ես ունեմ գործող մանկական քնի վարժեցնող ժամացույց:
Քայլ 6: Մեկ տարի անց…
Մեկ տարի անց:
Աղջիկներս մի փոքր երկար են քնում: Մենք սովոր ենք արթնացնել մեր սենյակի փոքրիկ երեխաներին `ասելով.« Հայրիկ, լույսը կանաչ է »: և դա հիանալի է: Կարճ ասած, մենք արթնանում ենք միայն շաբաթ օրը, առավոտյան 5: 30 -ին, երբ դա այլևս պլանավորում ենք:
Այն, ինչ ես նախատեսում եմ բարելավել ապագայում.
- Միգուցե մի քանի սենսորներ կամ խոսափողի և բարձրախոսների նման այլ իրեր ավելացնելը:
- Միգուցե խոսափողի հետ աշխատելու կոդը խմբագրեմ, որպեսզի այն օգտագործվի որպես զարթուցիչ, քանի որ իմ երեխաները շուտով կսկսեն դպրոցը:
Խորհուրդ ենք տալիս:
Կենսաթոշակային ժամացույց / հաշվել / Dn ժամացույց ՝ 4 քայլ (նկարներով)
Կենսաթոշակային ժամացույց / Count Up / Dn ockամացույց. Ես դարակում ունեի այս 8x8 LED dot-matrix ցուցադրումներից մի քանիսը և մտածում էի, թե ինչ անել դրանց հետ: Ոգեշնչված այլ հրահանգներով, ես գաղափար ստացա կառուցել հետհաշվարկի/վերևի ցուցադրում `հետ հաշվելու համար մինչև ապագա ամսաթիվը/ժամը և եթե նպատակային ժամանակը պ
Օբյեկտների վրա հիմնված ծրագրավորում. Օբյեկտների ստեղծում Ուսուցման/ուսուցման մեթոդ/տեխնիկա Մկրատների միջոցով. 5 քայլ
Օբյեկտների վրա հիմնված ծրագրավորում. Օբյեկտների ստեղծում Ուսուցման/ուսուցման մեթոդ/տեխնիկա Մկրատների օգտագործմամբ. Սա միջոց է, որը թույլ է տալիս նրանց պատկերացնել և տեսնել դասերից օբյեկտների ստեղծման գործընթացը: Մասեր. 1. Մկրատ (ցանկացած տեսակի կանի): 2. Թուղթ կամ թղթի կտոր: 3. Մարկեր
C51 4 բիթանոց էլեկտրոնային ժամացույց - փայտյա ժամացույց ՝ 15 քայլ (նկարներով)
C51 4 բիթանոց էլեկտրոնային ժամացույց - Փայտե ժամացույց. Այս հանգստյան օրերին որոշ ժամանակ ունեի, այնպես որ առաջ գնացի և հավաքեցի այս 2.40 ԱՄՆ դոլար արժողությամբ 4 -բիթանոց DIY էլեկտրոնային թվային ժամացույցը, որը ես գնել էի AliExpress- ից քիչ առաջ
Միացված մահճակալի ժամացույց երեխաների համար. 12 քայլ
Միացված մահճակալի ժամացույց երեխաների համար. Հետևելով այս հրահանգներին, դուք կկարողանաք կառուցել ժամացույց, որը շարժումն ակտիվացված է և ցույց կտա ամսաթիվը, ժամը և օրվա համապատասխան իրադարձությունը: Այն ցույց կտա գիշերային ռեժիմը, երբ քնելու ժամանակն է, և երբ երեխաներն արթնանում են, նրանք կարող են արագ հիշել, թե ինչ է
Կառուցեք իսկական զանգակահարիչ ժամացույց ձեր համակարգչի համար և կրակմարիչին հարվածող ժամացույց. 3 քայլ (նկարներով)
Կառուցեք իսկական զանգակ հարվածող ժամացույց ձեր համակարգչի համար և կրակմարիչին հարվածող ժամացույց. Փողային զանգ, մի փոքր ռելե և ևս մի քանի իր իսկական զանգը կարող է ժամերը հարվածել ձեր աշխատասեղանին: Թեև այս նախագիծը գործում է Windows և Mac համակարգիչների վրա: OS X- ը նաև, ես որոշեցի տեղադրել Ubuntu Linux- ը աղբարկղում գտած համակարգչի վրա և աշխատել դրա վրա. Ես երբեք չէի