Obsah:
- Krok 1: Krok 1: Zostavte si základného robota
- Krok 2: Krok 2: Nájdite a objednajte si svoj OLED displej
- Krok 3: Krok 3: Pripojte OLED k Arduino Nano
- Krok 4: Krok 4: Otestujte si displej
- Krok 5: Krok 5: Pridajte svoju OLED do robota
- Krok 6: Krok 6: Zobrazte parametre robota
- Krok 7: Krok 7: Nakreslite niektoré tváre
- Krok 8: Krok 8: Prispôsobenie
Video: FaceBot: 8 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Táto príručka vám ukáže, ako vytvoriť lacného robota na predchádzanie kolíziám (39 dolárov) s tvárou na písme. Robíme to pomocou nového lacného, jasného OLED displeja. Naši študenti radi pridávajú tváre svojim robotom. Radi kreslia smajlíky, ktorí sa menia podľa toho, čo robot robí.
K dispozícii je niekoľko malých nízkonákladových robotov za menej ako 25 dolárov, ktoré vám umožnia naučiť sa základy informatiky. Jeden z problémov týchto robotov je, že neposkytujú transparentnosť toho, čo sa deje vo vnútri robota, keď ho staviate. V roku 2018 sa to všetko začalo meniť s dostupnosťou lacných vysokokvalitných OLED displejov. Tieto displeje majú nasledujúce výhody:
- Sú veľmi svetlé a majú vysoký kontrast. Aj zo svetlej miestnosti sú ľahko čitateľné z mnohých uhlov.
- Majú dobré rozlíšenie. Tie, ktoré používam, majú 168 x 64 pixelov. To je takmer štvornásobok predchádzajúcich zobrazení, ktoré sme použili.
- Majú nízky výkon a fungujú konzistentne, aj keď výkon vášho robota klesá.
- Majú relatívne nízke náklady (každý okolo 16 dolárov) a ceny klesajú.
V minulosti bolo ťažké ich naprogramovať a použili by príliš veľa pamäte na to, aby sa dali použiť s lacnými Arduino Nanos. Nano má iba 2K alebo dynamickú RAM. Táto príručka vám ukáže, ako tieto problémy vyriešiť a postaviť robota, ktorého deti radi programujú.
Krok 1: Krok 1: Zostavte si základného robota
Pri stavbe FaceBotu zvyčajne začíname so základným robotom. Jedným z príkladov je robot CoderDojo za 25 dolárov, ktorý je tu popísaný. Tento robot používa lacné a obľúbené Arduino Nano, jednoduchý ovládač motora, 2 jednosmerné motory a 4 alebo 6 batérií AA. Väčšina študentov začína používať snímač ping na zostrojenie robota na predchádzanie zrážkam. Pretože poskytuje 5v napájací systém, je ideálny pre FaceBot. Aby boli náklady nízke, zvyčajne nechám svojich študentov objednať diely on-line z e-Bay. Doručenie dielov často trvá 2 až 3 týždne a vyžaduje malé množstvo spájkovania motorov a vypínača. Ostatné spojenia sa vykonávajú pomocou 400-väzbového chleba. Študenti často lepia drôty za tepla, aby nevykĺzli.
V štandardnom prevedení na predchádzanie zrážkam vykonávame jednu zmenu. Senzor ping presúvame z hornej časti podvozku pod podvozok. To ponecháva priestor pre displej na vrchu robota.
Akonáhle budete mať svoje programovanie vyhýbania sa kolíziám, budete môcť pridať tvár!
Krok 2: Krok 2: Nájdite a objednajte si svoj OLED displej
Keď prišli OLED displeje, lacné boli navrhnuté pre hodinky alebo fitness monitory. V dôsledku toho boli malé, zvyčajne mali priemer asi 1 palec. Dobrou správou je, že boli lacné, okolo 3 dolárov. S týmito displejmi sme postavili niekoľko robotov, ale pretože veľkosť displejov bola obmedzená, mohli sme na obrazovke robiť. Potom v roku 2018 sme začali vidieť, ako sa cena väčších 2,42 palcových OLED obrazoviek znižuje. V januári 2019 sa ceny znížili na približne 16 dolárov. Nakoniec sme mali skvelý displej, ktorý sme mohli použiť na tváre robotov.
Tu sú špecifikácie týchto displejov:
- 2,42 palca (uhlopriečka)
- 128 pixelov naprieč (rozmer x)
- 64 pixelov vysoký (rozmer y)
- Nízky výkon (zvyčajne 10 mA)
- Monochromatické (prichádzajú v žltej, zelenej, modrej a bielej)
- Predvolené rozhranie SPI, aj keď ho môžete zmeniť na I2C
- Ovládač SSD1309 (veľmi bežný ovládač displeja)
Rozhranie SPI má sedem káblov. Tu sú typické štítky rozhrania:
- CS - Chip Select
- DC - Údaje/Príkaz
- RES - Resetovať
- SDA - údaje - toto by malo byť pripojené k pinu Arduino Nano pin 11
- SCL - Hodiny - mali by byť pripojené k pinu Arduino Nano pin 13
- VCC - +5 voltov
- GND - zem
Budete tiež potrebovať kábel na pripojenie displeja k doske. Displeje sa zvyčajne dodávajú so 7-kolíkovým konektorom, ktorý spájkujete s displejom. Použil som 7 konektorov Dupont 20 muž-samec na 20 mc a spájkoval som ich tak, aby káble vychádzali zo zadnej časti displeja.
Krok 3: Krok 3: Pripojte OLED k Arduino Nano
Teraz ste pripravení otestovať svoju OLED. Používam ďalšie Arduino Nano, aby som otestoval, či každý zobrazený displej funguje. Akonáhle testy fungujú, potom ho pripojím k robotovi. Schéma zapojenia testera je zobrazená na obrázku vyššie. Všimnite si toho, že pripojenia OLED môžete presunúť na iné piny, ktoré podporujú digitálne výstupy, ale ak sa ubezpečíte, že SCL (hodiny) sú na pine Arduino Nano 13 a SDA (údaje) sú na pine Arduino Nano pinu 11, môžete použiť predvolené nastavenia v softvér. Vďaka tomu bude váš kód o niečo jednoduchší.
Krok 4: Krok 4: Otestujte si displej
Na testovanie vášho displeja použijeme knižnicu u8g2. Môžete použiť aj ďalšie knižnice, ale podľa mojich skúseností žiadna z nich nie je taká dobrá v knižnici u8g2. Jedným z kritických faktorov je, koľko pamäte RAM v Arduine používa displej. U8g2 je jediná knižnica, ktorú som našiel a ktorá používa „režim stránky“, ktorý bude fungovať s Arduino Nano.
Túto knižnicu môžete pridať do svojho IED Arduino vyhľadaním výrazu "u8g2" v ponuke "Spravovať knižnice". Kód si môžete stiahnuť aj priamo z gethub.
github.com/olikraus/u8g2
Testovací kód, ktorý používam, je tu:
github.com/dmccreary/coderdojo-robots/blob…
Je potrebné poznamenať niekoľko vecí. Čísla pinov SCL a SDA sú komentované, pretože sú to predvolené piny na Nano. Konštruktér pre u8g2 je kľúčový riadok:
// Používame SSD1306, 128x64, jednostranové, bezmenné, 4-vodičové, hardvérové, SPI bez otáčania, ktoré využíva iba 27% dynamickej pamäteU8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2 (U8G2_R0, CS_PIN, DC_PIN, RDS_PIN);
Používame jednostránkový režim, pretože tento režim používa minimálnu pamäť RAM. Používame 4-vodičové hardvérové rozhranie a OLED je štandardne dodávaný s SPI.
Krok 5: Krok 5: Pridajte svoju OLED do robota
Teraz, keď máme funkčný OLED a vieme, ako inicializovať knižnice u8g2, sme pripravení integrovať OLED do nášho základného robota. Je potrebné zvážiť niekoľko vecí. V našom teste OLED sme na uľahčenie zapojenia použili kolíky, ktoré boli všetky vedľa seba. Na pohon nášho robota bohužiaľ potrebujeme kolík 9, pretože je to jeden z pinov PWM, ktoré potrebujeme na odoslanie analógového signálu do ovládača motora. Riešením je presunúť drôt, ktorý je na kolíku 9, na iný voľný kolík a potom zmeniť príkaz #define na tento nový kolík. Na montáž OLED na prednú stranu robota som vyrezal dva trojuholníkové kusy z plexiskla a zalepil ich za tepla. ich k podvozku. Vždy rád použijem brúsny papier na hrubovanie povrchu plexiskla, než diely zalepím za tepla, aby sa nerozdelili príliš ľahko.
Ďalej získajme údaje o našom OLED a nakreslíme niektoré tváre do robota!
Krok 6: Krok 6: Zobrazte parametre robota
Jednou z príjemných vecí na displeji je to, že skutočne pomáha pri ladení toho, čo sa deje v našom robote, keď sa pohybuje. Nie je neobvyklé, že vývojári majú funkciu, ktorá funguje na ploche, keď ste pripojení k počítaču, aby nefungovala, keď sa robot pohybuje okolo. Zobrazenie hodnoty, ako je vzdialenosť nameraná snímačom ping, je dobrým príkladom zobrazenia parametra robota.
Na vyššie uvedenej fotografii prvý riadok (Čas ozveny) zobrazuje čas oneskorenia medzi odchodom zvuku z ultrazvukového reproduktora a časom, kedy je prijatý mikrofónom. Toto číslo sa potom prevedie na centimetre v druhom riadku (vzdialenosť v cm). Počítadlo sa aktualizuje vyhľadávaním, aby sa ukázalo, že sa aktualizuje displej. „Otáčanie …“sa zobrazuje iba vtedy, ak je vzdialenosť pod určitým číslom, ktoré sa nazýva prahová hodnota odbočenia. Obe kolesá sa pohybujú dopredu, ak je vzdialenosť pingu nad týmto číslom. Ak je číslo pod prahovou hodnotou otáčania, obrátime motory (zálohovanie) a potom zmeníme smer.
Tu je niekoľko ukážkových kódov, ktoré vám ukazujú, ako prevziať hodnoty zo senzora ping a zobraziť hodnoty na obrazovke OLED.
Tu je príklad, ktorý testuje tri snímače ping (ľavý, stredný a pravý) a zobrazuje hodnoty na displeji:
github.com/dmccreary/coderdojo-robots/blob…
Krok 7: Krok 7: Nakreslite niektoré tváre
Teraz máme všetky figúrky na mieste, aby sme nakreslili niektoré tváre. Naši študenti si zvyčajne myslia, že robot by mal mať šťastnú tvár, ak ide dopredu. Keď vidí niečo pred sebou, zaregistruje pocit prekvapenia. Potom cúvne a rozhliada sa, možno očami pohnútkami signalizuje, akým smerom sa otočí.
Príkaz na kreslenie na kreslenie tváre je veľmi jednoduchý. Môžeme nakresliť kruh pre obrys tváre a vyplniť kruhy pre každé oko. Ústa môžu byť polkruh pre úsmev a plný okrúhly kruh pre pocit prekvapenia. Toto je miesto, kde deti môžu využiť svoju kreativitu na prispôsobenie výrazov. Niekedy úmyselne kreslím zlé tváre a žiadam študentov, aby mi pomohli ich zlepšiť.
Na zobrazenie veľkosti displeja môžete použiť funkcie display.height () a display.width (). V nižšie uvedenom kóde nastavujeme premenné
half_width = display.width ()/2; half_height = display.height ()/2;
Ak tieto výpočty robíte mnohokrát, kód je o niečo rýchlejší, ak sú vypočítané raz a uložené v premennej. Tu je niekoľko príkladov toho, ako je nakreslená nudná rovná tvár vyššie:
// robíme to na začiatku každej slučky
display.clearDisplay (); // nakreslite svetlú tvár na pozadiedisplay.fillCircle (polovičná šírka, polovičná výška, 31, BIELA); // pravé oko tmavé zobrazenie.fillCircle (polovičná šírka - 10, display.height ()/3, 4, ČIERNE); // ľavé oko tmavédisplay.fillCircle (polovičná šírka + 10, display.height ()/3, 4, ČIERNE); // nakreslite priamku pre zobrazenie v ústach.drawLine (polovičná šírka - 10, display.height ()/3 * 2, polovičná šírka + 10, display.height ()/3 * 2, ČIERNA); // tento riadok posiela našu novú tvár na displej OLED.display ();
Krok 8: Krok 8: Prispôsobenie
Kreslenie základnej tváre je len začiatok. Študenti môžu vytvoriť veľa variácií. Mnoho študentov pridalo malý reproduktor, ktorý pri ich pohybe prehráva tóny alebo zvuky.
Môžete tiež vytvoriť menšie testovacie programy, ktoré pomôžu vašim študentom zapojiť motory správne. Napríklad šípka (trojuholník) na obrazovke povie študentovi, akým smerom by sa malo koleso otáčať, keď pripájate motory. Testovací program cykluje všetkými smermi motora:
- Pravý vpred
- Pravý reverz
- Vľavo vpred
- Vľavo vzad
V každom režime je obrazovka aktualizovaná o nový displej, ktorý ukazuje, ktoré koliesko sa má otáčať a v akom smere.
Príklad tohto programu je tu
github.com/dmccreary/coderdojo-robots/blob…
Na stránke CoderDojo Robots GitHub FaceBot je mnoho ďalších príkladov a podrobností o programovaní.
Existuje aj verzia robota FaceBot, ktorá umožňuje študentom meniť všetky parametre vyhýbania sa kolíziám (rýchlosť vpred, vzdialenosť v zákrute, čas zatáčania, rýchlosť otáčania) priamo pomocou displeja. Na „programovanie“týchto robotov nie je potrebný žiadny počítač! Tieto verzie sú ideálne pre veľtrhy MakerFair a akcie, okolo ktorých nechcete ťahať počítače.
Dajte nám vedieť, s akými novými tvárami vy a vaši študenti prichádzate!
Šťastné kódovanie!
Odporúča:
Počítadlo krokov - mikro: bit: 12 krokov (s obrázkami)
Počítadlo krokov - mikro: bit: Tento projekt bude počítadlom krokov. Na meranie našich krokov použijeme senzor akcelerometra, ktorý je vstavaný v Micro: Bit. Zakaždým, keď sa Micro: Bit zatrasie, pridáme k počtu 2 a zobrazíme ho na obrazovke
Akustická levitácia s Arduino Uno krok za krokom (8 krokov): 8 krokov
Akustická levitácia s Arduino Uno krok za krokom (8 krokov): Ultrazvukové meniče zvuku L298N Dc napájací adaptér ženského adaptéra s mužským DC kolíkom Arduino UNOBreadboard Ako to funguje: Najprv nahráte kód do Arduino Uno (je to mikrokontrolér vybavený digitálnym a analógové porty na prevod kódu (C ++)
Bolt - Nočné hodiny pre bezdrôtové nabíjanie DIY (6 krokov): 6 krokov (s obrázkami)
Bolt - Nočné hodiny bezdrôtového nabíjania DIY (6 krokov): Indukčné nabíjanie (tiež známe ako bezdrôtové nabíjanie alebo bezdrôtové nabíjanie) je typ bezdrôtového prenosu energie. Na prenos elektriny do prenosných zariadení používa elektromagnetickú indukciu. Najbežnejšou aplikáciou je bezdrôtové nabíjanie Qi
Ako rozobrať počítač pomocou jednoduchých krokov a fotografií: 13 krokov (s obrázkami)
Ako rozobrať počítač jednoduchými krokmi a obrázkami: Toto je návod, ako rozobrať počítač. Väčšina základných komponentov je modulárna a dá sa ľahko odstrániť. Je však dôležité, aby ste o tom boli organizovaní. Pomôže to zabrániť strate súčiastok a tiež pri opätovnej montáži
Od Roomby k Roveru iba 5 krokov!: 5 krokov
Od Roomby po Rover za pouhých 5 krokov !: Roboti Roomba sú zábavným a jednoduchým spôsobom, ako ponoriť prsty do nohy vo svete robotiky. V tomto návode podrobne popíšeme, ako previesť jednoduchú Roombu na ovládateľný rover, ktorý súčasne analyzuje svoje okolie. Zoznam dielov 1.) MATLAB2.) Roomb