Sisällysluettelo:
- Vaihe 1: Rakenna kilpi/leipälauta
- Vaihe 2: Ohjelmoi Arduino
- Vaihe 3: Lataa Android -sovellus Google Playsta tai haaraa GitHub
- Vaihe 4: Yhdistä Arduinoon jotain mielenkiintoista (käytin R/C -autoa)
- Vaihe 5: Muodosta yhteys Arduinoon Android -laitteen avulla
- Vaihe 6: Hae ja piirrä tiedot
- Vaihe 7: Tuo Pythoniin (tai muuhun alustaan) jatkokäyttöä varten
Video: Reaaliaikainen MPU-6050/A0-dataloggeri Arduinolla ja Androidilla: 7 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Olen ollut kiinnostunut käyttämään Arduinoa koneoppimiseen. Ensinnäkin haluan rakentaa reaaliaikaisen (tai melko lähellä sitä) datanäytön ja kirjaajan Android -laitteella. Haluan kaapata kiihtyvyysmittarin tiedot MPU-6050: stä, joten suunnittelin rakenteen käyttämään HC-05: tä 115200 baudilla. Tällä kokoonpanolla voidaan lähettää 4 datakanavaa nopeudella 250 näytettä sekunnissa.
Rakennuksessa on muutama vaihe:
- Rakenna kilpi tai leipälauta
- Ohjelmoi Arduino
- Lataa Android -sovellus Google Playsta tai haaraa GitHub ja kokoa se itse
- Liitä MPU-6050 johonkin mielenkiintoiseen, joka värisee (käytin R/C-autoa)
- Muodosta yhteys Arduinoon Android -laitteen avulla
- Piirrä tiedot, tallenna jos kiinnostaa
- Tuo Pythoniin (tai muuhun alustaan) jatkokäyttöä varten
Aloitetaan!
Vaihe 1: Rakenna kilpi/leipälauta
Tämä on kytkentäkaavio malleille Arduino, HC-05 ja MPU-6050. MPU-6050: n lisäksi analoginen tulo A0 on kytketty valoanturiin osoittamaan, että ADC toimii. Mikä tahansa 0-5 voltin signaali voidaan tuoda A0 ADC: hen. Näitä komponentteja käytin rakentamiseen:
- Arduino Uno
- HC-05 (HC-06: n pitäisi toimia myös, mutta rakennukseni oli HC-05: n kanssa)
- MPU-6050
- Sparkfun -valovastus
- 10 kOhm: n vastus (ruskea-musta-oranssi)
Useimmat HC-05 Bluetooth-moduulit ovat oletuksena 9600 baudia. Jotta tiedot voidaan lähettää onnistuneesti, sinun on ohjelmoitava ne uudelleen 115200 baudinopeudelle. Siellä on hyvä HC-05/HC-06 AT Command Instructable, joka selittää kuinka se tehdään.
Vaihe 2: Ohjelmoi Arduino
Ohjelmoin Arduinon käyttämällä Arduino IDE -julkaisua 1.6.7. Koodi voidaan ladata tämän vaiheen linkeistä tai GitHub -reposta. Olen lisännyt kolme versiota: Firmware125.ino on 125 hertsin versio, Firmware250.ino on 250 hertsin versio ja Firmware500.ino on 500 hertsin versio. Jotta Arduino pyörii 500 hertsillä, A0 ADC: tä ei kerätä.
Laiteohjelmisto sisältää kellon nastassa 9, jota käytin tarkistamaan ajoituksen. Jälki osoittaa, että jaksoaika on 4 ms (vastaa 1/250 hertsiä). Olen huomannut, että jos on sarjayhteysongelmia, ajoitus ei ole yhtenäinen.
Arduino -koodi käyttää bittien peittämistä kanavanumeron lisäämiseen kuhunkin pakettiin, koska näytteet putoavat joskus Bluetoothin kautta. Käytän kolmea merkittävintä bittiä kanavanumeron tallentamiseen. Allekirjoitetuille kokonaisluvuille merkittävin bitti (MSB) on varattu merkille. Koska haluan käyttää osoitteessani MSB: tä kokonaisluvun merkin sijasta, minun on muunnettava kaikki allekirjoitetut kiihtyvyysmittarin arvot allekirjoittamattomiksi kokonaisluvuiksi. Teen tämän lisäämällä 32768 jokaiseen arvoon (MPU -kiihtyvyysmittarin ADC -luvut ovat +32768 --32768) ja annan allekirjoittamattomina kokonaisluvuina:
(unsigned int) ((pitkä) iAccelData+32767);
Kanavanumero on sama kullekin kiihtyvyysmittarille ja A0 -portille, joten pudonnut paketti voidaan havaita, jos kanavanumerot ovat epäkunnossa. Arduinon Bluetoothin kautta tuleville paketeille binäärikuvio on (merkit siirtyvät bittisesti):
(xacc 3 osoitebittiä = 0x00, 13 bittiä allekirjoittamaton) (yacc 3 osoitebittiä = 0x01, 13 bittiä allekirjoittamaton) (zacc 3 osoitebittiä = 0x02, 13 bittiä allekirjoittamaton) (3 osoitebittiä = 0x03, iadc13bit allekirjoittamaton)
(xacc 3 osoitebittiä = 0x00, 13 bittiä allekirjoittamaton) (yacc 3 osoitebittiä = 0x01, 13 bittiä allekirjoittamaton) (zacc 3 osoitebittiä = 0x02, 13 bittiä allekirjoittamaton) (3 osoitebittiä = 0x03, iadc13bit allekirjoittamaton) (xacc 3 osoitebittiä = 0x00, 13 -bittinen allekirjoittamaton) (yacc 3 osoitebittiä = 0x01, 13 -bittinen allekirjoittamaton) (zacc 3 osoitebittiä = 0x02, 13 -bittinen allekirjoittamaton) (3 osoitebittiä = 0x03, iadc13bit allekirjoittamaton)…
Jos käytät jotain muuta kuin Accel Plot Android -sovellusta Bluetooth -tietojen lukemiseen, voit poimia osoitteen seuraavasti (käytän muuttujien nimiä Accel Plot Bluetooth.java -tiedostosta GitHub -reposta):
- Lue 16 allekirjoittamatonta int
- Pura korkea tavu ja tallenna se btHigh.
- Pura pieni tavu ja tallenna se btLow -muotoon.
- Hae osoite btHighista käyttämällä (btHigh >> 5) & 0x07. Tämä lausunto siirtää btHigh 5 bittiä oikealle siirtämällä kolme osoitebittiä alimpaan kolmeen rekisteriin. & -Merkki on looginen JA, joka pakottaa bitit 4 ja korkeammat olemaan nolla ja kolme viimeistä bittiä vastaamaan osoitebittejä. Tämän lausunnon tulos on osoitteesi.
Sinun ei tarvitse huolehtia osoitteen poimimisesta, jos käytät Accel Plotia.
Vaihe 3: Lataa Android -sovellus Google Playsta tai haaraa GitHub
Sinulla on pari vaihtoehtoa ladata Android -sovellus laitteellesi. Jos haluat välttää koodausta, voit etsiä "Accel Plot" ja sovelluksen pitäisi näkyä Google Play -kaupassa. Noudata asennusohjeita myymälän ohjeissa.
Haluan tällä Instructable -ohjelmalla todella rohkaista muita rakentamaan projekteja, joten olen myös julkaissut koodin GitHub -repossa. Sinun pitäisi pystyä haaraamaan tämä, rakentamaan se ja muokkaamaan sitä parhaaksi katsomallasi tavalla. Julkaisin koodin MIT -lisenssillä, joten pidä hauskaa!
Vaihe 4: Yhdistä Arduinoon jotain mielenkiintoista (käytin R/C -autoa)
Haluan lopulta käyttää laitetta tienpinnan havaitsemiseen, joten ajattelin, että pieni kauko -ohjattava (R/C) auto olisi sopiva. Luulen, että siitä on apua seuraavassa vaiheessa, jos korostukset voivat kohdistua johonkin, joka liikkuu tai värisee.
Vaihe 5: Muodosta yhteys Arduinoon Android -laitteen avulla
Jos et ole jo tehnyt niin, sinun on ensin yhdistettävä HC-05 Android-laitteeseen. Uskon, että useimmissa laitteissa voit tehdä tämän siirtymällä asetuksiin. Useimpien HC-05-laitteiden oletustappi on 1234 tai 1111.
Avaa AccelPlot -sovellus Android -laitteessa. Kun sovellus avautuu ja ennen kuin muodostat yhteyden HC-05: een, voit muuttaa näytteenottotaajuutta (tämä on asetettu Arduino-koodissa), kiihtyvyysmittarin asteikot (myös Arduino-koodi) ja tallennettavien näytteiden määrää.
Kun nämä asetukset on tehty, napsauta "Yhdistä" -painiketta. Sen pitäisi tuoda esiin Bluetooth -laitteet ja laitteesi pitäisi olla luettelossa. Valitse se ja kun koodi muodostaa yhteyden, näet "Connected" -paahtolehden.
Palaa Accel -kuvaajaan käyttämällä nuolipainiketta takaisin. Napauta "Start Stream" -painiketta näyttääksesi tiedot HC-05-laitteesta. Sinun pitäisi myös käyttää painikkeita tietojen tallentamiseen tai taajuusmoduloidun sisällön toistamiseen ääniliitännän kautta.
Vaihe 6: Hae ja piirrä tiedot
"Aloita virta" -painikkeen pitäisi olla käytössä. Napauta sitä aloittaaksesi datan suoratoiston näytölle.
Tallenna tiedot -painike on myös käytössä, tallenna tiedot napauttamalla sitä.
Accel Plot sisältää myös mahdollisuuden lähettää moduloitu signaali äänikanaville. Accel Plot -sovelluksen kaksi kanavaa viittaavat Android -laitteen äänilähtöliitännän vasempaan ja oikeaan kanavaan. Tästä on hyötyä, jos haluat tuoda MPU-6050-tiedot erilliseen tiedonkeruujärjestelmään, kuten National Instruments.
Video näyttää esimerkin järjestelmästä, joka kerää tietoja R/C -autosta.
Vaihe 7: Tuo Pythoniin (tai muuhun alustaan) jatkokäyttöä varten
Tiedostot tallennetaan Android -laitteelle. Tiedostot tallennetaan AccelPlot -hakemistoon Android API 18: lle ja sitä vanhemmille. Koodi sijoittaa.dat -tiedostot "\ Tablet / Documents / AccelPlot" -kansioon, jossa on API 19 (KitKat 4.4) tai uudempi. Minulla on ollut ongelmia joidenkin Android -laitteiden kanssa, jotka näyttävät tiedostot USB -liitännän kautta. Joissakin tapauksissa olen joutunut käynnistämään Android -laitteen uudelleen, jotta ne näkyvät. En ole varma miksi näin, mutta tiedostoja pitäisi olla neljä, yksi kullekin kanavalle. Ne voidaan kopioida paikalliseen hakemistoon lisätöitä varten.
Käytin Anaconda/Python 2.7: a tiedostojen avaamiseen ja tietojen näyttämiseen. Tiedostossa "ExploratoryAnalysis.ipynb" on IPython -muistikirjatiedosto, joka avaa kaikki datatiedostot ja piirtää näytetiedot. Esimerkkitiedostot ovat GitHub -repossa. Tiedot tallennetaan big-endian 4 tavun kellukkeina ('> f'), joten minkä tahansa analysointiohjelman pitäisi pystyä avaamaan ne.
Minulla on myös yksinkertaisempi tiedosto nimeltä "ReadDataFiles.ipynb", joka näyttää kuinka lukea yhdessä tiedostossa nimen mukaan.
Suositeltava:
Reaaliaikainen kello Arduinolla: 3 vaihetta
Reaaliaikainen kello Arduinolla: Tässä projektissa teemme kellon Arduino- ja RTC -moduulin avulla. Kuten tiedämme, Arduino ei voi näyttää todellista aikaa, joten käytämme RTC -moduulia oikean ajan näyttämiseen nestekidenäytössä. Lue kaikki vaiheet huolellisesti, se auttaa sinua
DS1307 Reaaliaikainen kello RTC Arduinolla: 4 vaihetta
DS1307 Reaaliaikainen kello RTC Arduinolla: Tässä opetusohjelmassa opimme reaaliaikaisesta kellosta (RTC) ja siitä, miten Arduino & Real Time Clock IC DS1307 on koottu ajoituslaitteeksi.Real Time Clock (RTC) -kelloa käytetään ajan seurantaan ja kalenterin ylläpitoon
Ohjaa Arduinoa Androidilla ja USB: llä: 5 vaihetta
Hallitse Arduinoa Androidilla ja USB: llä: Tämä ohje on vain erittäin nopea esitys "Arduino USB -sarjalaajennuksesta". jonka loi Thunkable -kehittäjä Pavitra. Sitä kehitetään edelleen, joten ajattele tätä eräänlaisena beetaversiona. Lyhyesti sanottuna voit nyt
Kotiautomaatio Androidilla ja Arduinolla: Avaa portti, kun tulet kotiin: 5 vaihetta
Kotiautomaatio Androidilla ja Arduinolla: Avaa portti, kun tulet kotiin: Tässä Instructable -ohjelmassa on kyse kodin automaatiojärjestelmän määrittämisestä, jota ohjataan älypuhelimella Internet -yhteyden avulla, jotta sitä voidaan käyttää kaikkialla, missä sitä tarvitset. Lisäksi se suorittaa tiettyjä toimia aina, kun kriteerit täyttyvät
RC Car Hack Androidilla ja Arduinolla: 6 vaihetta (kuvilla)
RC Car Hack Androidilla ja Arduinolla: Tässä opetusohjelmassa aiomme saada tavallisen vanhan RC: si Androidin hallintaan ja antaa sille joitain lisäominaisuuksia Tässä opetusohjelmassa on kaksi ainutlaatuista asiaa muista auton hakkereista. Asennamme servon pyörien sujuvaa hallintaa varten2. Olemme