Cov txheej txheem:

Attiny85 Txoj Kev Kawm Ib Leeg lossis Pumpkin Nrog Lub Qhov Muag Muaj Xim Xim: 7 Kauj Ruam
Attiny85 Txoj Kev Kawm Ib Leeg lossis Pumpkin Nrog Lub Qhov Muag Muaj Xim Xim: 7 Kauj Ruam

Video: Attiny85 Txoj Kev Kawm Ib Leeg lossis Pumpkin Nrog Lub Qhov Muag Muaj Xim Xim: 7 Kauj Ruam

Video: Attiny85 Txoj Kev Kawm Ib Leeg lossis Pumpkin Nrog Lub Qhov Muag Muaj Xim Xim: 7 Kauj Ruam
Video: 2.5.3 Неопределенные местоимения – Qhia ntawv Askiv Hais uas lus Hmoob 2024, Kaum ib hlis
Anonim

Los ntawm jumbleviewJumbleview.infoFollow Ntau los ntawm tus sau:

Lub suab quaj
Lub suab quaj
Lub suab quaj
Lub suab quaj
Hloov Cov Roj NiCd Nrog Cov Khoom Siv Hluav Taws Xob Sab Nraud
Hloov Cov Roj NiCd Nrog Cov Khoom Siv Hluav Taws Xob Sab Nraud
Hloov NiCd Roj Teeb Nrog Cov Khoom Siv Hluav Taws Xob Sab Nraud
Hloov NiCd Roj Teeb Nrog Cov Khoom Siv Hluav Taws Xob Sab Nraud
Lub Koob Yees Duab Kov
Lub Koob Yees Duab Kov
Lub Koob Yees Duab Kov
Lub Koob Yees Duab Kov

Txog: Kuv ua haujlwm ua software engineer hauv ib ntawm Bay Area (California) cov tuam txhab. Thaum twg los xij kuv muaj sijhawm kuv nyiam ua cov tswj hwm micro, tsim cov khoom ua si, thiab ua qee qhov haujlwm txhim kho hauv tsev. Xav paub ntau ntxiv txog jumbleview »

Txoj haujlwm no qhia pom yuav ua li cas thiaj tswj tau ob lub 10 hli peb-xim ib qho anode LEDs (ntau lub qhov muag ntawm Pumpkin Halloween Glitter) nrog Attiny85 nti. Lub hom phiaj ntawm txoj haujlwm yog los qhia cov neeg nyeem rau hauv kev kos duab ntawm cov phiaj xwm sib koom ua ke thiab rau kev siv ntawm Adam Dunkels protothreads library. Txoj haujlwm no kwv yees tias tus nyeem ntawv paub txog AVR 8-tus tswj hwm, tuaj yeem sau qee qhov C-program thiab muaj qee qhov kev paub nrog Atmel studio.

Txoj haujlwm txoj cai luam tawm ntawm GitHub:

Khoom siv

Ua ntej kev tsim kho ib qho tseem xav tau tsim lub Circuit Court. Nov yog cov khoom siv:

  • Attiny85 maub los (ib qho khoom siv hluav taws xob).
  • Ob peb xim 10 hli LEDs nrog anode ntau. Adafruit LEDs
  • Resistors 100 Ohm, 120 Ohm, 150 Ohm 0.125 lossis 0.250 Wt (ib qho khoom siv hluav taws xob).
  • Rau tus Pin header rau AVR ISP interface. Ua tau los ntawm qhov Adafruit header
  • Qee lub rooj noj mov lossis cov ntawv luam tawm lub rooj tsavxwm. Kuv siv qhov no
  • AVR ISP MKII interface thiab Atmel Studio 6.1 (Tom qab ntawv yuav tsum ua haujlwm ib yam nkaus).

Kauj ruam 1: Circut

Txiav
Txiav

Tsim siv tsib tus pin pins:

  • Ob tus pin siv los tswj anodes: txhua tus LED anode txuas rau tus pin tshwj xeeb.
  • Peb tus pin txuas (hla resistors) rau LEDs cathodes (tib xim cathode ntawm txhua tus coj txuas rau tib tus pin)

