Arduino-pohjaiset projektit, jotka sisältävät liiketunnistimia kuten gyroskooppi ja kiihtyvyysanturi, ovat erittäin suosittuja muun muassa robotiikassa ja liikkeen seurannassa. Yksi tehokkaimmista tavoista saada tarkkaa tietoa liikkeestä on käyttää IMU-anturia (Inertial Measurement Unit), joka yhdistää kiihtyvyysanturin ja gyroskoopin. Tällä kertaa tarkastelemme, kuinka voidaan lukea gyroskoopin tietoja Arduino Nano 33 IoT:llä ja esittää ne visuaalisesti OLED-näytöllä.
Tässä esimerkissä käytämme Arduino IDE:tä ja LSM6DS3-kirjastoa, joka tukee gyroskoopin ja kiihtyvyysanturin käyttöä. Yksi yksinkertaisimmista tavoista lukea gyroskoopin tietoja on seuraava ohjelma:
Ohjelman ensimmäisessä osassa asetetaan sarjaliikenne (Serial) ja aloitusprosessissa tarkistetaan, että gyroskooppi on kunnolla alustettu. Jos anturi ei ole käytettävissä, ohjelma jää toistamaan virheilmoitusta. Tämän jälkeen ohjelma tulostaa gyroskoopin tiedot serial monitoriin (sarjamonitori), joka mahdollistaa reaaliaikaisen datan seurannan. Loopissa tarkistetaan, onko gyroskoopin data saatavilla, ja jos on, se luetaan ja tulostetaan.
Miten ohjelma toimii?
Ohjelmassa hyödynnetään LSM6DS3-kirjastoa, joka mahdollistaa gyroskoopin ja kiihtyvyysanturin käyttöön liittyvät toiminnot Arduino-ympäristössä. Gyroskoopin näytteenottotaajuus määritellään ja voidaan tarkistaa kutsumalla gyroscopeSampleRate() -funktiota. Gyroskoopin tiedot saadaan käyttöön, kun gyroscopeAvailable()-funktiolla tarkistetaan, onko uutta dataa saatavilla. Jos dataa on saatavilla, se luetaan ja esitetään sarjaportissa.
Tietojen visualisointi Serial Plotterissa
Kun haluat visualisoida gyroskoopin tietoja graafisesti, voit käyttää Arduino IDE:n Serial Plotter -työkalua. Tämä mahdollistaa anturidatan piirtämisen kaavioiksi, jolloin on helpompi seurata liikkeitä kolmiulotteisesti. Graafinen esitys voi auttaa ymmärtämään paremmin, kuinka gyroskooppi reagoi liikkeisiin eri akselien (x, y, z) suhteen.
Ohjelma Serial Plotteriin voidaan luoda yksinkertaisella koodilla, jossa gyroskoopin arvot tulostetaan pilkulla eroteltuina:
Kun ohjelma on ladattu Arduinoon ja Serial Plotter avataan, se piirtää graafit x-, y- ja z-akseleiden liiketiedoista.
Näyttötiedon esittäminen OLED-näytöllä
OLED-näyttöjen käyttö Arduino-projekteissa on yleistynyt, koska ne tarjoavat selkeän ja kirkkaan näytön pienissä laitteissa. Käytämme tässä I2C-liitäntää mahdollisimman yksinkertaisen kytkennän saavuttamiseksi. OLED-näyttö voi esittää esimerkiksi gyroskoopin x, y ja z -tiedot suoraan näytöllä. OLED-näytön liittäminen onnistuu seuraavasti:
-
Yhdistä OLED-näytön SDA-pinni (data) Arduino A4-pinniin.
-
Yhdistä OLED-näytön SCL-pinni (kello) Arduino A5-pinniin.
-
Yhdistä OLED-näytön VCC-pinni (virta) Arduino 3.3V-pinniin.
-
Yhdistä OLED-näytön GND-pinni (maa) Arduino GND-pinniin.
Kun kytkentä on valmis, voidaan käyttää Adafruitin tarjoamia kirjastoja, kuten Adafruit_SSD1306 ja Adafruit_GFX, näyttötietojen esittämiseen.
Tässä ohjelmassa OLED-näytölle tulostetaan gyroskoopin x-, y- ja z-arvot, jolloin käyttäjä voi seurata liiketietoja reaaliaikaisesti suoraan näytöltä.
Lopuksi
On tärkeää ymmärtää, että gyroskoopin lukemat heijastavat vain pyörimisliikettä tietyillä akselilla, eivätkä ne kerro liikettä muilla tavoilla, kuten kiihtyvyyksiä. Tästä syystä on suositeltavaa käyttää gyroskoopin kanssa myös kiihtyvyysanturia (IMU), joka tarjoaa tarkempia tietoja laitteiden liikkeistä ja suuntauksista.
Jatkuva datan visualisointi ja tarkka kalibrointi ovat avainasemassa, jotta saadaan tarkkoja ja luotettavia tuloksia projekteissa, joissa tarvitaan liikkeen ja pyörimisliikkeen seurantaa.
Miten Arduino Nano 33 IoT:n avulla luodaan IoT-sovelluksia ja hallitaan LED-valoja HTTP-pyyntöjen avulla
Arduino Nano 33 IoT tarjoaa erinomaisen alustan IoT-sovellusten kehittämiseen, erityisesti langattoman viestinnän ja laitteiden etähallinnan osalta. Yksi tämän alustan käyttökohteista on LED-valojen ohjaaminen HTTP-pyyntöjen kautta. Tämä mahdollistaa laitteen ja sen ympäristön etäohjauksen helposti Internetin yli. Tässä osassa tarkastelemme, kuinka Arduino Nano 33 IoT yhdistetään WiFi-verkkoon ja miten se vastaanottaa ja käsittelee HTTP-pyyntöjä, jotka ohjaavat LED-valojen tilaa.
Aluksi otamme käyttöön WiFi-yhteyden. Arduino Nano 33 IoT -laitteessa on sisäänrakennettu WiFi-moduuli, joka yhdistää laitteen olemassa olevaan WiFi-verkkoon. Verkkoon yhdistämisen jälkeen luomme palvelimen, joka kuuntelee saapuvia HTTP-pyyntöjä. Tämä palvelin voidaan käynnistää yksinkertaisella server.begin() -komennolla, joka alkaa vastaanottaa saapuvia yhteyksiä. Samalla voidaan tulostaa laitteen IP-osoite, joka on välttämätön, jotta voidaan kohdistaa pyyntöjä oikealle laitteelle.
Kun palvelin on käynnissä, se alkaa odottaa saapuvia asiakasyhteyksiä. Tämä tapahtuu käyttämällä server.available() -metodia, joka tarkistaa, onko asiakas liitetty. Kun asiakas on liitetty, odotetaan, että se lähettää pyyntöjä. Näissä pyynnöissä voidaan käyttää erilaisia komentoja, jotka määrittelevät, mihin LED-valoon vaikutetaan ja onko sen tilaksi asetettava "päälle" vai "pois päältä".
Esimerkiksi, jos asiakas lähettää pyynnön "/gpio1/1", se tarkoittaa, että LED1 tulee kytkeä päälle, ja jos pyyntö on "/gpio1/0", LED1 kytkeytyy pois päältä. Tämä prosessi toistuu muille LED-valoille, jotka on määritelty GPIO-pinneiksi. Kun pyyntö on käsitelty, palvelin lähettää HTTP-vastauksen, joka kertoo asiakkaalle LEDin tilan.
Yksinkertaisessa koodissa käsitellään saapuvia pyyntöjä käyttäen indexOf()-metodia, jolla etsitään haluttu komento pyynnöstä. Jos komento löytyy, LEDin tila määritellään ja sen tila päivitetään käyttämällä digitalWrite()-komentoa, joka kytkee LEDin päälle tai pois päältä.
Kun käsittely on suoritettu, palvelin lähettää HTML-vastauksen asiakkaalle, joka sisältää tiedon LEDin nykyisestä tilasta (on/off). Tämä vastauksen osuus on toteutettu client.print()-komennolla, ja sen jälkeen yhteys asiakaslaiteeseen suljetaan. Tämä prosessi luo yksinkertaisen mutta tehokkaan mekanismin LED-valojen ohjaamiseen HTTP-pyyntöjen avulla.
Kun ohjelma on ladattu Arduinoon, voidaan testata sen toimintaa avaamalla selaimen ja tekemällä HTTP-pyyntöjä laitteelle. Esimerkiksi kirjoittamalla IP-osoite ja lisäämällä polku "/gpio1/1", LED1 syttyy. Tämä toiminnallisuus voidaan testata myös kytkemällä LEDi pois päältä pyyntöä "/gpio1/0" käyttäen.
Tämän tyyppinen sovellus on erinomainen esimerkki siitä, kuinka Arduino Nano 33 IoT voi toimia rajapintana fyysisten laitteiden ja Internetin välillä. Se tarjoaa helpon tavan etäohjata laitteita, mikä avaa monia mahdollisuuksia IoT-sovelluksille, kuten älykodeille, etämonitoroinnille tai robotiikalle.
Tässä yhteydessä on tärkeää myös huomioida, että IoT-sovellukset kuten tämä voivat tarjota käyttäjälle hyödyllistä tietoa laitteiden tilasta ja mahdollistaa niiden hallinnan missä tahansa. Kuitenkin, kuten kaikissa IoT-sovelluksissa, turvallisuus on ensiarvoisen tärkeää. On tärkeää varmistaa, että laitteisiin ei pääse käsiksi ulkopuoliset tahot ilman asianmukaisia suojausmekanismeja, kuten salattuja yhteyksiä ja käyttäjätunnistusprotokollia.
Miten luoda ja hallita Arduino IoT Cloud -ohjelmointia?
Arduino IoT Cloud tarjoaa helpon tavan yhdistää Arduino-laitteet pilvipalveluun ja hallita niitä reaaliaikaisesti. Seuraavassa tarkastellaan, kuinka luoda uusi "Thing" laitteelle, lisätä ominaisuuksia, muokata Sketch-ohjelmointia ja rakentaa käyttöliittymä Dashboards-sovelluksessa. Lisäksi käsitellään, kuinka testata luotua järjestelmää ja varmistaa sen toimivuus.
Kun aloitat Arduino IoT Cloudin käytön, ensimmäinen askel on uuden "Thingin" luominen. Jos sinulla on ilmainen jäsenyys, sinun täytyy poistaa aiempi Thing, koska ilmaisessa versiossa voi olla vain yksi Thing kerrallaan. Esimerkiksi, luomme "GyroscropeThingin", johon liitämme kolme ominaisuutta gyroskooppisensorilta (Arduino Nano 33 IoT:stä). Nämä ominaisuudet seuraavat sensorin X-, Y- ja Z-akselin kulmia.
Ominaisuuden lisääminen on helppoa. Kun luomme uuden Thingin, täytämme lomakkeen, jossa määritellään kunkin ominaisuuden nimi ja tyyppi. Esimerkiksi, XDegree, YDegree ja ZDegree voivat olla kaikki tyyppiä "Float" ja niille voidaan asettaa minimi- ja maksimiarvot. Näiden ominaisuuksien avulla voimme tarkastella gyroskoopin arvoja reaaliaikaisesti.
Kun ominaisuudet on lisätty, voimme siirtyä ohjelmoimaan Sketch-ohjelmaa. Tämä ohjelma on vastuussa sensoridatan lukemisesta ja päivittämisestä pilvipalveluun. Ensin määritämme laitekohtaiset tiedot, kuten SSID:n ja salasanan. Tämän jälkeen ohjelmaan lisätään tarvittavat kirjastot, kuten LSM6DS3, joka mahdollistaa gyroskoopin käytön. Kun kirjastot on ladattu, aloitamme sensorin lukemisen ja arvot päivitetään automaattisesti pilvipalveluun.
Esimerkki koodista voisi näyttää tältä:
Tässä vaiheessa ohjelma on valmis lähettämään sensoridatan pilvipalveluun. Kun koodi on kirjoitettu, se voidaan kääntää ja ladata Arduino-laitteeseen.
Seuraavaksi rakennamme käyttöliittymän, jonka avulla voimme tarkastella ja hallita näitä tietoja. Arduino IoT Cloud tarjoaa Dashboard-näkymän, jossa voidaan luoda widgettejä kullekin Thingin ominaisuudelle. Esimerkiksi, luomme kolme erillistä widgetiä, jotka esittävät X-, Y- ja Z-akselin kulmat. Dashboardsin avulla käyttäjä voi reaaliaikaisesti nähdä, miten sensorin arvot muuttuvat.
Testaaminen on olennainen osa prosessia. Kun dashboard on luotu ja widgetit on linkitetty oikein, siirrymme testivaiheeseen. Dashboardilla voimme seurata, kuinka sensorin arvot päivittyvät sen mukaan, miten liikutat Arduino Nano 33 IoT -laitetta. Tämä mahdollistaa laitteen reaaliaikaisen seurannan ja testauksen.
Arduino IoT Cloud tarjoaa myös mahdollisuuden lisätä muita laitteita tai antureita ja integroida niitä samaan verkkoon. Näin voit luoda monimutkaisempia järjestelmiä, jotka yhdistävät useita sensoreita ja aktuaattoreita. Lisäksi on tärkeää huomata, että vaikka ilmainen jäsenyys rajoittaa laitteiden määrää, maksulliset jäsenet voivat hallita useampia "Things" samanaikaisesti, mikä mahdollistaa suuremman skaalan projekteja.
Arduino IoT Cloudin käyttö voi olla hyödyllistä myös kotiautomaation projekteissa, joissa halutaan seurata ympäristön tietoja, kuten lämpötilaa, kosteutta tai liikkeen havaitsemista. Tämän tyyppiset järjestelmät voivat tehdä älykodeista entistä toimivampia ja dynaamisempia.
Kuinka valmistaa maukkaita ja ravitsevia kasvisruokia kotona?
Miten jääkausien jäätiköt muokkasivat maapallon maisemia ja ihmiskunnan varhaista elämää?
Miksi sanat ja lauseet saavat merkityksensä?
Mikä tekee tutkimusprotokollasta luotettavan ja toimivan?

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский