Агуулгын хүснэгт:
- Алхам 1: Shield/breadboard -ийг бүтээх
- Алхам 2: Arduino програмчлах
- Алхам 3: Андройд програмыг Google Play эсвэл GitHub -ийн салбараас ачаална уу
- Алхам 4: Arduino руу сонирхолтой зүйлд холбогдоорой (би R/C машин ашигласан)
- Алхам 5: Android төхөөрөмжийг ашиглан Arduino руу холбогдоно уу
- Алхам 6: Өгөгдлийг олж авах, төлөвлөх
- Алхам 7: Цаашид ашиглахын тулд Python (эсвэл бусад платформ) руу импортлоорой
Видео: Бодит цагийн MPU-6050/A0 өгөгдөл бүртгэх нь Arduino болон Android дээр: 7 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Би Arduino -ийг машин сурахад ашиглах сонирхолтой байсан. Эхний алхам бол би Андройд төхөөрөмж ашиглан бодит цагийн (эсвэл ойролцоо) өгөгдлийн дэлгэц, бүртгэгч хийхийг хүсч байна. Би MPU-6050-аас хурдатгал хэмжигчийн өгөгдлийг авахыг хүсч байгаа тул HC-05-ийг 115200 bod-д ашиглахаар бүтээсэн. Энэхүү тохиргооны тусламжтайгаар 4 сувгийн өгөгдлийг секундэд 250 дээжээр дамжуулах боломжтой.
Бүтээл нь хэд хэдэн алхамтай:
- Бамбай эсвэл талхны хавтанг бүтээ
- Arduino програмчлах
- Андройд програмыг Google Play -ээс ачаалж эсвэл GitHub -ийг салбарлуулаад өөрөө эмхэтгээрэй
- MPU-6050-ийг чичирдэг сонирхолтой зүйлд холбоно уу (би R/C машин ашигласан)
- Android төхөөрөмжийг ашиглан Arduino -той холбогдоно уу
- Өгөгдлийг төлөвлөж, сонирхож байвал хадгална уу
- Цаашид ашиглахын тулд Python (эсвэл бусад платформ) руу импортлоорой
Эхэлцгээе!
Алхам 1: Shield/breadboard -ийг бүтээх
Энэ бол Arduino, HC-05, MPU-6050-ийн холболтын диаграм юм. MPU-6050-аас гадна би ADC ажиллаж байгааг харуулахын тулд гэрлийн мэдрэгч дээр A0 аналог оролттой байна. Аливаа 0-5 вольтын дохиог A0 ADC руу оруулж болно. Эдгээр нь миний бүтээхэд ашигласан бүрэлдэхүүн хэсгүүд юм.
- Ардуино Уно
- HC-05 (HC-06 бас ажиллах ёстой, гэхдээ миний бүтэц HC-05-тэй байсан)
- MPU-6050
- Sparkfun фоторезистор
- 10kOhm эсэргүүцэл (хүрэн хар-улбар шар)
Ихэнх HC-05 Bluetooth модулиуд анхдагчаар 9600 baud байдаг. Өгөгдлийг амжилттай дамжуулахын тулд та үүнийг 115200 бодын хурдаар дахин програмчлах шаардлагатай болно. Үүнийг хэрхэн хийхийг тайлбарласан сайн HC-05/HC-06 AT Command Instructable байна.
Алхам 2: Arduino програмчлах
Би Arduino програмчлахад Arduino IDE 1.6.7 хувилбарыг ашигласан. Кодыг энэ алхам дахь холбоос эсвэл GitHub репо дээрээс татаж авах боломжтой. Би гурван хувилбарыг оруулсан болно: Firmware125.ino бол 125 герц, Firmware250.ino бол 250 герц, Firmware500.ino бол 500 герц хувилбар юм. Arduino -г 500 герцээр эргүүлэхийн тулд A0 ADC -ийг цуглуулдаггүй.
Програм хангамж нь миний цагийг шалгаж байсан Pin 9 дээрх цагийг багтаасан болно. Мөр нь мөчлөгийн хугацаа 4 мс (1/250 герцтэй тэнцүү) байгааг харуулж байна. Цуваа холбоосын асуудал гарвал цаг хугацаа жигд биш болохыг би олж мэдсэн.
Arduino код нь бит маскыг ашиглан пакет бүрт сувгийн дугаар нэмдэг, учир нь дээж заримдаа Bluetooth -ээр дамждаг. Би сувгийн дугаарыг хадгалахын тулд хамгийн чухал гурван битийг ашигладаг. Гарын үсэг зурсан бүхэл тоонуудын хувьд хамгийн чухал ач холбогдолтой бит (MSB) тэмдэгтэд зориулагдсан болно. Би MSB -ийг бүхэл тооноос илүүтэйгээр өөрийн хаягаар ашиглахыг хүсч байгаа тул гарын үсэг зурсан хурдасгуурын бүх утгыг тэмдэггүй бүхэл тоо болгон хөрвүүлэх ёстой. Би үүнийг утга бүрт 32768 нэмж (MPU хурдатгал хэмжигч ADC тоо нь +32768 -аас -32768 хүртэл) нэмээд гарын үсэг зураагүй бүхэл тоо болгон оруулна.
(гарын үсэг зураагүй int) ((урт) iAccelData+32767);
Сувгийн дугаар нь хурдатгал хэмжигч ба A0 порт бүрийн хувьд адилхан бөгөөд ингэснээр сувгийн дугаарууд дараалалгүй байвал унасан пакетийг илрүүлэх боломжтой болно. Arduino дээрх Bluetooth-ээс ирж буй пакетуудын хувьд хоёртын хэв маяг нь (шинж тэмдгүүд нь бага зэрэг өөрчлөгддөг):
(xacc 3 хаягийн бит = 0x00, 13 битийн тэмдэггүй) (yacc 3 хаягийн бит = 0x01, 13 битийн тэмдэггүй) (zacc 3 хаягийн бит = 0x02, 13 битийн тэмдэггүй) (3 хаягийн бит = 0x03, iadc13bit гарын үсэггүй)
(xacc 3 хаягийн бит = 0x00, 13 битийн тэмдэггүй) (yacc 3 хаягийн бит = 0x01, 13 битийн тэмдэггүй) (zacc 3 хаягийн бит = 0x02, 13 битийн тэмдэггүй) (3 хаягийн бит = 0x03, iadc13bit гарын үсэггүй) (xacc 3 хаягийн бит = 0x00, 13 битийн тэмдэггүй) (yacc 3 хаягийн бит = 0x01, 13 битийн тэмдэггүй) (zacc 3 хаягийн бит = 0x02, 13 битийн тэмдэггүй) (3 хаягийн бит = 0x03, iadc13bit гарын үсэггүй) …
Хэрэв та Bluetooth өгөгдлийг уншихын тулд Accel Plot Android програмаас өөр зүйл ашиглаж байгаа бол хаягийг задлах алхмуудыг энд оруулав (би GitHub репо -аас Accel Plot Bluetooth.java файлын хувьсагчийн нэрийг ашиглаж байна):
- Гарын үсэг зураагүй 16 int -ийг уншина уу
- Өндөр байтыг задалж btHigh руу хадгална уу.
- Бага байтыг задалж btLow руу хадгална уу.
- (btHigh >> 5) & 0x07 ашиглан хаягийг btHigh дээрээс аваарай. Энэ мэдэгдэл нь btHigh 5 битийг баруун тийш шилжүүлж гурван хаягийн битийг хамгийн доод гурван регистр рүү шилжүүлнэ. & Тэмдэг нь логик AND ба 4 ба түүнээс дээш битүүдийг тэг болгож, сүүлийн гурван битийг хаягийн битүүдтэй тааруулахыг шаарддаг. Энэхүү мэдэгдлийн үр дүн бол таны хаяг юм.
Хэрэв та Accel Plot ашиглаж байгаа бол хаягийг задлах талаар санаа зовох хэрэггүй болно.
Алхам 3: Андройд програмыг Google Play эсвэл GitHub -ийн салбараас ачаална уу
Андройд програмыг төхөөрөмж дээрээ ачаалах хэд хэдэн сонголт танд байна. Хэрэв та кодлохоос зайлсхийхийг хүсч байвал "Accel Plot" гэж хайх боломжтой бөгөөд апп Google Play дэлгүүрт гарч ирэх ёстой. Дэлгүүрт суулгах зааврыг дагана уу.
Энэхүү зааварчилгааны талаархи миний хүсэл бол бусад хүмүүсийг төсөл зохиоход нь уриалах явдал юм, тиймээс би кодыг GitHub репо дээр нийтэлсэн. Та үүнийг салбарлаж, бүтээж, хүссэнээрээ өөрчлөх боломжтой байх ёстой. Би кодыг MIT лицензийн дагуу нийтэлсэн тул хөгжилтэй байгаарай!
Алхам 4: Arduino руу сонирхолтой зүйлд холбогдоорой (би R/C машин ашигласан)
Би уг төхөөрөмжийг замын гадаргууг илрүүлэх зорилгоор ашиглахыг хүсч байгаа тул алсын удирдлагатай (R/C) жижиг машин тохиромжтой гэж бодсон. Хурц хөдлөх эсвэл чичиргээ хийх зүйл дээр байвал энэ нь дараагийн алхамд тустай гэж би бодож байна.
Алхам 5: Android төхөөрөмжийг ашиглан Arduino руу холбогдоно уу
Хэрэв та үүнийг хийгээгүй бол эхлээд HC-05-ийг Андройд төхөөрөмжтэйгээ хослуулах шаардлагатай болно. Ихэнх төхөөрөмж дээр та үүнийг тохиргоо руу орж хийж чадна гэдэгт би итгэдэг. Ихэнх HC-05 төхөөрөмжүүдийн анхдагч зүү нь 1234 эсвэл 1111 байх болно.
Андройд төхөөрөмж дээр AccelPlot програмыг нээнэ үү. Аппликешн нээгдэж, HC-05-т холбогдохоосоо өмнө дээж авах хурд (үүнийг Arduino кодонд тохируулсан болно), акселерометрийн хэмжээс (мөн Arduino кодонд тохируулсан болно), хадгалах дээжийн тоог өөрчлөх боломжтой.
Эдгээр тохиргоог хийсний дараа "Холбох" товчийг дарна уу. Энэ нь Bluetooth төхөөрөмжүүдийг авчрах ёстой бөгөөд таны төхөөрөмжийг жагсаасан байх ёстой. Үүнийг сонгоод код холболтыг тогтоосны дараа "Холбогдсон" шарсан талх гарч ирнэ.
Буцах сумны товчлуурыг ашиглан Accel Plot руу буцна уу. HC-05 төхөөрөмжөөс өгөгдлийг харуулахын тулд "Урсгалыг эхлүүлэх" товчийг дарна уу. Та мөн өгөгдлийг хадгалах эсвэл давтамжийн модуляцлагдсан контентийг аудио үүрээр тоглуулах боломжтой товчлууруудтай байх ёстой.
Алхам 6: Өгөгдлийг олж авах, төлөвлөх
"Цацалтыг эхлүүлэх" товчийг идэвхжүүлсэн байх ёстой. Мэдээллийг дэлгэц рүү цацаж эхлэхийн тулд үүнийг товшино уу.
"Өгөгдлийг хадгалах" товчлуурыг мөн идэвхжүүлэх болно, өгөгдлийг хадгалахын тулд дарна уу.
Accel Plot нь аудио сувгууд дээр модуляцлагдсан дохио гаргах сонголтыг агуулдаг. Accel Plot програмын 2 суваг нь Андройд төхөөрөмж дээрх аудио гаралтын үүрний зүүн ба баруун сувгийг хэлнэ. Хэрэв та MPU-6050 өгөгдлийг Үндэсний багаж гэх мэт өгөгдөл бүртгэх тусдаа системд оруулахыг хүсч байвал энэ нь ашигтай болно.
Видео нь R/C машин дээрх өгөгдлийг цуглуулах системийн жишээг харуулав.
Алхам 7: Цаашид ашиглахын тулд Python (эсвэл бусад платформ) руу импортлоорой
Файлуудыг Андройд төхөөрөмж дээр хадгалдаг. Файлуудыг Android API 18 ба түүнээс дээш хувилбаруудад зориулсан "AccelPlot" лавлах дор хадгалах болно. Код нь.dat файлуудыг API / 19 (KitKat 4.4) ба түүнээс дээш хувилбарын "\ Tablet / Documents / AccelPlot" фолдерт байрлуулдаг. USB -ээр холбогдсон үед зарим Андройд төхөөрөмж дээр файл харуулах асуудал гарсан. Зарим тохиолдолд би тэдгээрийг харуулахын тулд Андройд төхөөрөмжийг дахин ачаалах шаардлагатай болсон. Яагаад гэдгийг нь мэдэхгүй ч суваг тус бүрт нэг файл байх ёстой. Нэмэлт ажил хийхийн тулд тэдгээрийг орон нутгийн лавлах руу хуулж болно.
Би Anaconda/Python 2.7 ашиглан файлуудыг нээж өгөгдлийг харуулсан. "ExploratoryAnalysis.ipynb" файл нь IPython Notebook файлтай бөгөөд бүх өгөгдлийн файлуудыг нээж, түүвэр өгөгдлийг төлөвлөх болно. Жишээ файлуудыг GitHub репо -д оруулсан болно. Өгөгдлийг 4 байт хөвөгч ('> f') хэлбэрээр хадгалдаг тул аливаа анализ хийх програм нээх боломжтой байх ёстой.
Надад "ReadDataFiles.ipynb" нэртэй энгийн файлыг оруулсан бөгөөд энэ нь нэг файлд нэрээр нь хэрхэн уншихыг харуулдаг.
Зөвлөмж болгож буй:
Бодит цагийн цагийн модулийг (DS3231) хэрхэн ашиглах вэ: 5 алхам
Бодит цагийн цагны модулийг (DS3231) хэрхэн ашиглах вэ: DS3231 бол өртөг багатай, туйлын нарийвчлалтай I2C бодит цаг (RTC) бөгөөд температурыг нөхсөн болор осциллятор (TCXO), болортой. Төхөөрөмж нь батерейны оролттой бөгөөд үндсэн хүчдэлийн үед цагийг зөв хэмждэг
Arduino UNO болон SD-карт ашиглан чийгшил, температурыг бодит цаг хугацаанд хэрхэн бүртгэх вэ? DHT11 Proteus дахь өгөгдөл бүртгэх симуляци: 5 алхам
Arduino UNO болон SD карт ашиглан чийгшил, температурыг бодит цаг хугацаанд хэрхэн бүртгэх вэ? DHT11 Proteus дахь өгөгдөл бүртгэгч симуляци: Танилцуулга: сайн уу, энэ бол Liono Maker, энд YouTube-ийн линк байна. Бид Arduino-тэй хамтран бүтээлч төсөл хийж, суулгагдсан систем дээр ажиллаж байна. Өгөгдөл бүртгэгч: Өгөгдөл бүртгэгч (өгөгдөл бүртгэгч эсвэл өгөгдөл бүртгэгч) нь цаг хугацааны явцад өгөгдлийг бүртгэдэг электрон төхөөрөмж юм
Өгөгдөл бүртгэх анемометр: 11 алхам (зурагтай)
Өгөгдөл бүртгэдэг анемометр: Би мэдээлэл цуглуулах, дүн шинжилгээ хийх дуртай. Би бас электрон хэрэгсэл бүтээх дуртай. Жилийн өмнө би Arduino бүтээгдэхүүнийг олж мэдээд шууд л " Байгаль орчны мэдээлэл цуглуулахыг хүсч байна " гэж бодлоо. Энэ бол Портланд хотод салхитай өдөр байсан, OR, тиймээс би
SCARA робот: Фовард ба урвуу кинематикийн талаар суралцах !!! (Plot Twist нь PRODUCTING ашиглан ARDUINO дээр бодит цагийн интерфэйсийг хэрхэн хийхийг сурах болно !!!!): 5 алхам (зурагтай)
SCARA робот: Фовард ба урвуу кинематикийн талаар суралцах !!! (Plot Twist PROCESSING ашиглан ARDUINO дээр бодит цагийн интерфэйсийг хэрхэн хийхийг сурах !!!!): SCARA робот бол салбарын ертөнцөд маш алдартай машин юм. Энэ нэр нь сонгомол нийцтэй угсралтын роботын гар эсвэл сонгомол нийцтэй үений роботын аль алиныг илэрхийлдэг. Энэ бол үндсэндээ гурван градусын эрх чөлөөний робот бөгөөд эхний хоёр дисплей юм
Мультиметр/Arduino/pfodApp ашиглан алсын өгөгдөл бүртгэх өндөр нарийвчлал: 10 алхам (зурагтай)
Мультиметр/Arduino/pfodApp ашиглан өндөр нарийвчлалтай алсын өгөгдөл бүртгэх: 2017 оны 4 -р сарын 26 -ны өдөр 4000ZC USB тоолуураар ашиглах схем, самбарыг шинэчилсэн. Андройд кодчилол шаардлагагүй Энэ заавар нь таны Arduino -аас өндөр нарийвчлалтай хэмжилтийг хэрхэн өргөн хүрээнд ашиглах, мөн алсаас илгээх боломжийг танд харуулав. мод бэлтгэх болон