Orodha ya maudhui:

FaceBot: Hatua 8
FaceBot: Hatua 8

Video: FaceBot: Hatua 8

Video: FaceBot: Hatua 8
Video: Семья Грабовенко (часть 1). Хата на тата. Сезон 6. Выпуск 11 от 20.11.2017 2024, Novemba
Anonim
UsoBot
UsoBot

Mwongozo huu utakuonyesha jinsi ya kuunda roboti ya kuepusha mgongano wa gharama ya chini ($ 39) na uso kwenye fonti. Tunafanya hivyo kwa kutumia onyesho mpya la gharama nafuu, lenye mwangaza wa OLED. Wanafunzi wetu wanapenda kuongeza nyuso kwenye roboti zao. Wanapenda kuchora nyuso zenye tabasamu zinazobadilika kulingana na kile roboti inafanya.

Kuna roboti ndogo ndogo za bei ya chini zinazopatikana chini ya $ 25 ambazo hukuruhusu kufundisha misingi ya sayansi ya kompyuta. Shida moja ya roboti hizi sio kutoa uwazi juu ya kile kinachoendelea ndani ya roboti wakati unaijenga. Mnamo 2018 ambayo yote ilianza kubadilika na kupatikana kwa maonyesho ya OLED ya bei ya chini. Maonyesho haya yana faida zifuatazo:

  • Wao ni mkali sana na wana tofauti kubwa. Hata chumba chenye kung'aa ni rahisi kusoma kutoka pembe nyingi.
  • Wana azimio zuri. Ninazotumia ni saizi 168x64. Hii ni karibu 4x maonyesho ya awali ambayo tumetumia.
  • Wana nguvu ya chini na hufanya kazi mfululizo hata wakati nguvu ya roboti yako inadondoka.
  • Ni gharama ndogo (karibu $ 16 kila mmoja) na bei zinashuka.

Hapo zamani, wamekuwa ngumu kupanga na wangetumia kumbukumbu nyingi kutumiwa na Arduino Nanos ya gharama nafuu. Nano ina 2K au RAM yenye nguvu. Mwongozo huu utakuonyesha jinsi ya kufanya kazi kuzunguka shida hizi na kujenga roboti ambayo watoto wanapenda kupanga.

Hatua ya 1: Hatua ya 1: Jenga Robot yako ya Msingi

Hatua ya 1: Jenga Robot Yako ya Msingi
Hatua ya 1: Jenga Robot Yako ya Msingi

Ili kujenga FaceBot sisi kawaida huanza na msingi robot. Mfano mmoja ni $ 25 CoderDojo Robot ambayo imeelezewa hapa. Roboti hii hutumia Arduino Nano ya gharama nafuu na maarufu, mdhibiti rahisi wa magari, 2 DC-motors na betri 4 au 6 AA. Wanafunzi wengi huanza kutumia sensorer ya ping kujenga roboti ya kuzuia mgongano. Kwa sababu hutoa mfumo wa nguvu wa 5v ni kamili kwa FaceBot. Ili kuweka gharama ndogo, kawaida huwa na wanafunzi wangu kuagiza sehemu kwenye mtandao kutoka e-Bay. Sehemu hizo mara nyingi huchukua wiki 2-3 kufika na zinahitaji kiwango kidogo cha kuuza kwa motors na kubadili nguvu. Viunganisho vyote vimetengenezwa kwa kutumia ubao wa mikate 400. Wanafunzi mara nyingi huunganisha moto waya ili kuwaepusha kuteleza.

Kuna mabadiliko moja tunayofanya kwa muundo wa kawaida wa kuzuia mgongano. Tunasogeza sensor ya ping kutoka juu ya chasisi hadi chini ya chasisi. Hii inaacha nafasi ya kuonyesha juu ya roboti.

Mara tu unapokuwa na programu yako ya kuzuia mgongano unasomwa kuongeza uso!

Hatua ya 2: Hatua ya 2: Tafuta na Agiza Uonyesho wako wa OLED

Hatua ya 2: Tafuta na Agiza Onyesho lako la OLED
Hatua ya 2: Tafuta na Agiza Onyesho lako la OLED

Wakati maonyesho ya OLED yalipotoka, zile za bei ya chini zilibuniwa kwa saa au wachunguzi wa mazoezi ya mwili. Kama matokeo walikuwa wadogo, kawaida karibu inchi 1 kote. Habari njema ni kwamba walikuwa wa bei ya chini, karibu $ 3. Tuliunda roboti chache na maonesho haya, lakini kwa sababu saizi ya maonyesho yalikuwa na kikomo kile tunaweza kufanya kwenye skrini. Halafu mnamo 2018 tulianza kuona gharama ya skrini kubwa za OLED za inchi 2.42 zinashuka kwa bei. Mnamo Januari 2019 bei zimeshuka hadi $ 16. Hatimaye tulikuwa na onyesho kubwa ambalo tunaweza kutumia kwa nyuso zetu za roboti.

Hapa kuna maelezo ya maonyesho haya:

  1. Inchi 2.42 (kipimo cha diagonal)
  2. Saizi 128 kote (x-dimension)
  3. Saizi 64 juu (y-dimension)
  4. Nguvu ya chini (kawaida 10ma)
  5. Monochrome (huja na manjano, kijani kibichi, hudhurungi na nyeupe)
  6. Kiolesura chaguomsingi cha SPI ingawa unaweza kuibadilisha kuwa I2C ikiwa unataka
  7. Dereva wa SSD1309 (dereva wa kawaida wa kuonyesha)

Muunganisho wa SPI una waya saba. Hapa kuna lebo za kawaida kwenye kiolesura:

  1. CS - Chip Chagua
  2. DC - Takwimu / Amri
  3. RES - Rudisha
  4. SDA - Takwimu - hii inapaswa kushikamana na pini 11 ya Arduino Nano
  5. SCL - Saa - hii inapaswa kushikamana na pini ya Arduino Nano 13
  6. VCC - +5 volts
  7. GND - Ardhi

Utahitaji pia kuwa na waya ili kuunganisha onyesho kwenye ubao wa mkate. Maonyesho kawaida huja kutumia kichwa cha pini 7 ambacho umeuza kwenye onyesho. Nilitumia viungio 7 vya kiume na kiume 20mc Dupont na kuziuza ili waya zitoke nyuma ya onyesho.

Hatua ya 3: Hatua ya 3: Unganisha OLED na Arduino Nano

Hatua ya 3: Unganisha OLED na Arduino Nano
Hatua ya 3: Unganisha OLED na Arduino Nano
Hatua ya 3: Unganisha OLED na Arduino Nano
Hatua ya 3: Unganisha OLED na Arduino Nano

Sasa uko tayari kujaribu OLED yako. Ninatumia Arduino Nano mwingine kujaribu tu kwamba kila onyesho napata kazi. Mara tu vipimo vitakapofanya kazi basi ninaiunganisha na roboti. Mchoro wa wiring kwa tester umeonyeshwa kwenye takwimu hapo juu. Kumbuka kuwa unaweza kusogeza miunganisho ya OLED kwa pini zingine zinazounga mkono matokeo ya dijiti, lakini ikiwa utahakikisha kuwa SCL (saa) iko kwenye Arduino Nano pin 13 na SDA (data) iko kwenye Arduino Nano pin 11 unaweza kutumia mipangilio ya default katika programu. Hii inaweka nambari yako rahisi kidogo.

Hatua ya 4: Hatua ya 4: Jaribu Uonyesho wako

Hatua ya 4: Jaribu Uonyesho wako
Hatua ya 4: Jaribu Uonyesho wako

Ili kujaribu onyesho lako tutatumia maktaba ya u8g2. Kuna maktaba mengine ambayo unaweza kutumia, lakini kwa uzoefu wangu, hakuna hata moja nzuri kwenye maktaba ya u8g2. Sababu moja muhimu ni kiasi gani cha RAM ndani ya Arduino kinatumiwa na onyesho. U8g2 ndio maktaba pekee niliyoipata inayotumia "Njia ya Ukurasa" ambayo itafanya kazi na Arduino Nano.

Unaweza kuongeza maktaba hii kwa Arduino IED yako kwa kutafuta "u8g2" katika menyu ya "Dhibiti Maktaba". Unaweza pia kupakua nambari moja kwa moja kutoka kwa gethub.

github.com/olikraus/u8g2

Nambari ya jaribio ninayotumia iko hapa:

github.com/dmccreary/coderdojo-robots/blob…

