Řiditelný robot ježka se snímáním pachu

Řiditelný robot ježka se snímáním pachu

Ježci ujdou každou noc několik kilometrů a hledají potravu, kterou najdou díky svému ostrému čichu. Jejich potřeba získat kritickou váhu, aby mohli čelit hibernaci, je staví tváří v tvář mnoha nebezpečím, včetně otravy pesticidy.

Tento design je součástí hry vyvinuté s cílem vzdělávat široké publikum – a zejména děti – o nebezpečích, kterým ježci čelí v městských a příměstských oblastech, ao důležitosti pokusů o jejich ochranu. Podrobná pravidla hry naleznete v příloze v sekci schematické soubory.

Jsme ve spolupráci se Seed Studio a Tous aux abris! což je kolegiální sdružení, jehož cílem je navrhovat a budovat ochranné úkryty pro ohrožené hraniční živočichy* (ptáci, netopýři, ježci, včely atd.). Lze je nalézt na jejich webových stránkách:https://tousauxabris.org/

Čerpání inspirace z Projekt umělého nosu Benjamina Cabea který používá terminál WIO, vícekanálový senzor plynu a hraniční impuls k trénování neuronové sítě TinyML k rozpoznání pachů, jako je káva nebo chléb, se tato příručka zaměřuje na návrh a programování robota pro robota, se kterým lze jezdit a klasifikovat různé pachy. .

Ježek Shell

Skořepinu jsme navrhli tak, aby byla řezaná laserem, protože je rychlejší a dostupnější než možnosti 3D tisku. K tomuto účelu jsme použili SOLIDWORKS. Tento model je navržen pro řezání z 1/8 v překližce, ale design lze upravit pro použití dřeva jiné specifikace.

Tvar této sestavy je vyroben tak, aby dokonale zapadl do plyšáka ježka. Skládá se z 10 “žeber” spojených 3 “hřbety”. To se může propojit se spodní základnou, která je hlavní montážní deskou pro veškerý hardware.

Ve spodní části plyšáka lze udělat otvor dostatečně velký, aby se do něj vešla ulita. Náplň lze poté z plyšáka vyjmout, takže je prázdný. Skořápka se pak dá zasunout tato kůže.

Ve spodní části desky lze serva na přední stranu přilepit za tepla a vzadu přišroubovat kolečko.

Montáž WIO byla složitější s připojenou baterií, takže jsme navrhli malou destičku, kterou lze přišroubovat ke spodní části hlavní desky. To je drženo čtyřmi šrouby v každém rohu, které drží WIO v odsazení pod deskou. WIO a baterii lze zasunout otvorem v desce a držet dolů gravitací spočívající na čelní desce. To umožňuje přístup k displeji, tlačítkům a portům, když je robot sestaven.

V horní části desky je pouze baterie WIO a senzor plynu. Snímač plynu se montuje pomocí dvou distančních matic moduly směrem dolů. vyvrtali jsme otvory pro vedení drátů. Mohou být připojeny k portům WIO nebo k portům pro prodloužení baterie.

Obě části lze spojit. Za účelem nabití baterie WIO nebo přístupu k něčemu je snadné sejmout horní kryt. Při běžném provozu je přidržován gravitací.

programování

Jakmile je Hedgehog sestaven, je čas jej naprogramovat. Arduino Github Repo je propojeno tady. Stáhněte si HedgehogMain.ino kód a stáhněte si Arduino IDE. Před pokračováním musí být splněny některé předpoklady:

  • Postupujte podle pokynů na tento odkaz pro aktualizaci firmwaru WIO
  • Nainstalujte SAMD_ISR_Servo knihovna pomocí souboru .zip
  • Nainstalujte Knihovna Arduino_KNN pomocí správce knihovny Arduino
  • Nainstalujte Knihovna plynového senzoru V2
  • Nainstalujte LCD knihovna

Jakmile je toto vše dokončeno, můžete otevřít kód v Arduino IDE. Můžete zadat své WiFi SSID a heslo.

Ujistěte se, že pod deskami je nainstalován terminál WIO a že je vybrána správná deska a deska, abyste mohli začít nahrávat.

Po nahrání kódu je robot připraven k použití. Ve výchozím nastavení je načten jednoduchým algoritmem K Nearest Neighbors pro klasifikaci až 5 tříd. Počet sousedů používaných v kódu můžete měnit.

USB kabel lze nyní z robota vyjmout a místo toho jej lze zapnout a napájet. Displej se zapne a jakmile se úspěšně připojí k WiFi, zobrazí se vám IP adresa vašeho robota.

Na WIO běží webový server, ke kterému lze přistupovat z libovolného prohlížeče ve stejné síti. Pro přístup k uživatelským ovládacím prvkům zadejte IP adresu zobrazenou na obrazovce WIO v libovolném webovém prohlížeči.

ovládání prohlížeče

Webová stránka má dvě části, ovládací prvky pohybu a ovládací prvky tréninku. Každé z tlačítek pohybu uvede robota do pohybu v označeném směru. Protože tento robot pracuje přes WiFi, může někdy přestat reagovat, tlačítko stop, které lze v takovém případě použít k zastavení robota.

Jakmile se robot dostane ke zdroji pachu, můžete si vybrat, jakou třídu trénujete, a kliknout na vlak. Tím se zaznamenají data pro třídu. Jakmile nasbíráte dostatek datových bodů, můžete robota přesunout k jednomu ze zdrojů a kliknutím na klasifikovat klasifikovat, co právě voní. Tlačítko reset lze použít k vymazání všech tréninkových dat a v případě potřeby k vytvoření nového modelu.

Edge Impulse pro lepší výsledky

Robot je použitelný v tomto výchozím nastavení a zde se můžete zastavit, ale pokud chcete použít jiný model nebo experimentovat s neuronovými sítěmi, můžete použít následujícího průvodce integrací.

Nastavení Edge Impulse

Nejprve zde můžete přerušit impulsní účet https://www.edgeimpulse.com/ protože většina kroků bude vyžadovat účet. Poté musíte nastavit předávání dat pro sběr dat pomocí vašeho senzoru plynu WIO.

Chcete-li nastavit předávání dat. Nejprve nainstalujte edge-impulse-cli následujícím způsobem propojené pokyny. K dispozici jsou pokyny k použití předávání dat odkaz zde.

Chcete-li odeslat data z vašeho WIO do edge impulsu, musíte je vytisknout přes sériový port Nahrajte program s názvem EdgeImpulse_DataCollection do vašeho WIO pomocí Arduino IDE.

#include <Multichannel_Gas_GMXXX.h>
#include <Wire.h>
GAS_GMXXX<TwoWire> gas;

void setup() {
// put your setup code here, to run once:
gas.begin(Wire, 0x08); // use the hardware I2C
Serial.begin(115200);
}

void loop() {

String NO2 = String(gas.getGM102B());
String C2H = String(gas.getGM302B());
String VOC = String(gas.getGM502B());
String CO = String(gas.getGM702B());
Serial.println(NO2+","+C2H+","+VOC+","+CO);

delay(10);


}

Jakmile je edge-impulse-cli nainstalována včetně požadavků nodejs a vaše WIO je připraveno, otevřete příkazový řádek a spusťte následující řádek:

edge-impulse-data-forwarder

Poté budete vyzváni k zadání informací o vašem účtu. Zadejte informace o svém účtu edge impuls z předchozího období.

Po výzvě zadejte osy snímače:

NO2,C2H5CH,VOC,CO

Zadejte název svého zařízení a budete připojeni k edge-impulse.

Sběr dat

Nyní může sběr dat začít. Otevřete záložku sběru dat v edge impulsu pro váš projekt. V části Zařízení uvidíte název zařízení pro předávání dat.

Lze nastavit délku vzorku, což je počet milisekund, které zaznamenáte pro každý vzorek, a název štítku, který je identifikátorem třídy pro tento konkrétní vzorek.

Vyberte nastavení klasifikátoru, jak je uvedeno níže:

Vygenerujte svůj model a funkce:

Na kartě nasazení exportujte svůj model jako knihovnu Arduino.

Nyní můžete načíst další kód s názvem hedgehogEdgeImpulseMain z githubu, který obsahuje podporu okrajových impulsů. Nainstalujte knihovnu your.zip a zahrňte ji do kódu, jak je znázorněno. Proveďte požadované změny.

Toto webové rozhraní má pouze tlačítko pro klasifikaci. Po kliknutí na toto tlačítko se vyvolá klasifikátor okrajových impulsů a lze použít předtrénovaný model.

příspěvky

Tento projekt byl umožněn s pomocí seedstudio,Tous Aux Abris, jiný Tuftsova univerzita. Rádi bychom také poděkovali následujícím lidem za jejich podporu tomuto projektu.

  • Benjamin Cabe (hlavní programový manažer Azure IoT)
  • Didier Destabeaux (zakladatel “Tous Aux Abris”)
  • Elaine Wu (marketingová manažerka v seeedstudio)

Na tomto projektu, podporovaném Chrisem Rogersem (profesorem strojního inženýrství na Tufts University), pracovali následující studenti:

  • Rebecca Shenová
  • Alex Savic
  • Aashir Jalal

.

Leave a Reply

Your email address will not be published.