Ib tus yuav nug: vim li cas ho tsis siv tag nrho rau hauv/tawm tus pin ntawm lub nti kom LED anodes yuav txuas ncaj qha rau +5 v thiab txhua cathode yuav muaj nws tus pin tshwj xeeb? Qhov ntawd yuav ua kom yooj yim programming. Alas, muaj teeb meem: tus pin PB5 (RESET) yog tus pin tsis muaj peev xwm muab tau tsuas yog ~ 2 mA ntawm qhov tam sim no, thaum yuav tsum muaj ~ 20 mA.

Tau kawg ib tus tuaj yeem tsim transistor amplifier rau tus pin tsis muaj zog tab sis kuv tus kheej thaum twg los xij xav tau los daws teeb meem hla txoj cai.

Kauj ruam 2: Sijhawm Daim Duab

Sijhawm Daim Duab
Sijhawm Daim Duab

Daim duab qhia sij hawm pab peb nkag siab qhov peb xav tau rau qhov program.

Sab saum toj ob kab ntawm daim duab qhia pom kev hloov pauv ntawm LED anodes. Qhov hluav taws xob ntawm tus pin txuas nrog LED anodes oscillates nrog zaus ~ 250 Hz. Qhov hluav taws xob qhov hluav taws xob rau sab laug LED yog qhov sib txawv rau qhov oscillation ntawm txoj cai LED. Thaum qhov hluav taws xob ntawm anode siab sib xws LED tuaj yeem ci. Thaum nws qis qis sib xws LED yog tsaus. Qhov ntawd txhais tau tias txhua tus LED tuaj yeem ci thaum 2 milliseconds luv thiab tsaus thaum lwm 2 milliseconds. Vim tias tib neeg lub qhov muag muaj qee qhov inertia, 250 Hz ntsais muag tsis pom los ntawm tus neeg soj ntsuam. Qhov hauv qab peb kab ntawm daim duab qhia pom kev hloov pauv ntawm cov pins txuas nrog LEDs cathodes. Cia peb saib thawj kab duab kab lus. Nws qhia txog rooj plaub thaum sab laug LED yog xim liab thiab sab xis LED hauv xim ntsuab. Ntawm no RED cathodes nyob qis qis thaum sab laug anode siab, GREEN cathode nyob qis qis thaum txoj cai anode siab, thiab BLUE cathode nyob qis qis txhua lub sijhawm. Lwm kab ntawm daim duab qhia pom kev sib txuas ntawm cathode thiab anode voltage rau ntau yam xim.

Raws li peb tuaj yeem pom muaj kev sib cuam tshuam ntawm lub xeev pins. Yog tsis muaj lub moj khaum nws yuav tsis yooj yim los daws. Thiab qhov ntawd yog lub tsev qiv ntawv protothread los ua ke.

Kauj ruam 3: Programing. Macros thiab Cov Lus Txhais

Kev kawm Macros thiab Cov Lus Txhais
Kev kawm Macros thiab Cov Lus Txhais

Piv txwv hauv cov txheej txheem txheej txheem sawv cev rau qhov yooj yim me ntsis. Txoj haujlwm tau luv dua, thiab qee lub ntsiab lus piv txwv hloov nrog qhov tsis meej pem.

Cia peb pib txij thaum pib. Qhov kev zov me nyuam suav nrog cov ntaub ntawv tuaj nrog Atmel Studio zoo li protothread library header. Tom ntej no muaj ob lub macros los tswj qib qib thiab qee cov lus txhais kom muab cov npe muaj txiaj ntsig rau tus lej cim. Txog tam sim no tsis muaj dab tsi tshwj xeeb.

Kauj ruam 4: Programing. Lub voj loj

Kev kawm Lub voj loj
Kev kawm Lub voj loj

Tom qab ntawd cia peb saib qhov kawg kom pom cov txheej txheem tseem ceeb muaj li cas.