Kuna mambo machache ya kuzingatia. Nambari za siri za SCL na SDA zimetolewa maoni kwa sababu ni pini chaguomsingi kwenye Nano. Mjenzi wa u8g2 ni laini kuu:

// Tunatumia SSD1306, 128x64, ukurasa mmoja, isiyo na jina, waya 4, vifaa, SPI bila kuzunguka ambayo hutumia tu 27% ya kumbukumbu ya nguvuU8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2 (U8G2_R0, CS_PIN, DC_PIN, RDS_PIN);

Tunatumia hali ya ukurasa mmoja kwani hali hiyo hutumia RAM ndogo. Tunatumia kiunganishi cha vifaa vya waya-4 na OLED inakuja na SPI kwa chaguo-msingi.

Hatua ya 5: Hatua ya 5: Ongeza OLED yako kwenye Robot

Hatua ya 5: Ongeza OLED yako kwenye Robot
Hatua ya 5: Ongeza OLED yako kwenye Robot

Sasa kwa kuwa tuna OLED inayofanya kazi na tunajua jinsi ya kuanzisha maktaba ya u8g2 tuko tayari kuingiza OLED na robot yetu ya msingi. Kuna mambo machache ya kuzingatia. Katika jaribio letu la OLED tulitumia pini ambazo zote zilikuwa karibu na kila mmoja ili kufanya wiring iwe rahisi. Kwa bahati mbaya, tunahitaji pini 9 kuendesha Robot yetu kwa sababu ni moja ya pini za PWM ambazo tunahitaji kutuma ishara ya analog kwa dereva wa gari. Suluhisho ni kuhamisha waya iliyo kwenye pini 9 hadi pini nyingine ya bure na kisha ubadilishe taarifa ya #fafanua kwenye pini hiyo mpya. Ili kuweka OLED mbele ya roboti nilikata vipande viwili vya pembe tatu kutoka kwa plexiglass na glued ya moto. wao kwa chasisi. Daima napenda kutumia sandpaper fulani ya kozi kukandamiza uso wa plexiglass kabla ya moto-gundi sehemu pamoja ili zisijitenganishe kwa urahisi sana.

Ifuatayo, wacha tupate data kwenye OLED yetu na tuvute sura kwenye roboti!

Hatua ya 6: Hatua ya 6: Onyesha Vigezo vya Roboti

Hatua ya 6: Onyesha Vigezo vya Roboti
Hatua ya 6: Onyesha Vigezo vya Roboti

Moja ya mambo mazuri juu ya kuwa na onyesho ni kwamba inasaidia sana katika utatuzi wa kile kinachoendelea ndani ya roboti yetu wakati inaendesha gari kuzunguka. Sio kawaida kwa watengenezaji kuwa na kazi ya kufanya kazi kwenye eneo-kazi wakati umeunganishwa kwenye kompyuta yako ili isiweze kufanya kazi wakati roboti inaendesha gari karibu. Kuonyesha thamani kama vile umbali uliopimwa na sensor ya ping ni mfano mzuri wa kuonyesha parameter ya roboti.

Kwenye picha hapo juu, laini ya kwanza (Echo Time) inaonyesha muda wa kuchelewesha kati ya wakati sauti inamwacha spika wa ultrasonic na wakati unapokelewa na kipaza sauti. Nambari hii inabadilishwa kuwa sentimita katika mstari wa pili (Umbali kwa cm). Kaunta inasasishwa kwa utaftaji wa pili ili kuonyesha onyesho linasasishwa. "Kugeuza …" huonyeshwa tu ikiwa umbali uko chini ya nambari maalum ambayo inaitwa kizingiti cha zamu. Magurudumu yote mawili yanasonga mbele ikiwa umbali wa ping uko juu ya nambari hii. Ikiwa nambari iko chini ya kizingiti basi tunabadilisha motors (inaunga mkono) na kisha ubadilishe mwelekeo.

Hapa kuna nambari ya sampuli ambayo inakuonyesha jinsi ya kuchukua maadili kutoka kwa sensor ya ping na kuonyesha maadili kwenye skrini yako ya OLED.

Hapa kuna mfano ambao hujaribu sensorer tatu za ping (kushoto, katikati na kulia) na kuonyesha maadili kwenye onyesho:

github.com/dmccreary/coderdojo-robots/blob…

