Cov txheej txheem:
- Kauj Ruam 1: Txheej Txheem Txheej Txheem
- Kauj ruam 2: Software Txheej Txheem
- Kauj Ruam 3: Xeem NonBlocking APDS9960 Gesture Sensing Device
- Kauj ruam 4: Xaus
- Kauj Ruam 5: Cov neeg ua tim khawv
Video: NonBlocking APDS9960 Gesture Sensor Siv: 5 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:29
Zaj lus piv txwv
Cov lus qhia ntxaws no yuav ua li cas thiaj tsim kev txwv tsis pub siv ntawm APDS9960 Gesture Sensor siv SparkFun_APDS-9960_Sensor_Arduino_Library.
Taw qhia
Yog li koj yuav zaum nug koj tus kheej dab tsi yog qhov tsis thaiv? Los yog tseem thaiv rau qhov teeb meem ntawd?
Tseem ceeb dua vim li cas nws thiaj tseem ceeb kom tsis txhob thaiv ib yam dab tsi?
Ok, yog li thaum lub microprocessor khiav qhov program nws ua ntu zus ua kab ntawm cov cai thiab ua li ntawd hu xov tooj rau thiab rov qab los ntawm kev ua haujlwm raws li qhov kev txiav txim uas koj tau sau lawv.
Kev hu xov tooj tsuas yog hu rau txhua yam kev ua haujlwm uas ua rau ncua kev ua tiav, lub ntsiab lus hu ua qhov haujlwm uas tus hu yuav tsis rov pib ua haujlwm kom txog thaum lub luag haujlwm hu ua tiav.
Yog li vim li cas qhov no tseem ceeb?
Hauv qhov xwm txheej uas koj tau sau qee cov cai uas yuav tsum tau ua tiav ntau txoj haujlwm ua ntu zus xws li nyeem qhov ntsuas kub, nyeem lub pob thiab hloov kho cov zaub, yuav tsum yog cov cai los hloov kho cov lus yog hu xov tooj, koj lub kaw lus yuav tsis teb rau. khawm nias thiab hloov pauv qhov kub thiab txias, raws li tus txheej txheem yuav siv sijhawm tag nrho nws lub sijhawm tos rau cov zaub kom hloov pauv thiab tsis nyeem cov xwm txheej khawm lossis qhov kub tshaj.
Rau kuv ib feem kuv xav tsim MQTT dhau WiFi muaj peev xwm IoT desktop ntaus ntawv uas nyeem ob qho tib si hauv cheeb tsam thiab thaj chaw deb ntawm huab cua/huab cua, qhov teeb pom kev ib puag ncig, ntsuas ntsuas siab, ua raws lub sijhawm, tso tawm tag nrho cov ntsuas no ntawm LCD, nkag mus rau uSD daim npav hauv lub sijhawm tiag tiag, nyeem cov ntawv nkag, sau rau cov LEDs thiab saib xyuas lub ntsej muag kom tswj tau yam hauv kuv li IoT cov txheej txheem thiab txhua yam uas yuav tsum tau tswj los ntawm ESP8266-12.
Hmoov tsis zoo tsuas yog ob qhov chaw ntawm APDS9960 lub tsev qiv ntawv kuv tuaj yeem pom yog SparkFun thiab AdaFruit cov tsev qiv ntawv, ob qho tib si uas tau ripped los ntawm daim ntawv thov los ntawm Avago (ADPS9960 chaw tsim khoom) thiab muaj lub npe hu ua 'readGesture' uas muaj ib ntus (1) {}; lub voj uas thaum siv hauv txoj haujlwm saum toj no ua rau ESP8266-12E rov pib dua thaum twg los xij ntawm ADPS9960 lub teeb pom kev dhau los (piv txwv li. thaum ib yam khoom tseem nyob ze, lossis muaj lwm qhov IR teeb pom lub teeb pom kev zoo).
Thiaj li txhawm rau daws tus cwj pwm no kuv tau xaiv txav cov txheej txheem ntawm Gestures mus rau tus txheej txheem thib ob uas ESP8266-12E dhau los ua tus tswv microcontroller thiab tus txheej txheem no tus qhev, raws li tau hais hauv Pics 1 & 2 saum toj no, Txheej Txheem Txheej Txheem thiab Cov Txheej Txheem Txheej Txheem. Daim duab 3 qhia txog cov qauv hluav taws xob.
Txhawm rau txwv qhov kev hloov pauv uas kuv xav tau los ua rau kuv tus lej uas twb muaj lawm Kuv kuj tau sau ib chav qhwv ntawv/tsev qiv ntawv xav txog lub npe 'APDS9960_NonBlocking'.
Dab tsi hauv qab no yog cov lus piav qhia ntxaws txog qhov tsis thaiv kev daws teeb meem.
Kuv Xav Tau Qhov Twg?
Yog tias koj xav tsim I2C cov tshuaj uas ua haujlwm nrog APDS9960_NonBlocking lub tsev qiv ntawv koj yuav xav tau cov hauv qab no.
- 1 tawm ATMega328P ntawm no
- 1 tawm PCF8574P ntawm no
- 6 tawm 10K Resistors ntawm no
- 4 tawm 1K Resistors ntawm no
- 1 tawm 1N914 Diode ntawm no
- 1 tawm PN2222 NPN Transistor ntawm no
- 1 tawm 16MHz siv lead ua ntawm no
- 2 tawm 0.1uF Capacitors ntawm no
- 1 tawm 1000uF Electrolytic Capacitor ntawm no
- 1 tawm 10uF Electrolytic Capacitor ntawm no
- 2 tawm 22pF Capacitors ntawm no
Yog tias koj xav nyeem cov lus piav tes piav tes piav tes sensor tso tawm ntawm qhov sib txuas ua ke ces koj tuaj yeem tso PCF8574P thiab peb tawm 10K resistors.
Kuv xav tau software twg?
Arduino IDE 1.6.9
Kuv xav tau txuj ci dab tsi?
Txhawm rau teeb tsa cov txheej txheem, siv cov cai hauv paus (muab) thiab tsim cov khoom siv hluav taws xob tsim nyog koj yuav xav tau cov hauv qab no;
- Tsawg me ntsis ntawm cov khoom siv hluav taws xob,
- Paub txog Arduino thiab nws yog IDE,
- Kev nkag siab txog yuav ua li cas rau txheej txheem kev teeb tsa Arduino (Saib Qhia "Programming ATTiny85, ATTiny84 thiab ATMega328P: Arduino Raws li ISP ')
- Ib txhia ua siab ntev.
Cov ncauj lus npog
- Cov lus qhia luv luv ntawm Circuit Court
- Cov ntsiab lus luv luv ntawm software
- Kev Xeem APDS9960 Gesture Sensing Device
- Xaus
- Cov neeg ua tim khawv
Kauj Ruam 1: Txheej Txheem Txheej Txheem
Lub Circuit Court tau muab faib ua ob ntu;
- Thawj zaug yog ntu I2C mus rau kev sib hloov pauv hloov pauv tau ua tiav ntawm resistors R8 … 10 thiab IC1. Ntawm no R8… R10 teeb tsa I2C chaw nyob rau 8 ntsis I/O nthuav dav nti IC1 tus NXP PCF8574A. Qhov chaw nyob raug rau cov cuab yeej no yog 0x38… 0x3F feem. Hauv I2C software piv txwv muab 'I2C_APDS9960_TEST.ino' '#define GESTURE_SENSOR_I2C_ADDRESS' yuav tsum tau hloov kho kom haum rau qhov chaw nyob no.
-
Tag nrho lwm cov khoom tsim ua qhev kos rau Arduino Uno thiab muaj cov haujlwm hauv qab no;
- R1, T1, R2 thiab D1 muab cov khoom siv qhev rov pib dua. Nov yog lub siab ua haujlwm siab ntawm IC1 - P7 yuav yuam kom U1 rov pib dua.
- R3, R4, yog tam sim no txwv cov neeg tawm tsam rau cov cuab yeej teeb tsa kev teeb tsa TX/RX kab.
- C5 thiab R7 tso cai rau Arduino IDE kom ua haujlwm tau yooj yim U1 ntawm lub plawv dhia ntawm kab DTR ntawm cov khoom FTDI txuas.
- R5 thiab R6 yog I2C rub cov neeg tawm tsam rau APDS9960 nrog C6 muab cov khoom siv tsheb nqaj hlau txiav tawm.
- U1, C1, C2 thiab Q1 tsim lub cim Arduino Uno thiab nws yog lub moos ib feem.
- Thaum kawg C3 thiab C4 muab cov tsheb nqaj hlau hauv nroog txiav rau U1.
Kauj ruam 2: Software Txheej Txheem
Zaj lus piv txwv
Txhawm rau ua kom tiav cov peev txheej no koj yuav xav tau cov tsev qiv ntawv ntxiv hauv qab no los ua haujlwm rau hauv Arduino Uno U1;
SparkFun_APDS9960.h
- Los ntawm: Steve Quinn
- Lub Hom Phiaj: Qhov no yog rab diav rawg ntawm SparkFun APDS9960 Sensor rab rawg los ntawm jonn26/SparkFun_APDS-9960_Sensor_Arduino_Library. Nws muaj qee qhov kev hloov kho los pab daws qhov teeb meem thiab muaj lub ntsuas ntsuas kom tsis txhob hnov qab txhawm rau txo qis qhov tshwm sim.
- Los ntawm:
APDS9960_NonBlocking.h
- Los ntawm: Steve Quinn
- Lub Hom Phiaj: Muab kev sib cuam tshuam huv si txhawm rau txhawm rau ua qhov kev txwv tsis pub siv APDS9960 Gesture Sensor rau hauv koj li Arduino code.
- Los ntawm:
Saib cov lus qhia hauv qab no ntawm yuav ua li cas rau txheej txheem kev teeb tsa Arduino Uno (ATMega328P) microcontroller yog tias koj tsis paub txog yuav ua li cas thiaj ua tiav qhov no;
PROGRAMMING THE ATTINY85, ATTINY84 THIAB ATMEGA328P: ARDUINO AS ISP
Txheej txheem cej luam
Lub ATMega328P embedded qhev microcontroller pov npav INT kab los ntawm ADPS9960. Thaum txoj kab no qis qis microcontroller nyeem ADPS9960 cov ntawv sau npe thiab txiav txim siab yog tias muaj qhov ua tau zoo piav tes piav taw. Yog tias tau piav tes piav taw siv tau, tus lej rau qhov piav tes no 0x0… 0x6, 0xF tau muab tso rau ntawm Port B thiab 'nGestureAvailable' tau lees tias qis.
Thaum Tus Thawj Saib Xyuas lub cuab yeej pom 'nGestureAvailable' nquag, nws nyeem tus nqi ntawm Chaw nres nkoj B tom qab ntawv 'nGestureClear' qis ib ntus kom lees paub tias tau txais cov ntaub ntawv.
Cov cuab yeej qhev tom qab de-lees paub 'nGestureAvailable' siab thiab tshem tawm cov ntaub ntawv ntawm Chaw nres nkoj B.
Txoj Cai Txheej Txheem
Pic 1 saum toj no qhia meej li cas software hauv U1 tus qhev kos npe Arduino Uno ua haujlwm, nrog rau Pic 2 li cas ob lub keeb kwm yav dhau/yav dhau los ua haujlwm sib cuam tshuam. Daim duab 3 yog ntu ntu qhia txog yuav siv APDS9960_NonBlockinglibrary li cas. Daim duab 4 muab daim duab qhia ntawm Arduino Uno Digital Pins thiab cov cuab yeej kho vajtse tiag ntawm ATMega328P.
Tom qab rov pib teeb tsa tus qhev microcontroller pib ua APDS9960 tso cai piav tes piav taw kom ua rau nws INT tso tawm thiab teeb tsa nws yog I/O, txuas txuas cuam tshuam kev pabcuam niaj hnub (ISR) 'GESTURE_CLEAR ()' cuam tshuam vector INT0 (Digital pin 2, Khoos phis tawj tus pin 4), teeb tsa nws rau qhov poob qis txhais. Qhov no yog nGestureClear cov tswv yim los ntawm tus tswv cuab.
Cov cuam tshuam cuam tshuam tus pin 'INT' los ntawm APDS9960 txuas nrog Digital Pin 4, Khoos Phis Tawj IC Pin 6 uas tau teeb tsa ua cov tswv yim rau U1.
Qhov 'nGestureAvailable' teeb liab kab ntawm Digital tus pin 7, Kho vajtse IC tus pin 13 tau teeb tsa ua qhov tso tawm thiab teeb tsa siab, tsis ua haujlwm (tsis lees paub).
Thaum kawg Port B cov khoom 0… 3 feem tau teeb tsa raws li cov txiaj ntsig thiab teeb qis. Cov no tsim cov ntaub ntawv nibble uas sawv cev rau ntau yam kev piav tes piav taw hom; Tsis muaj = 0x0, Yuam kev = 0xF, Up = 0x1, Down = 0x2, Left = 0x3, Right = 0x4, Ze = 0x5 and Far = 0x6.
Lub luag haujlwm yav dhau los 'Loop' tau teem tseg uas txuas ntxiv qhov kev xaiv tsa APDS9960 cuam tshuam cov txiaj ntsig INT los ntawm kev nyeem Digital Pin 4. Thaum INT tso tawm los ntawm APDS9960 dhau los ua qhov qis qis qhia tau tias lub ntsuas tau ua rau lub microcontroller sim txhais cov lus taw tes los ntawm kev hu 'readGesture () 'nrog nws thaum (1) {}; voj kawg
Yog tias tau piav qhia txog kev piav tes piav taw, tus nqi no tau sau rau Chaw nres nkoj B, qhov 'nGestureAvailable' tso tawm tau lees paub thiab boolean semaphore 'bGestureAvailable' tau teeb tsa, tiv thaiv ib qho ntxiv taw los ntawm kev nkag mus.
Thaum tus tswv pom qhov ua haujlwm 'nGestureAvailable' tso tawm nws nyeem tus nqi tshiab no thiab 'nGestureClear' ua haujlwm qis. Qhov ntog ntog no ua rau txoj haujlwm ua ntej 'ISR GESTURE_CLEAR ()' kom tau teem sijhawm ncua kev ua haujlwm tom qab 'Loop', tshem tawm Chaw nres nkoj B, 'bGestureAvailable' semaphore thiab 'nGestureAvailable' tso tawm.
Txoj haujlwm ua ntej 'GESTURE_CLEAR ()' tam sim no raug tshem tawm thiab tom qab ua haujlwm 'Loop' rov teem sijhawm. Kev piav tes piav taw ntxiv los ntawm APDS9960 tam sim no tuaj yeem nkag siab.
Los ntawm kev siv cuam tshuam cuam tshuam rau yav tom ntej/keeb kwm yav dhau los ua txoj hauv kev no lub peev xwm tsis muaj qhov kawg nyob hauv 'readGesture ()' ntawm cov cuab yeej qhev yuav tsis cuam tshuam rau tus tswv lub cuab yeej los ntawm kev ua haujlwm thiab yuav tsis cuam tshuam kev ua tiav ntawm tus qhev ntaus ntawv. Qhov no yog lub hauv paus ntawm lub sijhawm ua haujlwm yooj yim heev (RTOS).
Nco tseg: Cov ntawv ua ntej 'n' txhais tau tias ua haujlwm qis lossis lees paub zoo li hauv 'nGestureAvailable'
Kauj Ruam 3: Xeem NonBlocking APDS9960 Gesture Sensing Device
Zaj lus piv txwv
Txawm hais tias APDS9960 tus qauv tau muab nrog +5v nws siv lub rooj tsav xwm +3v3 tus tswj lub ntsiab lus nws yog I2C kab yog +3v3 ua raws thiab tsis yog +5v. Qhov no yog vim li cas kuv thiaj xaiv siv +3v3 ua raws Arduino Due raws li kev ntsuas micro tswj, kom obviate xav tau rau qib shifters.
Txawm li cas los xij, koj xav siv qhov tseeb Arduino Uno ces koj yuav tsum tau hloov qib I2C kab mus rau U1. Saib cov lus qhia hauv qab no qhov twg kuv tau txuas cov txheej txheem swb uas muaj txiaj ntsig (I2C_LCD_With_Arduino) uas muab ntau cov lus qhia rau kev siv I2C.
Kev Ntsuas I2C Interface
Pics 1 thiab 2 saum toj no qhia yuav teeb tsa thiab ua haujlwm li cas rau I2C interface. Koj yuav tsum rub tawm thiab teeb tsa APDS9960_NonBlocking lub tsev qiv ntawv ua ntej. nov
Kev Ntsuam Xyuas Kev Sib Txawv Parallel
Pics 3 thiab 4 nthuav qhia tib yam rau Parallel interface
Kauj ruam 4: Xaus
General
Txoj cai ua haujlwm tau zoo thiab pom cov lus taw tes ua haujlwm yam tsis muaj qhov ua tsis raug. Nws tau nce thiab ua haujlwm rau ob peb lub lis piam tam sim no ua cov cuab yeej qhev hauv kuv qhov haujlwm tom ntej. Kuv tau sim ntau yam tsis ua tiav hom (thiab yog li muaj qhov xav paub Quinn tsev neeg moggie) uas yav dhau los ua rau ESP8266-12 rov pib dua, tsis muaj qhov tsis zoo.
Muaj peev xwm txhim kho
-
Qhov pom tseeb. Rov sau APDS9960 Gesture Sensor lub tsev qiv ntawv kom tsis txhob thaiv.
Qhov tseeb kuv tau hu rau Broadcom uas tso kuv mus rau tus xa khoom hauv zos uas tam sim tsis quav ntsej kuv qhov kev thov txhawb nqa, Kuv tsuas yog tsis yog SparkFun lossis AdaFruit, kuv twv. Yog li qhov no tej zaum yuav tau tos ib pliag
- Hloov cov cai rau tus qhev me me microcontroller. Siv ATMega328P rau ib txoj haujlwm yog me ntsis ntawm kev ua dhau. Txawm hais tias kuv tau pib saib ntawm ATTiny84, nres luv ntawm kev siv ib qho raws li kuv xav tias qhov suav sau me me ntawm cov cai yog kab ciam teb haum. Nrog rau kev siv nyiaj ntxiv ntawm kev hloov kho APDS9960 lub tsev qiv ntawv los ua haujlwm nrog I2C lub tsev qiv ntawv sib txawv.
Kauj Ruam 5: Cov neeg ua tim khawv
Yuav tsum tau ua qhov program kos rau arduino (ATMega328P - U1)
SparkFun_APDS9960.h
- Los ntawm: Steve Quinn
- Lub Hom Phiaj: Qhov no yog rab diav rawg ntawm SparkFun APDS9960 Sensor rab rawg los ntawm jonn26/SparkFun_APDS-9960_Sensor_Arduino_Library. Nws muaj qee qhov kev hloov kho los pab daws qhov teeb meem thiab muaj lub ntsuas ntsuas kom tsis txhob hnov qab txhawm rau txo qis qhov tshwm sim.
- Los ntawm:
Yuav tsum tau txhawm rau ua qhov tsis thaiv qhov ua haujlwm no rau hauv koj cov lej arduino thiab muab piv txwv ua haujlwm
APDS9960_NonBlocking.h
- Los ntawm: Steve Quinn
- Lub Hom Phiaj: Muab kev sib cuam tshuam huv si txhawm rau txhawm rau ua qhov kev txwv tsis pub siv APDS9960 Gesture Sensor rau hauv koj li Arduino code.
- Los ntawm:
Lub Sijhawm Ua Haujlwm Tiag
https://en.wikipedia.org/wiki/Real-time_operating_system
Cov ntaub ntawv APDS9960
https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/Avago-APDS-9960-datasheet.pdf
Pom zoo:
Cov Khoom Siv Teeb Meem Siv Chaw Taws Teeb Siv Arduino: 7 Kauj Ruam
Cov Khoom Siv Teeb Meem Siv Khoom Siv Hluav Taws Xob Siv Arduino: Tam sim no, Cov Tsim, Cov tsim tawm tau nyiam Arduino rau kev txhim kho sai ntawm cov qauv ntawm cov phiaj xwm. Arduino yog lub platform siv hluav taws xob qhib raws qhov yooj yim-rau-siv-kho vajtse thiab software. Arduino muaj zej zog cov neeg siv zoo heev. Hauv qhov no
Yuav Ua Li Cas Siv APDS9960 Gesture Sensor Nrog Arduino: 7 Kauj Ruam
Yuav Ua Li Cas Siv APDS9960 Gesture Sensor Nrog Arduino: Hauv qhov kev qhia no peb yuav kawm Yuav Siv APDS9960 Gesture Sensor nrog Arduino los tso saib cov lus qhia ntawm OLED Display siv Visuino software.Watch video
Yuav Ua Li Cas Siv Gesture APDS9960 Nrog SkiiiD: 9 Kauj Ruam
Yuav Ua Li Cas Siv Gesture APDS9960 Nrog SkiiiD: Kev qhia los txhim kho Kev Sib Tsoo XD206 nrog skiiiD
Saib Xyuas Kev Siv Sijhawm Siv Raspberry Pi thiab AIS328DQTR Siv Python: 6 Cov Kauj Ruam
Saib Xyuas Kev Siv Sijhawm Siv Raspberry Pi thiab AIS328DQTR Siv Python: Kev nrawm yog qhov kawg, Kuv xav raws li qee txoj cai ntawm Physics.- Terry Riley Tus cheetah siv qhov nrawm nrawm thiab hloov pauv sai thaum caum. Tus tsiaj nrawm tshaj plaws nyob ntawm ntug hiav txwv ib zaug hauv ib lub sijhawm siv nws qhov nrawm tshaj plaws kom ntes tau cov tsiaj txhu. Qhov
Txawb Xov Tooj Siv Yooj Yim Siv STM32F407 Cov Khoom Siv Tshawb Pom thiab GSM A6 Module: 14 Cov Kauj Ruam (nrog Duab)
Kev Siv Xov Tooj Ntawm Lub Xov Tooj Siv STM32F407 Cov Khoom Siv Tshawb Pom thiab GSM A6 Module: Koj puas tau xav tsim qhov kev ua kom txias txias? Yog tias yog, ua li cas txog kev tsim ib qho ntawm cov neeg nyiam tshaj plaws thiab txhua tus nyiam cov khoom siv xws li Lub Xov Tooj Txawb !!!. Hauv Cov Lus Qhia no, Kuv yuav qhia koj yuav tsim lub xov tooj txawb yooj yim siv STM li cas