Lub luag haujlwm tseem ceeb tom qab ua qee qhov pib ua haujlwm nyob qis qis nyob ib puag ncig. Hauv lub voj ntawd nws ua cov kauj ruam tom ntej:

  • Invokes protothread niaj hnub rau sab laug LED. Nws hloov qee qhov pins qhov hluav taws xob.
  • Ua ob milliseconds ncua. Tsis muaj kev hloov pauv tus lej pin.
  • Invokes protothread rau txoj cai LED. Nws hloov qee tus pin voltage.
  • Ua 2 MS ncua sijhawm. Tsis muaj kev hloov pauv tus lej pin.

Kauj ruam 5: Programming. Pab Txhawb Nqa

Programming. Pab Txhawb Nqa
Programming. Pab Txhawb Nqa

Ua ntej peb pib tham txog tsab ntawv protothreads peb yuav tsum tau saib ntawm qee qhov kev pabcuam. Ua ntej muaj cov haujlwm los teeb xim tshwj xeeb. Lawv ncaj ncaj. Muaj ntau qhov haujlwm zoo li tus lej ntawm cov xim txhawb nqa (xya) thiab ib qho ntxiv ua kom teeb LED tsaus nti (NoColor).

Thiab muaj ib txoj haujlwm ntxiv uas yuav raug hu ncaj qha los ntawm cov ntawv sau ua ntu zus. Nws lub npe yog DoAndCountdown ().

Kev hais lus siv cov haujlwm zoo li no tsis tas yuav tsum tab sis kuv pom nws yooj yim. Nws muaj peb qhov kev sib cav:

  • Tus taw tes kom ua haujlwm teeb tsa xim LED (zoo li RedColor lossis GreenColor lossis lwm yam)
  • Thawj tus nqi ntawm lub txee rov qab: tus naj npawb ntawm pes tsawg lub sij hawm txoj haujlwm no yuav tsum tau thov nyob rau theem tshwj xeeb tsab ntawv xov xwm.
  • Tus taw tes rau rov qab txee. Nws tau kwv yees tias thaum muaj kev hloov pauv xim uas rov qab txee yog 0, yog li thaum xub thawj cov lej rov ua haujlwm yuav muab rau tus nqi pib thawj. Tom qab txhua qhov rov ua dua yog txo.

Muaj nuj nqi DoAndCountdown () rov qab tus nqi ntawm rov qab txee.

Kauj ruam 6: Programing. Txoj Cai Protothread

Kev kawm Txoj Cai Protothread
Kev kawm Txoj Cai Protothread

Thiab ntawm no yog lub hauv paus ntsiab lus: cov ntawv nyeem ua ntu zus. Rau qhov ua piv txwv yooj yim txwv tsuas yog peb qib: rau kev hloov xim rau RED, rau GREEN, thiab BLUE.

Kev ua haujlwm tau thov nrog ob qhov kev sib cav:

  • Tus taw tes rau protothread qauv. Tus qauv ntawd tau pib los ntawm lub hauv paus ua ntej lub voj pib.
  • Tus taw tes rau rov qab txee. Nws tau teeb tsa 0 los ntawm lub ntsiab ua ntej lub voj pib pib.

Muaj nuj nqi teeb tsa kom ua rau sab laug LED ua haujlwm thiab tom qab ntawd pib ua ntu ntu ntu. Cov ntu no yog nruab nrab ntawm macros PT_BEGIN thiab PT_END. Sab hauv muaj qee qhov chaws uas hauv peb cov ntaub ntawv tsuas yog rov ua dua macros PT_WAIT_UNTIL. Cov macros no ua haujlwm tom ntej:

  • Kev thov ua haujlwm DoAndCountdown. Qhov teeb tsa hluav taws xob ntawm LED cathodes kom tso tawm xim tshwj xeeb.
  • Cov txiaj ntsig tau rov qab los piv nrog 0. Yog tias qhov xwm txheej yog 'cuav' protothread muaj nuj nqi tam sim rov qab thiab yields tswj rau lub voj loj.
  • Thaum protothread tau raug caw lwm zaus nws rov ua dua txoj cai ua ntej PT_BEGIN, tom qab ntawd dhia ncaj qha rau hauv PT_WAIT_UNTIL macros los ntawm qhov uas nws rov los zaum kawg.
  • Cov kev ua no rov ua dua kom txog rau thaum DoAndCountdown yog 0. Hauv qhov xwm txheej ntawd tsis muaj qhov rov qab los, txoj haujlwm tseem nyob hauv tsab ntawv nyeem thiab ua kab tom ntej ntawm tus lej. Hauv peb qhov xwm txheej nws yog PT_WAIT_UNTIL tom ntej tab sis feem ntau hais lus nws tuaj yeem yuav luag txhua tus lej C.
  • Thaum pib ua tiav thib ob PT_WAIT_UNTIL thim rov qab yog 0, yog li txheej txheem DoAndCountdown () teeb tsa nws mus rau tus nqi pib. Macros thib ob ntxiv yuav ua tiav 250 zaug txog thaum rov qab rov qab mus txog 0.
  • Lub xeev ntawm cov qauv pt tau rov pib dua sai li sai tau thaum tswj mus txog PT_END macros. Thaum protothread muaj nuj nqi hu rau lub sijhawm tom ntej ntu ntu protothread pib ua kab ntawm txoj cai tom qab PT_BEGIN.