Hatua ya 7: Hatua ya 7: Chora Nyuso zingine

Hatua ya 7: Chora Nyuso zingine!
Hatua ya 7: Chora Nyuso zingine!

Sasa tuna vipande vyote mahali pa kuteka nyuso zingine. Wanafunzi wetu kawaida hufikiria kuwa roboti inapaswa kuwa na uso wenye furaha ikiwa inasonga mbele. Inapoona kitu mbele yake, inasajili hali ya mshangao. Halafu inajiunga na kutazama pembeni, labda na macho yakisogea kuashiria mwelekeo gani utageuka.

Amri ya kuchora kuteka uso ni rahisi sana. Tunaweza kuchora duara kwa muhtasari wa uso na kujazwa kwenye miduara kwa kila jicho. Kinywa kinaweza kuwa mduara wa nusu kwa tabasamu na mduara uliojaa kwa hisia ya mshangao. Hapa ndipo mahali ambapo watoto wanaweza kutumia ubunifu wao kubinafsisha maneno. Wakati mwingine mimi huvuta sura mbaya kwa makusudi na huwauliza wanafunzi wanisaidie kuwafanya bora.

Unaweza kutumia kazi za display.height () na display.width () kupata saizi ya onyesho. Katika nambari hapa chini tulianzisha vigeuzi

upana-nusu = onyesha upanaji () / 2; urefu wa nusu-urefu = kuonyesha.

Ukifanya mahesabu haya mara nyingi, nambari hiyo ni haraka kidogo ikiwa imehesabiwa mara moja na kuhifadhiwa kwa kutofautisha. Hapa kuna mfano wa jinsi uso wa moja kwa moja unaochosha hapo juu unavyochorwa:

// tunafanya hivi mwanzoni mwa kila kitanzi

onyesha wazi Cleplay (); // chora uso mwepesi kwa onyesha usuli.fillCircle (nusu_upeo, urefu_wa urefu, 31, NYEUPE); // jicho la kushoto giza onyesha.fillCircle (half_width + 10, display.height () / 3, 4, BLACK); // chora laini moja kwa moja kwa onyesho la kinywa.drawLine (half_width - 10, display.height () / 3 * 2, half_width + 10, display. // mstari huu hutuma uso wetu mpya kwa onyesho la OLED kuonyesha.display ();

Hatua ya 8: Hatua ya 8: Badilisha kukufaa

Hatua ya 8: Badilisha kukufaa
Hatua ya 8: Badilisha kukufaa

Kuchora uso wa kimsingi ni mwanzo tu. Wanafunzi wanaweza kuunda tofauti nyingi. Wanafunzi wengi wameongeza spika ndogo ambayo hucheza sauti au sauti wakati wanazunguka.

Unaweza pia kujenga programu ndogo za majaribio ambazo zinasaidia wanafunzi wako kufunga waya kwa usahihi. Kwa mfano mshale (pembetatu) kwenye skrini itamwambia mwanafunzi mwelekeo wa gurudumu linapaswa kugeuka wakati unaunganisha motors. Mzunguko wa programu ya mtihani kupitia kila moja ya mwelekeo wa gari:

  1. Mbele kulia
  2. Kugeuza kulia
  3. Kushoto Mbele
  4. Reverse ya Kushoto

Kwa kila hali, skrini inasasishwa na onyesho mpya kuonyesha ni gurudumu gani linapaswa kugeuka na kwa mwelekeo gani.

Mfano wa programu hiyo iko hapa

github.com/dmccreary/coderdojo-robots/blob…

Kuna mifano mingi ya ziada na maelezo ya programu kwenye ukurasa wa CoderDojo Robots GitHub FaceBot.

Pia kuna toleo la robot ya FaceBot ambayo inaruhusu wanafunzi kubadilisha vigezo vyote vya kuzuia mgongano (kasi ya mbele, umbali wa kugeuza, wakati wa kugeuza, kasi ya kugeuza) moja kwa moja kwa kutumia onyesho. Hakuna kompyuta inayohitajika "kupanga" roboti hizi! Matoleo haya ni bora kwa MakerFairs na hafla ambazo hutaki kuvuta kompyuta kuzunguka.

Tafadhali tujulishe nyuso mpya wewe na wanafunzi wako mnakuja na nini!

Furaha ya kuweka alama!

Ilipendekeza: