![Valós idejű MPU-6050/A0 adatnaplózás Arduino és Android segítségével: 7 lépés (képekkel) Valós idejű MPU-6050/A0 adatnaplózás Arduino és Android segítségével: 7 lépés (képekkel)](https://i.howwhatproduce.com/images/001/image-1294-81-j.webp)
Tartalomjegyzék:
- 1. lépés: Készítse el a pajzsot/kenyértáblát
- 2. lépés: Programozza be az Arduino programot
- 3. lépés: Töltse be az Android -alkalmazást a Google Playről vagy a GitHub fiókjából
- 4. lépés: Csatlakozzon az Arduino -hoz valami érdekeshez (R/C autót használtam)
- 5. lépés: Az Android -eszköz használatával csatlakozzon az Arduino -hoz
- 6. lépés: Az adatok beszerzése és ábrázolása
- 7. lépés: Importálás Pythonba (vagy más platformra) további használatra
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:48
![Valós idejű MPU-6050/A0 adatnaplózás Arduino és Android segítségével Valós idejű MPU-6050/A0 adatnaplózás Arduino és Android segítségével](https://i.howwhatproduce.com/images/001/image-1294-82-j.webp)
Érdekelt az Arduino használata gépi tanuláshoz. Első lépésként egy valós idejű (vagy ahhoz közel álló) adatkijelzőt és naplózót szeretnék felépíteni egy Android -eszközzel. A gyorsulásmérő adatait szeretném rögzíteni az MPU-6050-ből, ezért a konstrukciót úgy terveztem, hogy a HC-05-t használja 115200 baudon. Ezzel a konfigurációval 4 adatcsatorna továbbítható 250 mintával másodpercenként.
Az építésnek néhány lépése van:
- Építsd meg a pajzsot vagy a kenyértáblát
- Programozza be az Arduino programot
- Töltse be az Android -alkalmazást a Google Playről, vagy telepítse a GitHub -ot, és állítsa össze saját maga
- Csatlakoztassa az MPU-6050-t valami érdekes, vibráló dologhoz (én R/C autót használtam)
- Az Android -eszközzel csatlakozzon az Arduino -hoz
- Ábrázolja az adatokat, ha érdekli, mentse el
- Importálja a Pythonba (vagy más platformra) további használatra
Lássunk neki!
1. lépés: Készítse el a pajzsot/kenyértáblát
![Építsd meg a pajzsot/kenyértáblát Építsd meg a pajzsot/kenyértáblát](https://i.howwhatproduce.com/images/001/image-1294-83-j.webp)
![Építsd meg a pajzsot/kenyértáblát Építsd meg a pajzsot/kenyértáblát](https://i.howwhatproduce.com/images/001/image-1294-84-j.webp)
Ez az Arduino, a HC-05 és az MPU-6050 kapcsolási rajza. Az MPU-6050 mellett az A0 analóg bemenetet egy fényérzékelőhöz kötöttem, jelezve, hogy az ADC működik. Bármilyen 0-5 voltos jelet be lehet hozni az A0 ADC-be. Ezeket az alkatrészeket használtam a konstrukcióhoz:
- Arduino Uno
- HC-05 (A HC-06-nak is működnie kell, de a konstrukcióm a HC-05-nél volt)
- MPU-6050
- Sparkfun fotorezisztor
- 10 kOhm ellenállás (barna-fekete-narancs)
A legtöbb HC-05 Bluetooth modul alapértelmezés szerint 9600 baud. Az adatok sikeres továbbításához át kell programoznia 115200 baud sebességre. Van egy jó HC-05/HC-06 AT Command Instructable, amely elmagyarázza, hogyan kell csinálni.
2. lépés: Programozza be az Arduino programot
![Programozza be az Arduino programot Programozza be az Arduino programot](https://i.howwhatproduce.com/images/001/image-1294-85-j.webp)
![Programozza be az Arduino programot Programozza be az Arduino programot](https://i.howwhatproduce.com/images/001/image-1294-86-j.webp)
Az Arduino IDE 1.6.7 kiadását használtam az Arduino programozásához. A kód letölthető a linkekből ebben a lépésben vagy a GitHub repóból. Három verziót adtam meg: a Firmware125.ino a 125, a Firmware250.ino a 250 hertzes, a Firmware500.ino pedig az 500 hertzes verzió. Ahhoz, hogy az Arduino 500 hertz sebességgel ciklusozhasson, az A0 ADC -t nem gyűjtik.
A firmware tartalmaz egy órát a 9 -es tűn, amellyel ellenőriztem az időzítést. A nyomkövetés azt mutatja, hogy a ciklusidő 4 ms (1/250 hertznek felel meg). Azt tapasztaltam, hogy ha soros kapcsolati problémák vannak, az időzítés nem lesz egységes.
Az Arduino kód bitmaszkolást használ a csatorna számának minden csomaghoz való hozzáadásához, mivel a minták néha átesnek a Bluetooth -on. A három legjelentősebb bitet használom a csatorna számának tárolására. Az aláírt egész számok esetében a legjelentősebb bit (MSB) a jel számára van fenntartva. Mivel az MSB -t akarom használni a címemhez, nem pedig az egész szám előjelét, az aláírt gyorsulásmérő összes értékét át kell alakítanom előjel nélküli egész számokká. Ezt úgy teszem, hogy minden értékhez 32768 -at adok (az MPU gyorsulásmérő ADC -száma +32768 és -32768 között van), és előjel nélküli egész számként adom át:
(unsigned int) ((hosszú) iAccelData+32767);
A csatorna száma minden gyorsulásmérőnél és az A0 -portnál azonos, így az elejtett csomag észlelhető, ha a csatornaszámok nem működnek. Az Arduino Bluetooth-járól érkező csomagok esetében a bináris minta a következő (a jelek bölcsen változnak):
(xacc 3 címbit = 0x00, 13 bites előjel nélküli) (yacc 3 címbit = 0x01, 13 bites előjel nélküli) (zacc 3 címbit = 0x02, 13 bites előjel nélküli) (3 címbit = 0x03, iadc13bit alá nem írt)
(xacc 3 címbit = 0x00, 13 bites előjel nélküli) (yacc 3 címbit = 0x01, 13 bites előjel nélküli) (zacc 3 címbit = 0x02, 13 bites előjel nélküli) (3 címbit = 0x03, iadc13bit aláírás nélküli) (xacc 3 címbit = 0x00, 13 bites előjel nélküli) (yacc 3 címbit = 0x01, 13 bites előjel nélküli) (zacc 3 címbit = 0x02, 13 bites előjel nélküli) (3 címbit = 0x03, iadc13bit alá nem írva)…
Ha az Accel Plot Android alkalmazáson kívül mást használ a Bluetooth -adatok olvasásához, akkor tegye a következő lépéseket a cím kinyeréséhez (a változók neveit használom a GitHub repóból származó Accel Plot Bluetooth.java fájlból):
- Olvassa el a 16 alá nem írt int
- Bontsa ki a magas bájtot, és mentse btHigh -ba.
- Bontsa ki az alacsony bájtot, és mentse a btLow fájlba.
- A cím letöltése a btHigh -ból: (btHigh >> 5) & 0x07. Ez az utasítás a btHigh 5 bitet jobbra tolja, és a három címbitet a legalacsonyabb három regiszterbe helyezi. A & jel logikus ÉS, amely arra kényszeríti a 4 -es és magasabb biteket, hogy nulla legyen, az utolsó három bit pedig egyezzen a címbitekkel. Ennek a nyilatkozatnak az eredménye az Ön címe.
Az Accel Plot használata esetén nem kell aggódnia a címkivonás miatt.
3. lépés: Töltse be az Android -alkalmazást a Google Playről vagy a GitHub fiókjából
![Töltse be az Android alkalmazást a Google Playről vagy a GitHub fiókjából Töltse be az Android alkalmazást a Google Playről vagy a GitHub fiókjából](https://i.howwhatproduce.com/images/001/image-1294-87-j.webp)
Pár lehetősége van az Android -alkalmazás betöltésére az eszközére. Ha el akarja kerülni a kódolást, keressen rá az „Accel Plot” kifejezésre, és az alkalmazásnak fel kell tűnnie a Google Play áruházban. A telepítéshez kövesse az áruház utasításait.
Ezzel az Instructable -nal az a vágyam, hogy bátorítsak másokat projektek építésére, ezért közzétettem a kódot egy GitHub repóban. Képesnek kell lennie arra, hogy ezt elágazza, felépítse és módosítsa, ahogy jónak látja. A kódot az MIT licenc alatt tettem közzé, így jó szórakozást!
4. lépés: Csatlakozzon az Arduino -hoz valami érdekeshez (R/C autót használtam)
![Csatlakozás az Arduino -hoz valami érdekeshez (R/C autót használtam) Csatlakozás az Arduino -hoz valami érdekeshez (R/C autót használtam)](https://i.howwhatproduce.com/images/001/image-1294-88-j.webp)
Szeretném végül használni az eszközt az útfelület észlelésére, ezért úgy gondoltam, hogy egy kis távirányítású (R/C) autó megfelelő lenne. Azt hiszem, a következő lépésben segít, ha az ékezetek olyan dolgokon lehetnek, amelyek mozognak vagy rezegnek.
5. lépés: Az Android -eszköz használatával csatlakozzon az Arduino -hoz
![Használja az Android -eszközt az Arduino -hoz való csatlakozáshoz Használja az Android -eszközt az Arduino -hoz való csatlakozáshoz](https://i.howwhatproduce.com/images/001/image-1294-89-j.webp)
![Használja az Android -eszközt az Arduino -hoz való csatlakozáshoz Használja az Android -eszközt az Arduino -hoz való csatlakozáshoz](https://i.howwhatproduce.com/images/001/image-1294-90-j.webp)
![Használja az Android -eszközt az Arduino -hoz való csatlakozáshoz Használja az Android -eszközt az Arduino -hoz való csatlakozáshoz](https://i.howwhatproduce.com/images/001/image-1294-91-j.webp)
Ha még nem tette meg, először párosítania kell a HC-05 készüléket Android-eszközével. Úgy gondolom, hogy a legtöbb eszközön ezt a beállításoknál teheti meg. A legtöbb HC-05 eszköz alapértelmezett csapja 1234 vagy 1111 lesz.
Nyissa meg az AccelPlot alkalmazást az Android -eszközön. Amikor az alkalmazás megnyílik, és mielőtt csatlakozna a HC-05-hez, módosíthatja a mintavételi gyakoriságot (ez az Arduino kódban van beállítva), a gyorsulásmérő skálákat (szintén az Arduino kódban van beállítva) és a mentendő minták számát.
A beállítások elvégzése után kattintson a "Csatlakozás" gombra. Fel kell hívnia a Bluetooth -eszközöket, és fel kell tüntetnie az eszközét. Válassza ki, és amint a kód létrehozza a kapcsolatot, megjelenik egy "Connected" pirítós.
A vissza nyílgombbal térjen vissza az Accel Plot -hez. Érintse meg a "Stream indítása" gombot a HC-05 eszköz adatainak megjelenítéséhez. Az adatok mentéséhez vagy a frekvenciamodulált tartalom audiocsatlakozón keresztül történő lejátszásához szintén rendelkezésre kell állnia a gombokkal.
6. lépés: Az adatok beszerzése és ábrázolása
![Image Image](https://i.howwhatproduce.com/images/001/image-1294-93-j.webp)
![](https://i.ytimg.com/vi/SGJY8Y921N0/hqdefault.jpg)
![Importálja a Pythonba (vagy más platformra) további használatra Importálja a Pythonba (vagy más platformra) további használatra](https://i.howwhatproduce.com/images/001/image-1294-94-j.webp)
A "Stream indítása" gombot engedélyezni kell. Érintse meg, hogy megkezdje az adatok streamelését a képernyőre.
Az "Adatok mentése" gomb is engedélyezve lesz, koppintson rá az adatok tárolásához.
Az Accel Plot tartalmaz egy lehetőséget arra is, hogy modulált jelet adjon ki az audiocsatornákon. Az Accel Plot alkalmazás 2 csatornája az Android -eszköz audio kimenetének bal és jobb csatornájára utal. Ez akkor hasznos, ha az MPU-6050 adatokat külön adatnaplózó rendszerbe szeretné hozni, például a National Instruments-be.
A videó példát mutat arra, hogy a rendszer adatokat gyűjt egy R/C autóról.
7. lépés: Importálás Pythonba (vagy más platformra) további használatra
![Importálja a Pythonba (vagy más platformra) további használatra Importálja a Pythonba (vagy más platformra) további használatra](https://i.howwhatproduce.com/images/001/image-1294-95-j.webp)
A fájlokat az Android -eszközre menti. A fájlok az "AccelPlot" könyvtárban lesznek tárolva az Android API 18 és régebbi verzióihoz. A kód a.dat fájlokat a "\ Tablet / Documents / AccelPlot" mappába helyezi az API 19 (KitKat 4.4) és újabb verzióihoz. Problémáim adódtak néhány Android -eszközzel, amelyek USB -n keresztül csatlakoztatva jelenítik meg a fájlokat. Bizonyos esetekben újra kellett indítanom az Android -eszközt, hogy megjelenjenek. Nem tudom, miért van ez, de négy fájlnak kell lennie, egy -egy csatornánként. További munkák céljából átmásolhatók egy helyi könyvtárba.
A fájlok megnyitásához és az adatok megjelenítéséhez Anaconda/Python 2.7 -et használtam. Az "ExploratoryAnalysis.ipynb" fájl rendelkezik az IPython Notebook fájllal, amely megnyitja az összes adatfájlt és ábrázolja a mintaadatokat. A mintafájlok szerepelnek a GitHub repóban. Az adatokat nagyméretű 4 bájtos úszóként ('> f') menti a rendszer, így bármely elemző programnak képesnek kell lennie megnyitni őket.
Van egy egyszerűbb "ReadDataFiles.ipynb" nevű fájlom is, amely megmutatja, hogyan kell egyetlen fájlban olvasni név szerint.
Ajánlott:
Valós idejű kút vízszintmérő: 6 lépés (képekkel)
![Valós idejű kút vízszintmérő: 6 lépés (képekkel) Valós idejű kút vízszintmérő: 6 lépés (képekkel)](https://i.howwhatproduce.com/images/001/image-1588-28-j.webp)
Valós idejű kútvízszint-mérő: Ezek az utasítások leírják, hogyan lehet olcsó, valós idejű vízszintmérőt készíteni ásott kutakban való használatra. A vízszintmérőt úgy tervezték, hogy egy ásott kút belsejében lógjon, naponta egyszer mérje a vízszintet, és WiFi -n vagy mobilkapcsolaton keresztül küldje el az adatokat
Valós idejű kútvíz-hőmérséklet, vezetőképesség és vízszintmérő: 6 lépés (képekkel)
![Valós idejű kútvíz-hőmérséklet, vezetőképesség és vízszintmérő: 6 lépés (képekkel) Valós idejű kútvíz-hőmérséklet, vezetőképesség és vízszintmérő: 6 lépés (képekkel)](https://i.howwhatproduce.com/images/001/image-2156-9-j.webp)
Valós idejű kútvíz-hőmérséklet-, vezetőképesség- és vízszintmérő: Ezek az utasítások leírják, hogyan lehet olcsó, valós idejű vízmérőt készíteni a hőmérséklet, az elektromos vezetőképesség (EC) és a vízszint figyelésére ásott kutakban. A mérőt úgy tervezték, hogy egy ásott kút belsejében lógjon, mérje a víz hőmérsékletét, EC és
SCARA Robot: Tanulás a foward és inverz kinematikáról !!! (Plot Twist Ismerje meg, hogyan lehet valós idejű interfészt készíteni ARDUINO -ban a FELDOLGOZÁS segítségével !!!!): 5 lé
![SCARA Robot: Tanulás a foward és inverz kinematikáról !!! (Plot Twist Ismerje meg, hogyan lehet valós idejű interfészt készíteni ARDUINO -ban a FELDOLGOZÁS segítségével !!!!): 5 lé SCARA Robot: Tanulás a foward és inverz kinematikáról !!! (Plot Twist Ismerje meg, hogyan lehet valós idejű interfészt készíteni ARDUINO -ban a FELDOLGOZÁS segítségével !!!!): 5 lé](https://i.howwhatproduce.com/images/009/image-26659-j.webp)
SCARA Robot: Ismerkedés a foward és inverz kinematikával !!! (Plot Twist Ismerje meg, hogyan lehet valós idejű interfészt készíteni ARDUINO -ban FELDOLGOZÁSSAL !!!!): A SCARA robot nagyon népszerű gép az iparban. A név mind a szelektíven megfelelõ szerelõ robotkarra, mind a szelektív megfelelõ csuklós robotkarra vonatkozik. Ez alapvetően három szabadságfokú robot, az első kettő
Óra készítése az M5stick C segítségével Arduino IDE - használatával RTC valós idejű óra az M5stack M5stick-C-vel: 4 lépés
![Óra készítése az M5stick C segítségével Arduino IDE - használatával RTC valós idejű óra az M5stack M5stick-C-vel: 4 lépés Óra készítése az M5stick C segítségével Arduino IDE - használatával RTC valós idejű óra az M5stack M5stick-C-vel: 4 lépés](https://i.howwhatproduce.com/images/002/image-3337-33-j.webp)
Óra készítése az M5stick C segítségével Arduino IDE | használatával RTC valós idejű óra az M5stack M5stick-C-vel: Sziasztok srácok, ebben az utasításban megtanuljuk, hogyan készítsünk órát az m5stick m5stick fejlesztőpaneljével az Arduino IDE segítségével. Így az m5stick megjeleníti a dátumot, az időt és az amp; a hónap hete a kijelzőn
Valós idejű eseményértesítések a NodeMCU (Arduino), a Google Firebase és a Laravel használatával: 4 lépés (képekkel)
![Valós idejű eseményértesítések a NodeMCU (Arduino), a Google Firebase és a Laravel használatával: 4 lépés (képekkel) Valós idejű eseményértesítések a NodeMCU (Arduino), a Google Firebase és a Laravel használatával: 4 lépés (képekkel)](https://i.howwhatproduce.com/images/003/image-7269-49-j.webp)
Valós idejű eseményértesítések a NodeMCU (Arduino), a Google Firebase és a Laravel használatával: Szeretett volna valaha értesítést kapni, ha a webhelyén valamilyen művelet történt, de az e -mail nem megfelelő? Hangot vagy csengőt szeretne hallani minden alkalommal, amikor eladást végez? Vagy szükség van azonnali figyelmedre egy vészhelyzet miatt