Muaj qhov zoo ib yam li tsab ntawv protothread niaj hnub rau txoj cai LED. Hauv peb qhov piv txwv nws tsuas yog tswj hwm qhov sib txawv ntawm cov xim, tab sis yog tias peb tuaj yeem ua qhov sib txawv kiag li: tsis muaj kev sib txuas nruj ntawm sab laug thiab sab xis LED niaj hnub.

Kauj Ruam 7: Sab hauv

Sab hauv
Sab hauv

Tag nrho txoj haujlwm yog tsawg dua 200 kab ntawm cov cai (nrog cov lus pom thiab kab tsis meej) thiab siv sijhawm tsawg dua 20% ntawm Attiny85 tus lej cim xeeb. Yog tias xav tau nws tuaj yeem siv tau ntawm no ntau qhov txheej txheem protothread ntau dua thiab muab cov laj thawj nyuaj dua rau lawv.

Protothreads tsev qiv ntawv yog daim ntawv yooj yim tshaj plaws ntawm lub khoos phis tawj tib lub sijhawm. Cov phiaj xwm sib koom ua ke yog ib txoj hauv kev tso cai faib cov phiaj xwm mus rau qhov laj thawj: qee zaum lawv hu ua coroutines, qee zaum xov, qee zaum ua haujlwm. Lub hauv paus yog tias txhua txoj haujlwm no tuaj yeem sib koom ua haujlwm zoo ib yam thaum ua kom muaj tus lej ntau dua lossis tsawg dua thiab tsis muaj kev ywj pheej ntawm lwm qhov. Cov haujlwm los ntawm qhov laj thawj pom tau tuaj yeem ua tiav ib txhij.

Txog kev tswj hwm qib siab ntawm cov haujlwm no tau ua los ntawm kev ua haujlwm ntawm lub khoos phis tawj lossis los ntawm cov lus runtime uas tau teeb tsa rau hauv kev ua tiav los ntawm tus sau. Tab sis nyob rau hauv cov ntaub ntawv ntawm protothreads daim ntawv thov programmer tswj nws tus kheej los ntawm kev siv protothreads macros lub tsev qiv ntawv hauv kev ua haujlwm ib txwm ua thiab siv qhov kev ua ub no (feem ntau tawm ntawm lub voj loj).

Koj yuav xav paub yuav ua li cas protothread ua haujlwm tiag tiag? Qhov twg khawv koob zais? Protothreads vam khom qhov tshwj xeeb C hom lus: qhov tseeb tias C hloov cov ntaub ntawv cov lus yuav suav nrog yog tias lossis qee qhov thaiv (zoo li thaum lossis rau). Cov ncauj lus kom ntxaws koj yuav pom ntawm Adam Dunkels qhov chaw

Cov khoom siv hluav taws xob sab hauv ntawm txoj haujlwm no yooj yim heev. Daim duab saum toj no muab qee yam rau koj. Kuv ntseeg tias koj tuaj yeem ua tau zoo dua.

Pom zoo: