Erilaisten puettaviin sovelluksiin tarkoitettujen kehitys- ja prototyyppialustojen arviointi
Julkaisija DigiKeyn kirjoittajat Pohjois-Amerikassa
2020-08-12
Avoimen laitteiston Arduino-konsepti on osoittautunut erittäin menestyksekkääksi harrastajien joukossa. Myös ammattisuunnittelijat ovat ottaneet sen käyttöön varhaisessa kehitysvaiheessa ja prototyyppien valmistuksessa sekä viime aikoina myös täysimittaisessa suunnittelussa. Sellaisten sovellusten kuten puettavien laitteiden ja terveyden seurannan käyttäjät vaativat entistä korkeampaa suorituskykyä ja enemmän toimintoja yhä pienemmissä koossa.
Tässä artikkelissa käsitellään lyhyesti, miten Arduino-kehitysalustat ovat kehittyneet niin, että ne täyttävät harrastelijoiden ja ammattilaisten korkeaa suorituskykyä ja toiminnallisuutta koskevat tarpeet vähävirtaisissa ja vähän tilaa vaativissa sovelluksissa. Sen jälkeen siinä näytetään miten päästä alkuun Arduino-perheen viimeisimmällä lisäyksellä Seeeduino XIAO yritykseltä Seeed Technology Co.
Miten Arduino on kasvanut vastaamaan puettavan suunnittelun vaatimuksia?
Monet harrastajat ja suunnittelijat ovat kiinnostuneita kehittämään fyysisesti pieniä tuotteita, kuten puettavia laitteita, joita voidaan käyttää ahtaissa tiloissa. Nämä ovat tyypillisesti älykkäitä elektronisia järjestelmiä, jotka pohjautuvat usein mikrokontrolleriin sekä anturi- ja/tai näyttölaitteisiin. Joissakin tapauksissa ne toimivat high-tech-koruina. Niitä käytetään myös lähellä ihon pintaa ja/tai ihon pinnalla, jolloin ne voivat tunnistaa, analysoida ja välittää kehoa koskevia tietoja, esimerkkinä lämpötila, syke ja pulssin happipitoisuus, sekä ympäristötietoja. Joissakin tapauksissa ne antavat käyttäjälle välittömän biopalautteen.
Monet harrastajat käyttävät tällaisiin projekteihin Arduino-mikrotietokonetta ja kehitysalustoja. Niin tekevät myös yhä useammat ammattimaiset suunnittelijat, jotka voivat käyttää näitä kehitysalustoja arviointi- ja prototyyppialustoina nopeuttaakseen ja laskeakseen mikropiirien, antureiden ja oheislaitteiden arviointikustannuksia.
Tällaiset käyttäjät aloittavat yleensä alustalla A000073 Arduino Uno Rev3, jota mainostetaan nimellä ”Alusta, jolla kaikki aloittavat” (kuva 1). Tämä alusta perustuu ATMEGA328P-AUR-mikrokontrolleriin, jonka on valmistanut Atmel (nyt Microchip Technology). 5 voltin prosessoriin sisältyy 14 digitaalista tuloa/lähtöä (I/O), joista kuutta voidaan käyttää pulssileveysmodulaatioon (PWM), sekä kuusi analogista tulonastaa, joita voidaan tarvittaessa käyttää myös digitaalisena I/O:na. Lisäksi se tukee kahta ulkoista keskeytystä digitaalisissa I/O-nastoissa 2 ja 3 sekä sisältää UART-, SPI- ja I2C-liitännät, yhden kutakin.
Kuva 1: Arduino Uno Rev3 -kehitysalusta perustuu 8-bittiseen ATmega328P-mikrokontrolleriin, joka toimii 16 megahertsin taajuudella (MHz). Laitteen liittimet sisältävät 14 digitaalista I/O-nastaa, 6 analogista tulonastaa sekä erilaisia jännite-, maadoitus- ja referenssinastoja. Nämä liittimet muodostavat perustan laajalle lisäkorttien ekosysteemille. (Kuvan lähde: Arduino.cc)
Laitteen rajoituksia ovat 8-bittisen dataväylän ja 16 MHz:n kellotaajuuden ohella myös se, että Arduino Uno tarjoaa vain 32 kilotavua Flash-ohjelmamuistia ja 2 kilotavua SRAM-muistia. Kehitysalusta on myös liian suuri moniin sovelluksiin, sillä se on kooltaan 68,6 x 53,4 millimetriä (mm) (36,63 neliösenttimetriä (cm2)).
Yksi tapa pienentää mikroprosessorin kehitysalustan fyysistä kokoa on siirtyä ABX00028 Arduino Nano Every -malliin, joka perustuu Atmelin ATMEGA4809-MUR-mikrokontrolleriin (kuva 2). Se sisältää 50 % enemmän ohjelmamuistia kuin Arduino Uno (48 kilotavua) ja kolminkertaisen määrän SRAM-muistia (6 kilotavua). Kuten Arduino Uno, myös Arduino Nano Every perustuu 5 voltin prosessoriin, joka tarjoaa 14 digitaalista I/O:ta kuuden analogisen tulonastan ohella. Näitä voidaan tarvittaessa käyttää myös digitaalisena I/O:na. Kuten Uno, myös Nano Every tarjoaa UART-, SPI- ja I2C-liitännät, yhden kutakin. Toisin kuin Uno, joka tukee vain kahta ulkoista keskeytystä, Nano Everyn kaikkia digitaalisia nastoja voidaan käyttää ulkoisina keskeytyksinä.
Kuva 2: Arduino Nano Every on perinteisen Arduino Nanon parannettu versio ja se sisältää huomattavasti tehokkaamman prosessorin ATMEGA4809. Tässä prosessorissa on 50 % enemmän ohjelmamuistia kuin Arduino Unossa ja paljon enemmän tilaa muuttujille, koska SRAM-muisti on 3 kertaa suurempi, 6 kilotavua. (Kuvan lähde: Arduino.cc)
Vaikka Arduino Nano Every -mallia edelleen rajoittaa 8-bittinen dataväylä, siinä on nopeampi kellotaajuus (20 MHz) ja enemmän muistia (48 kilotavua Flash- ja 6 kilotavua SRAM-muistia). Kokorajoitteisten projektien kannalta on vielä tärkeämpää, että Arduino Nano Every on kooltaan vain 45 x 18 mm (8,1 cm2).
Toinen suosittu vaihtoehto, jota voidaan ohjelmoida Arduinon integroidussa kehitysympäristössä (IDE), on DEV-13736 Teensy 3.2 SparkFun Electronicsilta (kuva 3). I/O:n osalta tämä 3,3 voltin kehitysalusta on todella huippuluokkaa, sillä se tarjoaa 34 digitaalista nastaa, joista 12 tukee PWM-modulaatiota sekä 21 korkean resoluution analogiatuloa.
Kuva 3: Teensy 3.2 on pienikokoinen kehitysalusta, jonka on suunnitellut Paul Stoffregen PRJC.com-sivustolle, ja jota on helppo käyttää koekytkentäalustan kanssa. Tämä käyttäjäystävällinen kehitysalusta tarjoaa edullisen 32-bittisen Arm® Cortex®-M4-alustan harrastajille, opiskelijoille ja ammattilaisille. (Kuvan lähde: PRJC.com)
Teensy 3.2 käyttää MK20DX256VMC7R Kinetis K20 -mikrokontrolleria yritykseltä NXP. K20:n ominaisuuksiin kuuluu 32-bittinen Arm Cortex-M4 -prosessoriydin, joka toimii taajuudella 72 Mhz, ja se sisältää 256 kilotavua Flash- ja 64 kilotavua SRAM-muistia. Erityisen kiinnostavaa kokorajoitteisten projektien kannalta on se, että 35 x 18 mm:n (6,3 cm2) kokoinen Teensy 3.2 on noin kolme neljäsosaa Arduino Nano Everyn koosta.
Esittelyssä Seeeduino XIAO
Vaikka Teensy 3.2 on kooltaan vain 6,3 cm2, se on silti liian iso moniin sovelluksiin. Ratkaisu niille, jotka etsivät vielä pienempiä ja tehokkaampia alustoja, löytyy laajasta Arduino-ekosysteemistä. Suhteellisen uusi vaihtoehto on Seeed Technologyn Seeeduino XIAO (kuva 4), joka on kooltaan vain 23,5 x 17,5 mm (4,11 cm2) eli tavallisen postimerkin kokoinen. Seeeduino XIAO:n suunnittelijat keskittyivät myös erittäin alhaiseen hintaan.
Kuva 4: Tällä hetkellä Seeeduino-tuoteperheen pienintä Arduino-yhteensopivaa mikrokontrollerin kehitysalustaa Seeeduino XIAO on helppo käyttää koekytkentäalustan kanssa ja se tarjoaa käyttäjille tehokkaan 32-bittisen Arm Cortex-M0+ -prosessorin, joka toimii taajuudella 48 MHz. (Kuvan lähde: Seeed Studio)
XIAO käyttää Atmelin ATSAMD21G18A-MUT SAMD21G18 -mikrokontrolleria. Tämän mikroprosessorin ominaisuuksiin kuuluu 32-bittinen Arm Cortex-M0+ -prosessoriydin, joka toimii taajuudella 48 Mhz, sekä 256 kilotavua Flash- ja 64 kilotavua SRAM-muistia.
Vaikka XIAO tarjoaakin vain 11 datanastaa, kutakin näistä nastoista voidaan käyttää digitaalisena I/O:na tai analogisena tulona (kuva 5). Kymmenen nastoista tukee PWM-modulaatiota, ja yksi on varustettu digitaali-analogiamuuntimella (DAC), joten laite voi tarjota oikean analogisen lähdön. Lisäksi XIAO sisältää UART-, SPI- ja I2C-liitännät, yhden kutakin.
Kuva 5: Kaikki 11 datanastaa voivat toimia digitaalisena I/O:na (D0–D10) tai analogisina tuloina (A0–A10). Lisäksi A0 voi toimia aitona analogialähtönä, D4 ja D5 voivat toimia I2C-liitäntänä, nastoja D6 ja D7 voidaan käyttää UART-liitäntänä ja D8, D9 ja D10 voivat toimia SPI-liitäntänä. (Kuvan lähde: Seeed Studio)
Seeeduino XIAO:n käyttöönotto ja käyttö
Yleisesti ottaen Seeeduino XIAO:n kanssa työskentely on yhtä helppoa kuin minkä tahansa muun Arduino- tai Arduino-yhteensopivan kehitysalustan kanssa, mutta kannattaa huomioida eräitä vinkkejä ja niksejä.
Hyvä lähtökohta on varmistaa, että käytetään Arduino IDE:n uusinta versiota. Käy seuraavaksi Seeeduino XIAO Wiki -sivustolla, josta löydät ohjeet miten lisätä Arduino IDE:en oikea korttiohjain.
Monet Seeeduino XIAO -projektit – puettavat ja muut – sisältävät Adafruitin kolmivärisiä WS2818-pohjaisia NeoPixeleitä, kuten 2970-nauha, jossa on 144 NeoPixeliä metriä kohti (kuva 6).
Kuva 6: Yhdellä ainoalla Seeeduino XIAO -nastalla voidaan ohjata erikseen satoja kolmivärisiä NeoPixeleitä, kuten Adafruitin 144 NeoPixeliä mustaa nauhametriä kohden. (Kuvan lähde: Adafruit.com)
Yksi potentiaalinen ongelma on se, että perinteiset Arduino-kehitysalustat voivat edelleen toimia Adafruit NeoPixel -kirjaston vanhemmilla versioilla, mutta Seeeduino XIAO vaatii uusimman ja parhaan version.
Jos asennettuna on vanhempi NeoPixel-kirjasto, tästä voi seurata outoja ja hämmentäviä virheilmoituksia. Ratkaisu on poistaa kaikki kirjaston vanhemmat versiot järjestelmästä ja asentaa sitten uusin ja paras versio Adafruitin NeoPixel Überguiden ohjeiden mukaan.
Yksi mahdollinen huolenaihe on se, että NeoPixelit ovat herkkiä signaalien ylityksille ja alituksille datanastoissa. Ongelmana on, että nykyaikaisissa mikrokontrollereissa signaalien nopeat reunanopeudet voivat johtaa tällaiseen käyttäytymiseen. Ratkaisu on lisätä sarjaan kytketty vastus mahdollisimman lähelle ensimmäistä NeoPixel-ketjun elementtiä (kuva 7). Sopiva esimerkki olisi 1/4 watin ja 390 ohmin (Ω) vastus 5 prosentin toleranssilla, kuten CF14JT390R-hiilikalvovastus yritykseltä Stackpole Electronics Inc.
Kuva 7: Mahdollisimman lähelle ketjun ensimmäistä NeoPixeliä sijoitettu sarjavastus eliminoi ylitykset ja alitukset mikrokontrollerin datavirrasta. (Kuvan lähde: Max Maxfield)
Toinen NeoPixeliin liittyvä ongelma on se, että Seeeduino XIAO:n 3,3 voltin digitaaliset lähdöt eivät välttämättä riitä ohjaamaan NeoPixelin 5 voltin datatuloja. Yksi ratkaisu olisi käyttää SparkFunin logiikkatasomuunninta BOB-12009 (kuva 8).
Kuva 8: SparkFunin BOB-12009-logiikkatasomuunnin tarjoaa neljä kaksisuuntaista kanavaa, joita voidaan käyttää signaalien muuntamiseen 3,3 voltin ja 5 voltin alueiden välillä. (Kuvan lähde: Adafruit.com)
Kaikki mitä NeoPixel-sovellukseen tarvitaan, on kuitenkin vain yksi yksisuuntainen kanava. BOB-12009:n ongelmana on, että se tarjoaa neljä kaksisuuntaista kanavaa, mikä tekee siitä suhteellisen kookkaan ratkaisun projektiin, jossa on vähän tilaa, ja suhteellisen kalliin vaihtoehdon projektiin, jossa kustannukset halutaan minimoida. Yksi helppo vaihtoehto on käyttää yksittäistä 1N4001-diodia valmistajalta Comchip Technology (kuva 9).
Kuva 9: ”Uhrautuva” NeoPixel voidaan pakottaa toimimaan jännitetasomuuntimen roolissa muodostamalla 1N4001-diodilla 0,7 voltin jännitehäviö. (Kuvan lähde: Max Maxfield)
NeoPixels pitää loogisena arvona 1 mitä tahansa jännitettä 0,7 * VCC korkeampaa arvoa. Tässä tapauksessa NeoPixel katsoo loogisen arvon 1 olevan 0,7 * 5 = 3,5 volttia.
Jos ”uhripikselin” jännite syötetään IN4001-diodin kautta (kyseisen diodin myötäsuuntainen jännitehäviö on 0,7 volttia), pikselin saama jännite VCC on 5–0,7 = 4,3 volttia. Tämä tarkoittaa, että se pitää jännitettä 0,7 * 4,3 = 3,01 volttia loogisena arvona 1. Tämä puolestaan tarkoittaa, että Seeeduino XIAO:n 3,3 voltin signaali pystyy enemmän kuin hyvin ohjaamaan uhrautuvaa pikseliä. Samalla uhripikselin 4,3 voltin lähtö on enemmän kuin riittävä ohjaamaan ketjun seuraavan NeoPixelin datatuloa.
Yhteenveto
Varhaiset Arduino-kehitysalustat, kuten 8-bittinen 16 MHz:n Arduino Uno, olivat fyysisesti kookkaita sekä kapasiteetiltaan ja suorituskyvyltään rajoittuneita. Nykyään Arduino-ekosysteemiin kuuluu lukemattomia erilaisia alustoja, jotka kattavat laajan valikoiman muotoja, kokoja ja ominaisuuksia.
Seeeduino XIAO tarjoaa kokorajoitteisiin projekteihin, kuten puettaviin laitteisiin, 32-bittisen Arm-Cortex-M0+-prosessoriytimen, joka toimii 48 MHz:n taajuudella ja joka sisältää 256 kilotavua Flash- ja 64 kilotavua SRAM-muistia. Tämä kaikki on sijoitettu pienelle kortille, jota on helppo käyttää koekytkentäalustan kanssa. Kortin koko on vain 4,11 cm2 ja sille on tarjolla kattava ekosysteemituki.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.




