Cov txheej txheem:

Wallace - DIY Tus Neeg Hlau Tsis Txaus Ntseeg - Ntu 5 - Ntxiv IMU: 9 Kauj Ruam
Wallace - DIY Tus Neeg Hlau Tsis Txaus Ntseeg - Ntu 5 - Ntxiv IMU: 9 Kauj Ruam

Video: Wallace - DIY Tus Neeg Hlau Tsis Txaus Ntseeg - Ntu 5 - Ntxiv IMU: 9 Kauj Ruam

Video: Wallace - DIY Tus Neeg Hlau Tsis Txaus Ntseeg - Ntu 5 - Ntxiv IMU: 9 Kauj Ruam
Video: Технический разговор TUDev с профессором Борой Озкан - Финтех и будущее финансов 2024, Hlis ntuj nqeg
Anonim
Image
Image

Peb tab tom taug kev nrog Wallace. Lub npe Wallace tau los ntawm kev sib xyaw ntawm "Wall-E", thiab los ntawm qhov haujlwm yav dhau los (lub suab-paub), thiab hauv kev siv "espeak" cov khoom siv, nws zoo li me ntsis Askiv. Thiab zoo li tus valet lossis tus neeg ua haujlwm. Thiab qhov ntawd yog lub hom phiaj kawg: rau txoj haujlwm no kom dhau mus ua tej yam muaj txiaj ntsig. Yog li "Wallace".

Wallace tuaj yeem txav mus los, nws tuaj yeem zam qhov teeb meem uas siv IR nrug cov ntsuas (tsis ntev los no, qee qhov lawv kib (?) (Yuav tsum saib mus rau qhov ntawd thaum kuv tau txais txoj hauv kev), kuj tseem muaj qee lub suab nrug deb (peb ntawm cov mus tsis zoo ib yam) sijhawm, nrog rau MCP23017 tus nthuav dav), thiab thaum kawg, tuaj yeem tshawb pom qhov hloov pauv ntawm lub cev muaj zog-tam sim no kom paub thaum nws raug tsoo rau qee yam.

Ntxiv rau cov ntsuas, Wallace "nco qab" 100 qhov kev txav, thiab muaj qee qhov kev tshuaj xyuas tsis zoo uas siv keeb kwm kev txav mus los.

Lub hom phiaj kom deb li deb rau Wallace tsuas yog sim ua kom mus tom ntej, thiab paub thaum twg nws tau nyam hauv qee qhov kev rov ua dua (xws li hauv ib ces kaum) thiab tsis tshua txav mus tom ntej.

Kuv tau dhau los ntawm ntau qhov rov ua dua rau kev txav chaw thiab kev taw qhia, thiab mob taub hau zoo ib yam tau thaum lub sijhawm tig.

Txij li Wallace yog tus neeg hlau taug qab, thiab kuv xav ua kom yooj yim dua hauv software (rau tom qab), txhawm rau tig kuv tsuas yog muaj nws pivot/tig rau hauv qhov chaw. Yog li, thov sib npaug tab sis rov ua lub zog / lub luag haujlwm hloov pauv mus rau lub cav.

Qhov teeb meem ntsib yog vim tsim los ntawm Tus Neeg Sawv Cev 390 lub platform neeg hlau. Cov menyuam siv txoj hlua yuav rub tawm tsam ob sab. Thiab tsis zoo, ib sab ua ntau dua li lwm qhov.

Hauv pem teb thiab mus ncaj, nws tsis muaj teeb meem. Nws qhia txog ntawm cov ntaub pua plag. Kuv xaiv kom Wallace tawm ntawm cov ntaub pua plag tom qab nws cov kab tau ua tsis zoo (lawv khaws cov hmoov av yooj yim heev).

Qhov teeb meem tiag tiag yog thaum pivoting rau hauv pem teb.

Yog tias kuv muaj software siv rau theem kev ua haujlwm siab, ces nws ntau dua lossis tsawg dua tas li. Txawm li cas los xij, thaum lub sijhawm ua haujlwm qis, nws yuav yog lossis tsis yog tiag tiag tig. Lossis nws yuav tig rau me ntsis thiab tom qab ntawd qeeb. Kev ua piv piv zoo li tsis tuaj yeem tswj tau ntawm lub software, lossis qhov zoo tshaj plaws nyuaj.

Qhov teeb meem tshwm sim thaum lub sijhawm taug kev thiab txav mus los lossis deb ntawm cov teeb meem. Nws tuaj yeem ua rau viav vias dhau mus deb heev, lossis nws tuaj yeem tau txais kev sim ua haujlwm qeeb heev, yam tsis tau txav mus tiag.

Thiab yog li cov lus piav qhia saum toj no txhawb nqa Cov Lus Qhia no.

Thaum xub thawj, kuv tau xav kom faib nrog, lossis ncua sijhawm qhia lub suab-nkag siab chav (IMU), vim tias lawv yog A) nyuaj, B) nrov nrov, C) yuam kev tuaj yeem nkag tau rau lub sijhawm, thiab lwm yam, thiab lwm yam. tau tias peb tuaj yeem ua tau zoo heev los ntawm kev dhia ua ntej mus rau lub sijhawm-ntawm-lub davhlau IR laser ntsuas. Thiab peb tuaj yeem - siv lasers peb tuaj yeem paub yog tias tus neeg hlau tig lossis tsis, los ntawm kev taug qab qhov kev hloov pauv nyob deb.

Qhov tseeb, peb kuj tseem tuaj yeem ua (yam) ua tam sim no, nrog lub suab nrov.

Txawm li cas los xij, txhua qhov ntawd yog txoj hauv kev ncaj qha, nyuaj rau teb ib lo lus nug yooj yim: "peb puas tau hloov lossis tsis?"

Nws zoo li rau kuv tias dhia mus siv ToF lub tshuab laser yuav coj kuv mus rau qib tom ntej ntawm software; uas yog, SLAM (Ib Leeg Hauv Ib Cheeb Tsam thiab Kev Qhia). Kuv tseem tsis tau npaj mus rau qhov ntawd tam sim no.

Nws yog qhov zoo tshaj los ua cov phiaj xwm neeg hlau hauv cov txheej, nrog thawj (qis dua) txheej tau yooj yim dua, thiab txheej txheej tom kawg (sab saud) yog cov paub daws teeb thiab daws teeb meem nyuaj dua.

Cov txheej tuaj yeem xav txog qee yam zoo li no:

  1. neeg hlau lub cev thav duab / cov txheej txheem txheej txheem txheej txheem
  2. rudimentary drive system (Raspberry, Roboclaw, motors, cabling, thiab lwm yam, software yooj yim, keyboard-driven)
  3. cov khoom siv hluav taws xob tseem ceeb los txhawb cov ntsuas hluav taws xob (hloov hluav taws xob ob-txoj kev hloov pauv, chaw nres nkoj nthuav dav, E-Stop, faib hluav taws xob, thiab lwm yam)
  4. teeb meem-zam kev ntsuas (suab, IR)
  5. qhov tseem ceeb, kev tso chaw yooj yim thiab txav mus los - tshawb pom (ntsuas lub zog, lub ntsuas hluav taws xob, lub tshuab ntsuas hluav taws xob, lub cav ntsuas lub cev, lub log log)

Koj tuaj yeem tuaj nrog koj daim ntawv teev npe. Cov ntsiab lus hais txog cov npe no yog qhov koj yuav tsum ua cov no ntau dua lossis tsawg dua hauv qhov kev txiav txim ntawd, thiab tseem tias yog tias koj siv sijhawm qee lub sijhawm ntawm txhua txheej kom tau txais txhua lub xeev ua haujlwm tau zoo, uas yuav tsum pab koj tom qab vim cov khoom nyuaj dua.

Cov npe saum toj no tuaj yeem ntau dua lossis tsawg dua mapped rau cov txheej txheej txheej txheem hauv software.

  • SLAM (Ib Leeg Ib Leeg Hauv Ib Cheeb Tsam thiab Daim Duab)
  • Tswj thiab Paub txog Kev txav, Kev Sib Hloov
  • Kev Tiv Thaiv Kev Yooj Yim Yooj Yim
  • Tswj thiab Tshawb Xyuas Cov Ntaub Ntawv Sensor
  • Lub zog tseem ceeb txav mus rau tom ntej, Rov qab, Sab laug thiab Txoj Cai, Ua Kom nrawm dua, qeeb qeeb, Nres

Raws li koj tuaj yeem pom, rau cov npe no, thawj cov khoom yuav yog cov txheej sab saud, nyuaj dua uas daws cov teeb meem thiab cov lus nug, xws li "Kuv nyob qhov twg" thiab "Kuv yuav mus qhov twg", thaum cov khoom tom kawg yuav yog qis software txheej uas tuav "yuav tham/mloog sensor A" lossis "yuav ua li cas txav lub log no".

Tam sim no, Kuv tsis tau hais tias thaum koj pib ntawm txheej, koj yuav tau ua tiav nws thiab tom qab ntawd nws nyob rau txheej tom ntej, tsis txhob rov qab mus rau qhov qub. Cov phiaj xwm neeg hlau tuaj yeem ua tau zoo li niaj hnub no, rov ua dua txoj hauv kev txhim kho software (nrawm, SCRUM, thiab lwm yam).

Kuv tsuas yog hais kom siv sijhawm ntawm txhua tus. Koj yuav tsum sib npaug ntau npaum li cas los ua ntawm txhua tus, thiab txiav txim siab yog yam koj tab tom sim ntawm qee txheej tsim nyog rau lub sijhawm thiab teeb meem.

Muaj qee qhov "teeb meem" lossis "nruj" ntawm ob lub tswv yim sib tw lossis cov lus qhia.

Ib qho yog qhov kuv yuav hu "plug-n-play" los daws teeb meem A.

Lwm qhov yog DIY (ua koj tus kheej). Thiab qhov ntawd yuav tsis yog daim ntawv lo zoo tshaj plaws rau lwm lub tswv yim no.

Nov yog qhov piv txwv ntawm txhua tus, vam tias koj yuav pom qhov nrawm lossis tsis sib haum ntawm ob txoj kev xaiv.

Txog qhov piv txwv no, cia lump SLAM, teeb meem-kev zam, thiab qhov tseem ceeb txav mus los txhua yam raws li ib qho teeb meem los daws tib lub sijhawm.

  1. Yog tias peb txiav txim siab mus rau txoj hauv kev ntsaws-n-ua si, peb dhia tam sim (nyob ntawm pob nyiaj siv) mus rau yam zoo li cov lasers tig saum toj kawg nkaus, lossis lub koob yees duab tob-ntawm-teb, lossis ToF lasers, thiab IMU (cov ncauj lus ntawm qhov no Qhia tau).
  2. Yog tias, ntawm qhov tod tes, xav mus rau txoj kev thib ob, peb yuav sim rho tawm txhua qhov ua tau me ntsis ntawm cov ntaub ntawv tawm ntawm qee lub suab nrov lossis IR sensors, lossis tsis muaj lub ntsej muag tag nrho - peb tsuas yog siv lub tshuab ntsuas tam sim no (tsoo)

Dab tsi tuaj yeem hais txog #1 vs #2? Ib yam yuav yog tias peb yuav tau kawm ntau ntxiv los ntawm kev ua #2. Cov kev txwv ntawm tsuas yog lub suab ntsuas lub suab ua haujlwm nrog, yuam peb xav txog ntau yam teeb meem.

Ntawm qhov tod tes, yog tias peb mob siab rau ua ntau yam dhau ntawm #2, peb yuav poob sijhawm, vim tias peb thov ntau dua li qhov peb yuav tsum tau los ntawm lub ntsuas cua.

Ib lub tswv yim ntxiv lossis lub tswv yim xav txog: Dab tsi sib xyaw ntawm kho vajtse thiab software zoo tshaj teb cov lus nug ntawm "yuav ua li cas", thiab dab tsi sib xyaw ntawm software (thiab kho vajtse?) Teb cov lus nug ntawm "dab tsi", "thaum", "qhov twg". Vim tias "yuav ua li cas" feem ntau yog cov lus nug qis dua uas "dab tsi", "thaum twg", thiab "qhov twg" vam khom kom tau txais cov lus teb.

Xijpeem, txhua qhov saum toj no tsuas yog qee yam los xav txog.

Hauv kuv qhov xwm txheej, tom qab siv zog ntau thiab muaj qhov teeb meem tsis sib xws ntawm kev sib txhuam thiab tsis tuaj yeem tswj tau thiab tswj tau zoo ib yam, nws yog lub sijhawm los ua lwm yam.

Yog li no Cov Lus Qhia - IMU.

Lub hom phiaj yog tias yog IMU hais tias tus neeg hlau tsis yog piv txwv, peb nce lub luag haujlwm. Yog tias peb piv piv nrawm dhau, peb txo lub voj voog ua haujlwm.

Kauj ruam 1: IMU Sensor

Lub IMU Sensor
Lub IMU Sensor
Lub IMU Sensor
Lub IMU Sensor

Thiab yog li peb lub ntsuas tom ntej ntxiv rau Wallace yog IMU. Tom qab qee qhov kev tshawb fawb, Kuv tau txiav txim siab ntawm MPU6050. Tab sis tam sim no lub sijhawm, MPU9050 (thiab tseem tsis ntev los no, MPU9250) zoo li yog lub tswv yim zoo dua.

Kuv mus-rau qhov chaw yog Amazon (hauv Asmeskas). Yog li kuv xaj ob ntawm lawv.

Qhov kuv tau txais qhov tseeb (zoo li tsis muaj kev tswj hwm qhov no; qhov ntawd yog qhov kuv tsis nyiam txog Amazon) yog ob MPU92/65. Kuv xav paub me ntsis txog qhov raug xaiv. Ua tibzoo saib cov duab; uas zoo li yog lub npe "tsev neeg". Txawm li cas los xij, qhov ntawd yog qhov kuv nyam nrog.

Ntxiv nws yog qhov yooj yim heev -tau ib lub rooj sib tham proto nrog txuas txuas, txuas lub sensor rau lub rooj tsavxwm, ntxiv 10 -pin ntsia hlau dav hlau thaiv (Kuv tau txais kuv los ntawm Pololu).

Yuav kom txo qis kev cuam tshuam, Kuv tau sim tso cov ntsuas no kom deb ntawm txhua yam ntxiv.

Qhov ntawd kuj txhais tau tias siv qee cov nylon ntsia liaj qhov rooj/txiv ntseej.

Kuv yuav siv I2C raws tu qauv. Vam tias tag nrho cov xov hlau ntev yuav tsis zoo ib yam.

Muaj ntau cov ntaub ntawv nyob rau lwm qhov hais txog kev sib txuas yooj yim thiab theem hluav taws xob, thiab lwm yam, yog li kuv yuav tsis rov hais dua ntawm no.

Kauj Ruam 2: Tej Yam Tsis Zoo Ib Leeg, Yooj Yim

Ntawm qhov kev sau ntawv no, zoo li tsis muaj ntau hauv online rau qhov tshwj xeeb MPU-92/65. Dab tsi muaj, ib yam li nrog cov ntsuas feem ntau, zoo li yog piv txwv siv Arduino.

Kuv sim ua cov Lus Qhia no sib txawv me ntsis los ntawm kev nthuav qhia cov txheej txheem tsis huv, vim tias txhua yam tsis ua haujlwm tam sim ntawd.

Kuv xav tias Cov Lus Qhia no zoo ib yam li blog ntau dua li AB-C, 1-2-3 "qhov no yog li cas koj ua nws".

Kauj Ruam 3: Kev Xeem Pib

Kev Xeem Pib
Kev Xeem Pib
Kev Xeem Pib
Kev Xeem Pib

Los ntawm cov duab hauv cov kauj ruam dhau los, cov xov hlau liab thiab dub mus rau cov ntsuas yog tau kawg VCC (5V) thiab GND. Cov xov hlau ntsuab thiab daj yog I2C kev sib txuas.

Yog tias koj tau ua tiav lwm qhov phiaj xwm I2C, lossis tau ua raws nrog cov kab ntawv no, tom qab ntawd koj twb paub txog "i2cdetect", thiab qhov ntawd yog thawj kauj ruam kom paub yog tias Raspberry tuaj yeem pom lub ntsuas tshiab.

Raws li koj tuaj yeem pom los ntawm cov duab hauv theem no, peb thawj zaug kev sim ua tsis tiav. IMU tsis tshwm (yuav tsum yog ntaus cim 0x68).

Txawm li cas los xij, xov xwm zoo yog tias I2C lub npav tab tom khiav. Peb pom ib lub cuab yeej 0x20 thiab nws yog MCP23017 qhov chaw nres nkoj nthuav dav (tam sim no lub luag haujlwm rau HCSR04 lub suab ntsuas lub suab).

Nws tsis yooj yim pom hauv daim duab, tab sis kuv tau txuas tib lub xim ntsuab thiab xim daj los ntawm IMU mus rau MCP23017 (saib sab laug hauv qab duab)

Peb yuav tau ua qee qhov kev daws teeb meem.

Kauj ruam 4: Troubleshooting

Image
Image
Teeb meem
Teeb meem
Teeb meem
Teeb meem

Siv qhov teeb tsa txuas mus ntxiv ntawm voltmeter (ib qho nrog lub suab nrov), Kuv tau sim VCC (5V), GND, SDA, thiab SCL kev sib txuas. Cov ntawd zoo.

Kev sim tom ntej yog txhawm rau txiav MCP23017 los ntawm I2C npav, tsuas yog MPU-92/65 ntawm lub npav. Qhov ntawd ua pov thawj tsis muaj txiaj ntsig - "i2cdetect" tom qab ntawd tsis pom cov khoom siv.

Yog li, tom ntej no, Kuv tshem lub ntsuas cua los ntawm tus ncej totem, thiab rov txuas nws ncaj qha mus rau 5V-rau-3V tsheb npav ob tog; ie, ncaj qha rau Raspberry. (cov xov hlau luv?).

Thiab voila. Lub sijhawm no muaj kev vam meej. Peb pom 0x68 qhia siv "i2cdetect".

Tab sis peb tseem tsis tau paub tias vim li cas nws thiaj ua haujlwm rau lub sijhawm no. Nws puas yog qhov ntev ntawm cov xov hlau? Qhov chaw nyob dhau los?

Nco tseg: Nws tsis muaj qhov sib txawv txawm hais tias ADO raug tsaws lossis tsis yog. Nws tuaj yeem muaj qhov rub tawm ntawm lub nkoj thiab rub tawm cov neeg tawm tsam. Tib yam yuav muaj tseeb rau FSYNC.

Tom ntej no, Kuv rov txuas MCP23017. Yog li tam sim no peb muaj ob lub cuab yeej ntawm I2C npav. (saib duab). Ua tiav, tam sim no peb pom ob qho tib si 0x20 thiab 0x68 nrog i2cdetect.

Cov vis dis aus nkag mus ntxiv me ntsis ntawm qhov tshwm sim thaum lub sijhawm daws teeb meem.

Kauj Ruam 5: Nyeem Sensor Cov Ntaub Ntawv

Image
Image
Nyeem Sensor Cov Ntaub Ntawv
Nyeem Sensor Cov Ntaub Ntawv
Nyeem Sensor Cov Ntaub Ntawv
Nyeem Sensor Cov Ntaub Ntawv

Ntau Yam Mus Los

Kuv txiav txim siab siv ntau txoj hauv kev kom tau txais cov ntaub ntawv muaj txiaj ntsig los ntawm lub ntsuas cua. Ntawm no lawv yog, tsis yog nyob rau hauv ib qho kev txiav txim:

  1. sim qee qhov kev qhia yooj yim
  2. saib los ntawm qee cov ntaub ntawv online ntawm kev sau npe
  3. ua tibzoo saib lwm tus piv txwv thiab / lossis tus lej

Vim li cas cov kev qhia no? Vim li cas ho tsis cia li nrhiav qee lub tsev qiv ntawv lossis tus lej uas twb muaj lawm?

Los ntawm kev sim thiab sim qee lub tswv yim, peb tuaj yeem nqus tau qee qhov kev paub txog tsis tsuas yog lub ntsuas tshwj xeeb no, tab sis kuj tau txais qee cov txheej txheem, kev txawj, thiab txoj hauv kev xav txog kev tawm tsam qee yam tshiab, thiab qee yam uas yuav tsis muaj ntaub ntawv ntau; qee yam uas yuav muaj ntau yam tsis paub.

Tsis tas li, thaum peb tau ua si nrog thiab sim qee qhov ntawm peb tus kheej lub tswv yim thiab tau txais qee qhov kev nkag siab, peb nyob rau hauv txoj haujlwm zoo los ntsuas lwm tus neeg txoj cai lossis tsev qiv ntawv.

Piv txwv li, tom qab saib qee qhov C ++ code rau MPU9250 hauv github, Kuv paub nws tau yuam kuv kom siv kev cuam tshuam, uas kuv tseem tsis xav ua.

Tsis tas li, nws los nrog yam ntxiv xws li kev ntsuas ntsuas; dua, qee yam uas kuv tseem tsis tau xav txog.

Nws yuav yog qhov uas kuv yuav tsum tau ua los teb cov lus nug yooj yim "yog tus neeg hlau tig los yog tsis yog" tuaj yeem teb tau yooj yim heev los ntawm kev nyeem qee cov npe.

Sau npe

Ntawm qhov kev sau ntawv no, zoo li tsis muaj ntau ntawm cov ntsuas no. Qhov tseeb, yog tias koj ua tibzoo saib cov duab uas los nrog Cov Lus Qhia no, thiab ua tib zoo saib cov ntawv sau ntawm cov chips tiag, nws ua rau kuv xav tsis thoob tias qhov no tsis yog qhov tawm. Kuv tsis cuam tshuam txog qhov kuv pom dab tsi los ntawm Invense. Txawm li cas los xij, Kuv tau xaiv los saib cov ntaub ntawv sau npe rau cov qauv uas kuv pom: MPU-6050, thiab MPU-9250.

Hauv ob qho tib si, cov hauv qab no yog tib yam rau ob qho tib si. Thiab rau cov pib, peb xav tias nws tseem yuav zoo ib yam rau MPU-92/65.

59 txog 64 - ntsuas ntsuas lub ntsuas cua

65, 66 - ntsuas kub 67 txog 72 - ntsuas ntsuas lub ntsej muag 73 txog 96 - cov ntaub ntawv ntsuas sab nraud

Ib yam khoom ntawm kev ceeb toom: MPU-6050 zoo li tsis muaj lub ntsuas hluav taws xob, thaum MPU-9250 (thiab peb xav tias qhov no ib yam nkaus) muaj ib qho.

Qee qhov nthuav dua, vam tias cov ntaub ntawv muaj txiaj ntsig tau txais los ntawm cov ntawv sau npe:

Cov ntaub ntawv Magnetometer:

magnetometer id: 0x48 sau npe 00 txog 09: 00H WIA 0 1 0 0 1 0 0 0 01H INFO INFO7 INFO6 INFO5 INFO5 INFO4 INFO3 INFO2 INFO1 INFO0 INFO0 02H ST1 0 0 0 0 0 0 DOR DRDY 03H HXL HX7 HX6 HX5 HX4 HX3 HX2 HX0 HX0 HXH HX15 HX14 HX13 HX12 HX11 HX10 HX9 HX8 05H HYL HY7 HY6 HY5 HY4 HY3 HY2 HY1 HY0 06H HYH HY15 HY14 HY13 HY12 HY11 HY10 HY9 HY8 07H HZL HZ7 HZ6 HZ5 HZ4 HZ3 HZ2 HZ1 HZ0 08H HZH HZ15 HZ14 HZ13 HZ12 HZ11 HZ10 HZ9 HZ8 09H ST2 0 0 0 BITM HOFL 0 0 0 ib qho kev rhuav tshem ntawm txhua qhov sau npe txhais li cas: HXL [7: 0]: X-axis ntsuas cov ntaub ntawv qis dua 8bit HXH [15: 8]: X-axis ntsuas cov ntaub ntawv siab dua 8bit HYL [7: 0]: Y-axis ntsuas cov ntaub ntawv qis dua 8bit HYH [15: 8]: Y-axis ntsuas cov ntaub ntawv siab dua 8bit HZL [7: 0]: Z-axis ntsuas cov ntaub ntawv qis dua 8bit HZH [15: 8]: Z-axis ntsuas cov ntaub ntawv siab dua 8bit ib

Programming

Ib qho ntxiv ntawm cov ntaub ntawv los ntawm cov ntawv sau npe yog tias zoo li tsuas yog kwv yees li 100 lossis yog li sau npe. Yog li ib txoj hauv kev tuaj yeem yog sau cov phiaj xwm yooj yim uas nkag mus rau lub cuab yeej (0x68) thiab sim nyeem cov ntawv teev npe ua ntu zus, yam tsis hais txog lawv lub ntsiab lus, tsuas yog pom cov ntaub ntawv tuaj yeem pom.

Thiab tom qab ntawd, ua tiav daim ntawv hla dhau, siv tib tus lej, thiab sib piv cov ntaub ntawv los ntawm ib qho dhau los dhau mus.

Lub tswv yim yog tias peb tuaj yeem tshem tawm ib qho kev sau npe uas zoo li tsis muaj cov ntaub ntawv (xoom lossis FF?) Lossis qhov ntawd yeej tsis hloov pauv, thiab peb tseem tuaj yeem tsom mus rau qhov uas hloov pauv.

Tom qab ntawd, ib qho peb tab tom saib tsuas yog cov uas hloov pauv, ntxiv hauv qhov nruab nrab ua haujlwm uas qhov nruab nrab N kawg nyeem ntawm cov npe ntawd, saib seb puas muaj qhov tseeb qhov tseeb ruaj khov rau qhov sau npe ntawd. Qhov no yuav xav tias peb tau khaws lub sensor tseem nyob, thiab nyob hauv ib qho chaw.

Thaum kawg, peb tuaj yeem maj mam sim cov khoom nrog lub ntsuas, xws li nudging nws (ntsuas lub ntsuas, gyro), lossis tshuab rau nws (kub), lossis tig nws (ob qho dhau los ntxiv rau lub tshuab ntsuas hluav taws xob) thiab pom tias qhov no muaj txiaj ntsig zoo li cas.

Kuv nyiam siv wiringPi lub tsev qiv ntawv ntau li ntau tau. Nws muaj kev txhawb nqa rau I2C.

Thawj zaug:

/********************************************************************************

* los tsim: gcc first.test.mpu9265.c -o first.test.mpu9265 -lwiringPi * * kom khiav: sudo./first.test.mpu9265 * * qhov program no tsuas yog tso tawm ntau ntawm (ua tau) sau npe los ntawm MCP23017, * thiab tom qab ntawd los ntawm MPU9265 (lossis lwm yam MPU ntawm qhov chaw 0x68) * * Kuv tau siv nws los txheeb xyuas yog tias kuv tuaj yeem nyeem tau los ntawm lub ntsuas cua, txij li kuv twb * muaj kev ntseeg siab hauv MCP23017. *********************************************************** ****************************/ #include #include #include #include #include int main (int argc, char ** argv) {tso ("Wb pom dab tsi MCP23017 @ 0x20 tau hais:"); nco = 0; int deviceId1 = 0x20; int fd1 = wiringPiI2CSetup (deviceId1); yog (-1 == fd1) {fprintf (stderr, "Tsis tuaj yeem qhib wiringPi I2C ntaus ntawv: %s / n", strerror (errno)); rov 1; } rau (int reg = 0; reg <300; reg ++) {fprintf (stderr, "%d", wiringPiI2CReadReg8 (fd1, reg)); fflush (stderr); ncua (10); } tso (""); tso ("Wb pom dab tsi MPU9265 @ 0x20 tau hais:"); nco = 0; int ntaus ntawv ID2 = 0x68; int fd2 = wiringPiI2CSetup (deviceId2); yog (-1 == fd2) {fprintf (stderr, "Tsis tuaj yeem qhib wiringPi I2C ntaus ntawv: %s / n", strerror (errno)); rov 1; } rau (int reg = 0; reg <300; reg ++) {fprintf (stderr, "%d", wiringPiI2CReadReg8 (fd2, reg)); fflush (stderr); ncua (10); } tso (""); rov 0; }

Qhov thib ob khiav:

/********************************************************************************

* los tsim: gcc second.test.mpu9265.c -o second.test.mpu9265 -lwiringPi * * kom khiav: sudo./second.test.mpu9265 * * Qhov program no tso tawm tus lej sau npe nrog tus nqi nyeem. * * Qhov no ua rau nws muaj txiaj ntsig zoo rau cov yeeb nkab (xa rov qab) cov zis rau hauv cov ntaub ntawv, thiab tom qab ntawd * ntau qhov kev ua haujlwm tuaj yeem ua tiav, los sib piv. Nws yuav muab qee qhov kev nkag siab rau * dab tsi rau npe tseem ceeb, thiab cov ntaub ntawv yuav coj li cas. *********************************************************** ****************************/ #include #include #include #include #include #include int main (int argc, char ** argv) {int deviceId = -1; yog (0) {} lwm yog (! strncmp (argv [1], "0x20", strlen ("0x20"))) {deviceId = 0x20; } lwm yog (! strncmp (argv [1], "0x68", strlen ("0x68"))) {deviceId = 0x68; } lwm yog (! strncmp (argv [1], "0x69", strlen ("0x69"))) {deviceId = 0x69; } tso ("Wb pom dab tsi MPU9265 @ 0x20 tau hais:"); nco = 0; int fd = wiringPiI2CSetup (deviceId); yog (-1 == fd) {fprintf (stderr, "Tsis tuaj yeem qhib wiringPi I2C ntaus ntawv: %s / n", strerror (errno)); rov 1; } rau (int reg = 0; reg <300; reg ++) {fprintf (stderr, "%d:%d / n", reg, wiringPiI2CReadReg8 (fd, reg)); fflush (stderr); ncua (10); } rov qab 0; }

Qhov thib peb khiav:

/********************************************************************************

* los tsim: gcc thib peb.test.mpu9265.c -o thib peb.test.mpu9265 -lwiringPi * * kom khiav: sudo./third.test.mpu9265 * * Qhov program no yog qhov tshwm sim ntawm qhov thib ob. Nws tsuas yog nyeem los ntawm * sau npe uas qhia qhov sib txawv ntawm ib qho kev khiav thiab tom ntej.*********************************************************** ****************************/ #include #include #include #include #include #include int main (int argc, char ** argv) {int deviceId = -1; yog (0) {} lwm yog (! strncmp (argv [1], "0x68", strlen ("0x68"))) {deviceId = 0x68; } lwm yog (! strncmp (argv [1], "0x69", strlen ("0x69"))) {deviceId = 0x69; } tso ("Wb pom dab tsi MPU9265 @ 0x20 tau hais:"); nco = 0; int fd = wiringPiI2CSetup (deviceId); yog (-1 == fd) {fprintf (stderr, "Tsis tuaj yeem qhib wiringPi I2C ntaus ntawv: %s / n", strerror (errno)); rov 1; } rau (int reg = 61; reg <= 73; reg ++) {fprintf (stderr, "%d:%d / n", reg, wiringPiI2CReadReg8 (fd, reg)); fflush (stderr); ncua (10); } rau (int reg = 111; reg <= 112; reg ++) {fprintf (stderr, "%d:%d / n", reg, wiringPiI2CReadReg8 (fd, reg)); fflush (stderr); ncua (10); } rau (int reg = 189; reg <= 201; reg ++) {fprintf (stderr, "%d:%d / n", reg, wiringPiI2CReadReg8 (fd, reg)); fflush (stderr); ncua (10); } rau (int reg = 239; reg <= 240; reg ++) {fprintf (stderr, "%d:%d / n", reg, wiringPiI2CReadReg8 (fd, reg)); fflush (stderr); ncua (10); } rov qab 0; }

