Jeffrey Cross
Jeffrey Cross

XLR8-projekti yhdistää FPGA-nopeuden Arduino-koodaukseen

Uusi XLR8-kortti

Markkinoilla on useita Arduino-yhteensopivia levyjä ja kloneja. Useimmat tarjoavat kuitenkin vain vähän sitä, mitä Arduino pystyy itsestään. Huolimatta Arduino Unon kaltaisesta näkökulmasta Alorium Technologyn uusi XLR8-kortti (lausutaan "Accelerate") on hieman erilainen.

Niille, jotka eivät tiedä, FPGA tai Field Programmable Gate Array on niin lähellä kuin voit suunnitella oman sirun. Kukin FPGA koostuu konfiguroitavista logiikkalohkoista (CLB), jotka ovat uskomattoman joustavia ja jotka voivat toteuttaa minkä tahansa perustoiminnon. Tehokkaasti se on ohjelmoitava piiri, jossa voit tehdä sen ohjelmistojen toiminnallisuuden sijaan laitteistossa. FPGA: n etuna on, että voit muokata sitä tekemään paljon tehtävää. Suuri ero FPGA: n ja normaalin mikrokontrollerin välillä on kuitenkin se, että se ei tee laatikosta mitään.

XLR8 on FPGA-kortti, joka sijaitsee Altera MAX10: n ympärillä ja joka toteuttaa ATmega-yhteensopivan mikrokontrollerin, jossa on sama ohjelma ja datamuisti kuin ATmega328. Juuri nyt hallitus on sykli täsmälleen normaalille ATmegalle, mutta ainakin teoriassa FPGA: ssa on riittävästi leveysaluetta, jotta ATmega-ydin on yli kaksinkertainen kuin Arduino Uno -kellon nopeus.

Tehokkaasti, ainakin Arduino IDE: lle, tämä hallitus näyttää Arduino Unosta. Niin paljon, että voit valita vain Unon korttityypiksi, käännä ja lataa luonnos USB: n yli normaalisti.

Mutta asiat eivät ole juuri sitä, mitä ne näyttävät pinnalta. Myös FPGA: n aluksella Alorium kutsuu "Xcelerator Blocks" tai XBs. Nämä tarjoavat laitteistopohjaisia ​​toiminnallisia toteutuksia, jotka muuten on toteutettava ohjelmistossa.

Pois portista ne tarjoavat kahden tyyppisiä lohkoja. Ensimmäiset käsittelevät kelluvaa matematiikkaa - ja jos olet koskaan joutunut tekemään vakavia matematiikoita Arduinossa, ymmärrät heti, mikä iso juttu voisi olla - toinen lohko käsittelee servo-ohjausta. Molempiin lohkoihin pääsee käyttämällä Arduino-kirjastoja.

Jos haluat esimerkiksi käyttää kelluvan pisteen matematiikkalohkon tarjoamaa kiihtyvyyttä, sinun täytyy muuntaa koodi XLR8-spesifisten puheluiden käyttämiseksi. Joten esimerkiksi:

c = a + b;

tulee,

c = xlr8FloatAdd (a, b);

Mutta jos tämä näyttää liian paljon vaivaa, opit mielellämme, että servo-ohjauslohko voidaan pudottaa koodiin ilman muutoksia, lukuun ottamatta eri otsikkotiedostoa.

Tämä tarkoittaa sitä, että jos olet rakentanut robotteja ja kokenut servo-jitterin huoltokatkosten vuoksi, voit korvata tämän kortin Arduino-kortille robotissasi ja poistaa yhdellä koodirivillä kaikki servo-jitterit. Joillekin rakennuskohteille, jotka tulevat olemaan elämän säästäjiä.

Minulla on ollut esivalmistuslaitteita pöydälläni noin kuukauden ajan, ja vaikka en tee paljon servo-työtä, minun on pakko laskea kelluva matematiikka Arduinoon melko säännöllisesti. Vaikka se on ollut kipua muuntava koodi, laitteiston kiihtyvyys on lisännyt huomattavasti toteutusta. Olen itse asiassa hieman vaikuttunut.

Istuin Jason Pecorin kanssa puhumaan XLR8-aluksella, ja hänellä oli tämä sanoa servosta ja kelluvasta pisteestä XB:

Olemme jo kehittäneet servolohkon, joka eliminoi tavallisen Arduino-servokirjaston tavallisen jitterin / nykimisen. Osoitimme tämän toiminnallisuuden Maker Faire Milwaukeessa, joka sisälsi RedBoardin, XLR8-korttimme ja joitakin servoihin asennettuja laserosoittimia, jotka tekivät erittäin hyvän rinnakkaisen vertailun.

Viileä juttu servo-esimerkistä on, että ainoa ero kahdessa levyssä olevien käyröiden välillä on servokirjasto, joka sisältää rivin. Loput luonnoksesta pysyvät täsmälleen samoina, mutta kaikki servo-ohjaustoiminnot kutsuvat laitteistotoimintoja FPGA-kankaalle.

Meillä oli myös fiksu demo, jossa oli faneja, selkeitä putkia ja ping-pong-palloja, jotka antoivat hyvän kuvan kelluvasta lohkostamme verrattuna normaaliin Atmega-pohjaiseen kelluvaan pisteeseen.  

Muita osumia, joita tällä hetkellä tarkastellaan osumaluettelossamme, ovat: PID-ohjaus, NeoPixel-ajastin / ohjain, useat UART-toiminnot, äänitoiminnot ja DSP-toiminnot.

Minun todellinen huoleni XLR8: n kanssa on se, että Alorium tarjoaa ainakin aluksi vain rajallista tukea käyttäjille, jotka haluavat luoda omat XB: t. Vaikka he ovat sanoneet,

Tien varrella aiomme tarjota pääsyn riittävään lähdekoodiin ja dokumentaatioon, jotta joku voi verilogin tai VHDL: n ja Quartusin kanssa luoda oman XB: nsä.

Mielestäni heidän on käsiteltävä tätä ennemmin kuin myöhemmin. Koska tämän hallituksen todellinen salainen kastike on sidottu siihen, että se on FPGA, ja kyky käyttää sitä. Juuri nyt se on erinomainen työkalu käyttäjille, jotka kohtaavat servo-jitteriä tai kelluvia pisteitä. Mutta hyvällä tuella omien XB-laitteiden luomiseksi, se voisi olla vakava työkalu kokeneille Makersille, jotka kohtaavat kaikenlaisia ​​ongelmia.

XLR8 on nyt yhteisrahoitus Kickstarterissa, ja sillä on vielä kaksi viikkoa kampanjaa varten.

Osake

Jättänyt Kommenttia