Obsah:
- Krok 1: Postavte štít/prkénko
- Krok 2: Naprogramujte Arduino
- Krok 3: Načtěte aplikaci pro Android z Google Play nebo pobočku GitHub
- Krok 4: Připojte se k Arduinu k něčemu zajímavému (použil jsem auto R/C)
- Krok 5: K připojení k Arduinu použijte zařízení Android
- Krok 6: Získání a vykreslení dat
- Krok 7: Import do Pythonu (nebo jiné platformy) pro další použití
Video: Protokolování dat MPU-6050/A0 v reálném čase pomocí Arduina a Androidu: 7 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Zajímalo mě používání Arduina pro strojové učení. Jako první krok chci vybudovat zobrazení dat a záznamník dat v reálném čase (nebo docela blízko) pomocí zařízení Android. Chci zachytit data z akcelerometru z MPU-6050, takže jsem navrhl sestavu tak, aby používala HC-05 při 115200 baudech. S touto konfigurací lze přenášet 4 kanály dat rychlostí 250 vzorků za sekundu.
Sestavení má několik kroků:
- Postavte štít nebo prkénko
- Naprogramujte Arduino
- Načtěte aplikaci pro Android ze služby Google Play nebo rozbalte GitHub a zkompilujte ji sami
- Připojte MPU-6050 k něčemu zajímavému, co vibruje (použil jsem auto R/C)
- K připojení k Arduinu použijte zařízení Android
- Vykreslete data, v případě zájmu uložte
- Importujte do Pythonu (nebo jiné platformy) pro další použití
Začněme!
Krok 1: Postavte štít/prkénko
Toto je schéma zapojení pro Arduino, HC-05 a MPU-6050. Kromě MPU-6050 mám analogový vstup A0 připojený ke světelnému senzoru, který ukazuje, že ADC funguje. Do A0 ADC lze přivést jakýkoli signál 0-5 voltů. Toto jsou komponenty, které jsem použil pro stavbu:
- Arduino Uno
- HC-05 (HC-06 by měl také fungovat, ale moje konstrukce byla s HC-05)
- MPU-6050
- Sparkfun fotorezistor
- Rezistor 10 kOhm (hnědo-černo-oranžový)
Většina modulů Bluetooth HC-05 má výchozí hodnotu 9600 baudů. Aby byla data úspěšně přenášena, budete je muset přeprogramovat na přenosovou rychlost 115200 baudů. Existuje dobrý instrukční příkaz HC-05/HC-06 AT, který vysvětluje, jak to udělat.
Krok 2: Naprogramujte Arduino
K programování Arduina jsem použil vydání Arduino IDE 1.6.7. Kód lze stáhnout z odkazů v tomto kroku nebo z úložiště GitHub. Zahrnul jsem tři verze: Firmware125.ino je verze 125 hertzů, Firmware250.ino je verze 250 hertz a Firmware500.ino je verze 500 hertz. Aby se Arduino dostalo do cyklu 500 hertzů, A0 ADC není shromažďováno.
Firmware obsahuje hodiny na Pin 9, které jsem použil ke kontrole načasování. Trasování ukazuje, že doba cyklu je 4 ms (ekvivalent 1/250 hertzů). Zjistil jsem, že pokud dojde k problémům se sériovým propojením, načasování nebude jednotné.
Kód Arduino používá bit maskování k přidání čísla kanálu do každého paketu, protože vzorky někdy přes Bluetooth procházejí. K uložení čísla kanálu používám tři nejvýznamnější bity. Pro celá čísla se znaménkem je pro znaménko vyhrazen nejvýznamnější bit (MSB). Protože chci pro svou adresu použít MSB, nikoli znak celého čísla, musím převést všechny hodnoty podepsaného akcelerometru na celá čísla bez znaménka. Dělám to tak, že ke každé hodnotě přidám 32768 (počty ADC akcelerometru MPU jsou +32768 až -32768) a přetypuji jako celá čísla bez znaménka:
(nepodepsaný int) ((dlouhý) iAccelData+32767);
Číslo kanálu je stejné pro každý akcelerometr a port A0, takže je možné detekovat spadlý paket, pokud jsou čísla kanálů mimo provoz. U paketů pocházejících z Bluetooth na Arduinu je binární vzorec (znaky se bitově mění):
(xacc 3 adresové bity = 0x00, 13bit bez znaménka) (yacc 3 adresové bity = 0x01, 13bit bez znaménka) (zacc 3 adresové bity = 0x02, 13bit bez znaménka) (3 adresové bity = 0x03, iadc13bit bez znaménka)
(xacc 3 adresové bity = 0x00, 13bit bez znaménka) (yacc 3 adresové bity = 0x01, 13bit bez znaménka) (zacc 3 adresové bity = 0x02, 13bit bez znaménka) (3 adresové bity = 0x03, iadc13bit bez znaménka) (xacc 3 adresové bity = 0x00, 13bit bez znaménka (yacc 3 adresové bity = 0x01, 13bit bez znaménka) (zacc 3 adresové bity = 0x02, 13bit bez znaménka) (3 adresové bity = 0x03, iadc13bit bez znaménka)…
Pokud ke čtení dat Bluetooth používáte něco jiného než aplikaci Accel Plot pro Android, zde jsou kroky k extrahování adresy (používám názvy proměnných ze souboru Accel Plot Bluetooth.java z úložiště GitHub):
- Přečtěte si 16 int bez znaménka
- Extrahujte vysoký bajt a uložte jej do btHigh.
- Extrahujte nízký bajt a uložte jej do btLow.
- Načtěte adresu z btHigh pomocí: (btHigh >> 5) & 0x07. Toto prohlášení posune btHigh o 5 bitů doprava a přesune tři adresové bity do nejnižších tří registrů. Znaménko & je logické A, které nutí bity 4 a vyšší být nulové a poslední tři bity odpovídají bitům adresy. Výsledkem tohoto prohlášení je vaše adresa.
Pokud používáte Accel Plot, nemusíte si dělat starosti s extrakcí adresy.
Krok 3: Načtěte aplikaci pro Android z Google Play nebo pobočku GitHub
Pro načtení aplikace pro Android do zařízení máte několik možností. Pokud se chcete vyhnout kódování, můžete vyhledat „Accel Plot“a aplikace by se měla objevit v obchodě Google Play. Při instalaci postupujte podle pokynů v obchodě.
Mým přáním s tímto Instructable je opravdu povzbudit ostatní k vytváření projektů, takže jsem také publikoval kód v repo GitHubu. Měli byste to umět větvit, stavět a upravovat, jak uznáte za vhodné. Kód jsem zveřejnil pod licencí MIT, tak se bavte!
Krok 4: Připojte se k Arduinu k něčemu zajímavému (použil jsem auto R/C)
Chci nakonec použít zařízení pro detekci povrchu vozovky, takže jsem si myslel, že by bylo vhodné malé dálkově ovládané (R/C) auto. Myslím si, že v dalším kroku pomůže, pokud mohou být accesly na něčem, co se pohybuje nebo vibruje.
Krok 5: K připojení k Arduinu použijte zařízení Android
Pokud jste tak ještě neučinili, budete muset nejprve spárovat HC-05 se zařízením Android. Věřím, že na většině zařízení to můžete provést v nastavení. Výchozí pin pro většinu zařízení HC-05 bude 1234 nebo 1111.
Otevřete na zařízení Android aplikaci AccelPlot. Když se aplikace otevře a než se připojíte k HC-05, můžete změnit vzorkovací frekvenci (ta je nastavena v kódu Arduino), měřítka akcelerometru (také nastavená v kódu Arduino) a počet vzorků, které se mají uložit.
Jakmile jsou tato nastavení provedena, klikněte na tlačítko „Připojit“. Mělo by se zobrazit zařízení Bluetooth a vaše zařízení by mělo být uvedeno. Vyberte jej a jakmile kód naváže připojení, zobrazí se vyskakovací okno „Připojeno“.
Pomocí tlačítka se šipkou zpět se vraťte do Accel Plot. Klepnutím na tlačítko „Spustit stream“zobrazíte data ze zařízení HC-05. Měli byste také mít k dispozici tlačítka pro uložení dat nebo přehrávání frekvenčně modulovaného obsahu prostřednictvím zvukového konektoru.
Krok 6: Získání a vykreslení dat
Mělo by být povoleno tlačítko „Spustit stream“. Klepnutím na něj zahájíte streamování dat na obrazovku.
Aktivováno bude také tlačítko „Uložit data“, klepnutím na něj uložíte data.
Accel Plot také obsahuje možnost výstupu modulovaného signálu na zvukové kanály. 2 kanály v aplikaci Accel Plot odkazují na levý a pravý kanál konektoru výstupu zvuku na zařízení Android. To je užitečné, pokud chcete přenést data MPU-6050 do samostatného systému protokolování dat, jako jsou národní nástroje.
Video ukazuje příklad systému, který shromažďuje data na vozidle R/C.
Krok 7: Import do Pythonu (nebo jiné platformy) pro další použití
Soubory se ukládají do zařízení Android. Soubory budou uloženy v adresáři „AccelPlot“pro Android API 18 a starší. Kód umístí soubory.dat do složky "\ Tablet / Documents / AccelPlot" pro API 19 (KitKat 4.4) a vyšší. Měl jsem potíže s některými zařízeními Android, které zobrazovaly soubory při připojení přes USB. V některých případech jsem musel restartovat zařízení Android, aby se zobrazily. Nejste si jisti, proč tomu tak je, ale měly by existovat čtyři soubory, jeden pro každý kanál. Lze je zkopírovat do místního adresáře pro další práci.
K otevření souborů a zobrazení dat jsem použil Anaconda/Python 2.7. Soubor "ExploratoryAnalysis.ipynb" obsahuje soubor IPython Notebook, který otevře všechny datové soubory a vykreslí ukázková data. Ukázkové soubory jsou součástí úložiště GitHub. Data jsou uložena jako big-endian 4 byte floats ('> f'), takže by je měl mít možnost otevřít jakýkoli analytický program.
Zahrnul jsem také jednodušší soubor s názvem „ReadDataFiles.ipynb“, který ukazuje, jak číst v jednom souboru podle názvu.
Doporučuje:
Jak vytvořit záznamník vlhkosti a teploty v reálném čase pomocí Arduino UNO a SD karty - Simulace záznamníku dat DHT11 v Proteusu: 5 kroků
Jak vytvořit záznamník vlhkosti a teploty v reálném čase pomocí Arduino UNO a SD karty | Simulace záznamníku dat DHT11 v Proteus: Úvod: Ahoj, toto je Liono Maker, zde je odkaz na YouTube. Vytváříme kreativní projekt s Arduinem a pracujeme na vestavěných systémech. Data-Logger: Data logger (také data-logger nebo data recorder) je elektronické zařízení, které zaznamenává data v průběhu času s
Experimenty v pokročilém protokolování dat (pomocí Pythonu): 11 kroků
Experimenty s pokročilým protokolováním dat (pomocí Pythonu): Existuje mnoho instrukcí pro protokolování dat, takže když jsem chtěl vytvořit svůj vlastní projekt protokolování, rozhlédl jsem se po partě. Některé byly dobré, některé ne tolik, a tak jsem se rozhodl vzít některé lepší nápady a vytvořit si vlastní aplikaci. Tento resu
Robot SCARA: učení o Fowardově a inverzní kinematice !!! (Plot Twist Naučte se, jak vytvořit rozhraní v reálném čase v ARDUINO pomocí ZPRACOVÁNÍ !!!!): 5 kroků (s obrázky)
Robot SCARA: učení o Fowardově a inverzní kinematice !!! (Plot Twist Naučte se, jak vytvořit rozhraní v reálném čase v ARDUINO pomocí ZPRACOVÁNÍ !!!!): Robot SCARA je ve světě průmyslu velmi oblíbeným strojem. Název znamená jak robotické rameno sestavené podle výběru, tak kloubové rameno robota. Je to v zásadě robot se třemi stupni volnosti, který je prvními dvěma ukázkami
Jednoduché protokolování mobilních dat pomocí PfodApp, Android a Arduino: 5 kroků
Jednoduché protokolování mobilních dat pomocí PfodApp, Android a Arduino: Moblie Data Logging je jednoduché pomocí pfodApp, vašeho mobilního telefonu Andriod a Arduino. ŽÁDNÉ programování pro Android. Pokud jde o vykreslování dat na vašem Androidu, podívejte se na toto pozdější Instuctable Simple Remote Data Plotting pomocí Android / Arduino / pfodAppFor Plotting
Výroba hodin pomocí M5stick C pomocí Arduino IDE - Hodiny RTC v reálném čase s M5stack M5stick-C: 4 kroky
Výroba hodin pomocí M5stick C pomocí Arduino IDE | Hodiny RTC v reálném čase s M5stack M5stick-C: Ahoj, v tomto návodu se naučíme, jak vyrobit hodiny s vývojovou deskou m5stick-C z m5stack pomocí Arduino IDE. Takže m5stick zobrazí datum, čas & týden v měsíci na displeji