Yog li peb tau kawm dab tsi txog tam sim no? Cov duab ntawm lub rooj nrog cov xim hais qhia thaj chaw qhia tias cov zis zoo li sib phim thawj pawg ntawm cov npe sau npe.

Cov txiaj ntsig kom deb li deb tuaj yeem tsim cov lus nug tshiab.

Nqe lus nug: vim li cas tsuas muaj ib qho kev tso npe tshwm rau pab pawg "sab nraud"?

Nqe lus nug: dab tsi yog tag nrho cov npe tsis paub "??????"

Lus Nug: Txij li qhov haujlwm tsis cuam tshuam-tsav, nws puas thov cov ntaub ntawv qeeb dhau? nrawm heev?

Lus Nug: Peb puas tuaj yeem cuam tshuam qhov txiaj ntsig los ntawm kev sim ua yam nrog lub ntsuas nws tus kheej thaum nws ua haujlwm?

Kauj Ruam 6: Cia Khawb Ntau Hauv Qhov Nyeem / Cov Ntaub Ntawv

Kuv xav tias cov kauj ruam tom ntej ua ntej lwm yam yog txhawm rau txhim kho txoj haujlwm rau:

  • hloov pauv tau ntau npaum li cas ncua sijhawm ncua (ms)
  • hloov pauv tau ntau npaum li cas kev nyeem ntawv kom muab qhov nruab nrab khiav ntawm ib tus ntawv sau npe

(Kuv yuav tsum txuas qhov program ua cov ntawv. Zoo li yog qhov teeb meem tso nws ntawm no. "Thib plaub.est.mpu9265.c")

Nov yog kev siv siv 10 qhov nyeem kawg rau qhov nruab nrab, ntawm 10ms lub voj:

sudo./fourth.test.mpu9265 0x68 10 10

61:255 0 255 0 255 0 255 0 0 0: 102 62:204 112 140 164 148 156 188 248 88 228: 167 63:189 188 189 187 189 188 188 188 188 189: 188 64: 60 40 16 96 208 132 116 252 172 36: 112 65: 7 7 7 7 7 7 7 7 7 7: 7 66:224 224 224 240 160 208 224 208 144 96: 195 67: 0 0 0 0 0 0 0 0 0 0: 0 68:215 228 226 228 203 221 239 208 214 187: 216 69: 0 255 0 255 255 0 255 0 0 0: 102 70:242 43 253 239 239 45 206 28 247 207: 174 71: 0 255 255 0 255 255 255 255 255 255: 204 72: 51 199 19 214 11 223 21 236 193 8: 117 73: 0 0 0 0 0 0 0 0 0 0: 0 111: 46 149 91 199 215 46 142 2 233 199: 132 112: 0 0 0 0 0 0 0 0 0 0: 0 189:255 0 255 0 255 0 0 255 0 255: 127 190: 76 36 240 36 100 0 164 164 152 244: 121 191:188 188 188 188 187 188 187 189 187 189: 187 192: 8 48 48 196 96 220 144 0 76 40: 87 193: 7 7 7 7 7 8 7 7 7 7: 7 194:208 224 144 240 176 240 224 208 240 224: 212 195: 0 0 0 0 0 0 0 0 0 0: 0 196:243 184 233 200 225 192 189 242 188 203: 209 197:255 0 0 0 255 0 255 0 0 255: 102 198:223 39 247 43 245 22 255 221 0 6: 130 199: 0 255 255 255 0 255 255 255 255 0: 178 200:231 225 251 1 252 20 211 216 218 16: 164 201: 0 0 0 0 0 0 0 0 0 0: 0 239: 21 138 196 87 26 89 16 245 187 144: 114 240: 0 0 0 0 0 0 0 0 0 0: 0

Thawj, sab laug-feem ntau yog tus lej sau npe. Tom qab ntawv los nyeem 10 qhov kawg rau qhov sau npe ntawd. Thaum kawg, kab ntawv kawg yog qhov nruab nrab rau txhua kab.

Nws zoo li sau npe 61, 69, 71, 189, 197, thiab 199 tsuas yog ob qho xwb, lossis npaj tau / tsis npaj, lossis lawv yog qhov siab byte ntawm 16-ntsis tus nqi (tsis zoo?).

Lwm yam kev soj ntsuam nthuav:

  • sau npe 65, 193 - ruaj khov thiab zoo ib yam
  • sau npe 63, 191 - ruaj khov thiab zoo ib yam
  • sau npe 73, 112, 195, 201, 240 - tag nrho ntawm xoom

Cia peb txheeb xyuas cov kev soj ntsuam no rov qab rau ntau xim, cov ntsiab lus pom ntawm lub rooj los ntawm ua ntej.

Sau npe 65 - kub

Sau npe 193 - ??????

Sau npe 63 - ntsuas qhov ntsuas

Sau npe 191 - ??????

Sau npe 73 - sab nrauv

Sau npe 112 thiab nyob - ??????

Zoo, peb tseem tsis tau paub, txawm li cas los xij, peb tau kawm qee yam muaj txiaj ntsig.

Sau npe 65 (ntsuas kub) thiab sau npe 63 (ntsuas lub ntsuas cua) ob qho tib si ruaj khov heev. Nov yog qee yam peb xav tau. Kuv tsis tau kov lub sensor; nws tsis txav mus, lwm yam tshaj li qhov xwm txheej kev co, raws li tus neeg hlau tau so ntawm tib lub rooj zoo li kuv lub khoos phis tawj.

Muaj ib qho kev ntsuas txaus peb tuaj yeem ua rau txhua qhov ntsuas kub/ntsuas ntsuas ntsuas no. Txog qhov kev xeem ntawd, peb xav tau lwm qhov program.

Kauj Ruam 7: Peb Muaj Peev Xwm cuam tshuam rau qhov kub thiab txias

Hauv cov kauj ruam dhau los peb tau nqaim tsawg kawg ib qho rau qhov ntsuas kub, thiab ib qho ua kom nrawm dua.

Nrog qhov txuas ntxiv ntawm qhov haujlwm ("thib tsib.test.mpu9265.c"), peb tuaj yeem pom qhov kev hloov pauv rau ob qho ntawv sau npe. Thov saib cov yeeb yaj kiab.

Ntau khawb

Yog tias peb rov qab mus thiab saib cov ntaub ntawv rau npe, peb pom tias muaj:

  • peb 16 ntsis tso tawm rau gyroscope
  • peb 16 ntsis tso tawm rau lub ntsuas cua
  • peb 16 ntsis tso tawm rau lub tshuab ntsuas hluav taws xob
  • ib qho 16 ntsis tso tawm kom sov

Txawm li cas los xij, cov txiaj ntsig tau los ntawm peb cov phiaj xwm kev sim yooj yim yog txhua qhov 8 ntsis tso tawm. (sau npe nkaus xwb).

Yog li cia peb sim ntau dua ntawm tib txoj hauv kev, tab sis lub sijhawm no nyeem 16 khoom siv tsis yog 8.

Peb tej zaum yuav tau ua qee yam zoo li hauv qab no. Cia peb siv qhov ntsuas kub ua piv txwv, txij li nws tsuas yog ib qho 16 ntsis tso tawm.

// tau txais cov ntawv piav qhia fd…

int tempRegHi = 65; int tempRegLo = 66; int hiByte = wiringPiI2CReadReg8 (fd, tempRegHi); int loByte = wiringPiI2CReadReg8 (fd, tempRegLo); int tau = hiByte << 8; // tso qhov kev txiav txim siab 8 khoom mus rau sab saud ntawm 16 qhov txiaj ntsig txiaj ntsig = = loByte; // tam sim no ntxiv rau hauv lo lus xaj 8 khoom, ua tiav 16 tus lej me ntsis // luam tus lej lossis siv cov duab kab rov tav ua haujlwm los ntawm ua ntej

Los ntawm peb cov kauj ruam dhau los peb tau pom tias npe 65 yog pob zeb zoo nkauj khov kho, thaum sau npe 66 yog nrov heev. Txij li 65 yog qhov kev txiav txim siab byte, thiab 66 qhov qis xaj byte, uas ua rau muaj kev nkag siab.

Txog kev nyeem ntawv, peb tuaj yeem sau npe 65 tus ntaub ntawv raws li yog, tab sis peb tuaj yeem nruab nrab tawm npe 66 tus nqi.

Lossis peb tsuas tuaj yeem nruab nrab tag nrho cov txiaj ntsig.

Ua tibzoo saib cov vis dis aus kawg rau ntu no; nws qhia pom kev nyeem tag nrho 16 qhov ntsuas kub me ntsis. Cov cai yog "thib rau.test.mpu9265.c"

Kauj Ruam 8: Lub Accelerometer thiab Gyroscope

Image
Image

Cov yeeb yaj kiab rau ntu no qhia tawm los ntawm lub ntsuas hluav taws xob thiab lub tshuab ntsuas lub ntsej muag, siv qhov kev tshuaj ntsuam xyuas "seventh.test.mpu9265.c". Tus lej ntawd tuaj yeem nyeem 1, 2, lossis 3 sib law liag byte-khub (nyob zoo thiab lo bytes) thiab hloov qhov txiaj ntsig rau ib qho 16 ntsis tus nqi. Yog li, peb tuaj yeem nyeem ib qho nkaus xwb, lossis peb tuaj yeem nyeem ob ntawm lawv ua ke (thiab nws suav qhov kev hloov pauv), lossis peb tuaj yeem nyeem tag nrho peb (thiab nws suav qhov kev hloov pauv).

Txhawm rau rov hais dua, rau theem no, rau Cov Lus Qhia no, Kuv tsuas yog nrhiav los teb cov lus nug yooj yim: "tus neeg hlau tig/pivot?". Kuv tsis tab tom nrhiav rau tus nqi meej, xws li, nws puas tig 90 degrees. Qhov ntawd yuav tuaj tom qab thaum peb mus ua SLAM, tab sis nws tsis xav tau rau qhov yooj yim teeb meem-zam kev thiab txav mus los yooj yim.

Kauj Ruam 9: (ua haujlwm Zoo) Magnetometer

thaum siv cov cuab yeej i2cdetect, MPU9265 pom li 0x68 hauv cov lus:

0 1 2 3 4 5 6 7 8 9 a b c d e f

00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --

Muaj cov kauj ruam ntxiv uas yuav tsum tau nyeem los ntawm ntu magnetometer ntawm IMU.

Los ntawm Invesense sau npe PDF doc:

REGISTERS 37 txog 39 - I2C SLAVE 0 CONTROL

  • REGISTER 37 - I2C_SLV0_ADDR
  • REGISTER 38 - I2C_SLV0_REG
  • REGISTER 39 - I2C_SLV0_CTRL

Pom zoo: