Sisukord:
- Samm: mis on figuuri äratundmise probleem ja kuidas ma selle lahendasin
- 2. samm: kuidas asjad toimivad
- Samm: tööriistad ja komponendid
- 4. samm: skeemid (Fritzing)
- Samm 5: Protsess
- 6. samm: mõned fotod ja videod erinevatest etappidest
- Samm 7: lähtekood
Video: 4x4 elektroonilise malelaua demo/ Arduino Mega + RFID-lugejaga + Hall-efekti andurid: 7 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Tere tegijad, Olen Tahir Miriyev, lõpetanud Lähis -Ida tehnikaülikooli, Ankara/ Türgi, 2018. Ma õppisin rakendusmatemaatikat, kuid mulle meeldis alati asju valmistada, eriti kui see hõlmas elektroonikat, disaini ja programmeerimist käsitööna. Tänu ainulaadsele prototüüpimise kursusele, mida pakuti meie tööstusdisaini osakonnas, sain võimaluse teha midagi tõeliselt huvitavat. Projekti võib käsitleda kui tähtajalist projekti, mis kestis terve semestri (4 kuud). Õpilastele määrati ülesanne leida loominguline lähenemisviis juba olemasolevate toodete/demode kujundamiseks ning realiseerida oma ideed Arduino mikrokontrollerite ja andurite abil. Mõtlesin malele ja pärast edukate projektide kohta mõningast uurimistööd märkasin, et varasemates projektides kasutasid tegijad põhimõtteliselt valmis malemootoreid (kus iga figuuri kõik käigud olid programmeeritud tuumas) koos Raspberry Pi-ga, mõned MUX-id LED -id ja pilliroo lülitid. Kuigi oma projektis otsustasin malemootori mõttes vabaneda igasugusest välisest tarkvarast ja leida kujundite tuvastamise probleemile loominguline lahendus, kasutades RFID-lugejat, Hall-efekti andureid ja Arduino Megat.
Samm: mis on figuuri äratundmise probleem ja kuidas ma selle lahendasin
Lihtsamalt öeldes oletame, et teil on malelaud, millel on "aju" = mikrokontroller, ja peate oma lauale aru andma, millist figuuri teie käes hoidsite ja kuhu selle asetasite. See on joonise äratundmise probleem. Selle probleemi lahendus on tühine, kui teil on malemootor, mille kõik osad seisavad laual oma algsetel positsioonidel. Enne kui selgitan, miks see nii on, lubage mul teha mõned märkused.
Neile, kes on entusiastlikud selle üle, kuidas siin asjad käivad, pean täpsustama, miks meil on vaja pilliroo lüliteid (või minu puhul kasutasin Halli efekti andureid): kui panete iga tüki alla magneti ja võtate selle ruut tahvlil (eeldades, et iga ruudu all on pilliroo lüliti), kuna anduri kohal on/ei ole magnetvälja, saate oma kontrollerile selgeks teha, kas ruudul seisab tükk. Siiski ei ütle see endiselt mikrokontrollerile midagi selle kohta, milline tükk platsil seisab. See ütleb ainult, et ruudul on/pole tükki. Siinkohal seisame silmitsi figuuride äratundmise probleemiga, mida saab lahendada malemootori abil, pannes kõik tükid malemängu alguses oma algsetele positsioonidele. Nii saab mikrokontroller "teada", kus iga tükk seisab algusest peale, kõik aadressid on mälus fikseeritud. Sellegipoolest toob see meile kaasa tohutu piirangu: te ei saa valida, ütleme, suvalist arvu tükke ja asetada need juhuslikult ükskõik kuhu lauale ning hakata mängu analüüsima. Alustada tuleb alati algusest, kõik tükid peaksid algselt plaadil olema, sest ainult nii saab mikrokontroller oma asukohti jälgida, kui olete tüki üles tõstnud ja mõnele muule ruudule asetanud. Sisuliselt oli see probleem, mida märkasin ja otsustasin selle nimel tööd teha.
Minu lahendus oli üsna lihtne, kuigi loominguline. Asetasin RFID -lugeja tahvli esiküljele. Vahepeal kinnitasin tükkide alla mitte ainult magneti, vaid ka RFID -sildi, kusjuures igal tükil oli kordumatu ID. Seega, enne kui asetate kujundi soovitud ruudule, saate eseme kõigepealt RFID -lugeja lähedal hoida ja lasta sellel ID -d lugeda, tüki tuvastada, mällu salvestada ja seejärel paigutada selle kuhu soovite. Samuti kasutasin vooluahela disaini lihtsustamiseks pilliroo lülitite kasutamise asemel hall-efekti andureid, mis töötavad sarnaselt, ainsa erinevusega saadan digitaalandmetena mikrokontrollerile 0 või 1, mis tähendab "on olemas" või ruudul "pole ühtegi tükki". Lisasin ka valgusdioodid (kahjuks mitte sama värvi, neid polnud), nii et kui tükki tõstate, süttivad kõik ruudukujulised kohad, kuhu tõstetud tükk paigutada. Mõelge sellele kui maleõppijate harivale praktikale:)
Lõpetuseks tahaksin märkida, et hoolimata asjaolust, et kasutasin mitut tehnikat, jääb projekt lihtsaks ja arusaadavaks, mitte põhjalikult välja töötatud ega üleliia keeruliseks. Mul ei olnud piisavalt aega 8x8 malelauaga jätkamiseks (ka sellepärast, et Türgis on 64 saaliefekti andurit kulukas, katsin kõik projektiga seotud kulud), seetõttu tegin 4x4 demoversiooni, kus oli testitud ainult kaks tükki: Pant ja Kuninganna. Malemootori kasutamise asemel kirjutasin Arduino lähtekoodi, mis genereerib kõik, mida näete alloleval videol.
2. samm: kuidas asjad toimivad
Enne kui läheme samm-sammult selgituse juurde, kuidas projekt tehti, arvan, et parem oleks vaadata illustreerivat videot ja saada intuitiivne ettekujutus sellest, millest ma räägin.
Märkus nr 1: üks punastest LED -idest (esimene reas/ vasakult paremale) põles läbi, pole hullu.
Märkus nr 2: kuigi seda kasutatakse laialdaselt, võin oma kogemuste põhjal öelda, et RFID -tehnoloogia ei ole parim idee kasutada isetegemise rakendustes (muidugi kui teil on alternatiive). Enne kui kõik toimis, tegin palju katseid, pannes malendid lugeja lähedale ja oodates, kuni see loeb ID -d õigesti. Seeriaport tuleks selleks seadistada, sest see, kuidas RFID -lugeja ID -d loeb, on lihtsalt peavalu. Probleemi mõistmiseks tuleks ise proovida. Kui vajate rohkem abi, saatke mulle meilisõnum ([email protected]) või lisage skype'i (tahir.miriyev9r1), et saaksime vestluse ajastada ja asju üksikasjalikult arutada, selgitan kõike põhjalikult.
Samm: tööriistad ja komponendid
Siin on kõigi projekti jaoks kasutatud tööriistade loend: Elektroonilised komponendid:
- Leivalaud (x1)
- Suunatud A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) Halli efekti andurid (x16)
- Põhilised 5 mm LED -id (x16)
- Jumper juhtmed
- 125 kHz RFID -lugeja ja antenn (x1)
- Arduino Mega (x1)
- RFID 3M sildid (x2)
Muud materjalid:
- Plexiglass
- Läikiv paber
- lühikesed plangud (puidust)
- Akrüülvärv (tumeroheline ja kreemjas) x2
- Õhuke papp
- 10 mm ümmargused magnetid (x2)
- Ettur ja kuninganna tükid
- Jootekolb ja jootmismaterjalid
4. samm: skeemid (Fritzing)
Skeemid on natuke keerulised, ma tean, kuid idee peaks olema selge. See oli esimene kord, kui ma Fritzingi kasutasin (muide väga soovitatav), ilmselt saaks seoseid täpsemalt joonistada. Igatahes märkisin skeemi kõik üles. Märkus: ma ei leidnud Fritzingi andmebaasi komponentide hulgast RDIF -lugeja täpset mudelit. Minu kasutatav mudel on 125Khz RFID moodul - UART. Youtube'ist leiate õpetusi selle mooduli seadistamiseks Arduino abil.
Samm 5: Protsess
Aeg selgitada, kuidas asjad tehti. Palun järgige samm-sammult kirjeldust:
1. Võtke laua ülemise osa seinte lõikamiseks ja liimimiseks 21x21 cm paksune papp, samuti mõni lisapapp, et teha 16 ruutu koos A B C D 1 2 3 4 loendiga. Kuna papp on õhuke, saate igasse ruutu kleepida 16 saaliefekti andurit, 3 jalaga ja 16 LED-i kahe jalaga.
2. Pärast komponentide seadistamist peate tegema jootmist, Hall-efekti andurite jalgade jootmist ja hüpikjuhtmete LED-e. Siinkohal soovitaksin valida värvilised juhtmed nutikalt, et mitte segi ajada LED -ide + ja - jalgadega, samuti Hall -efekti andurite VCC, GND ja PIN -jalgadega. Muidugi võib printida trükkplaadi, millel on andurid ja isegi WS2812 tüüpi LED -id, mis on juba joodetud, kuid otsustasin projekti lihtsana hoida ja teha veel mõnda "käsitööd". Siinkohal ei ole vaja teha muud, kui valmistada ette juhtmed ja andurid. Fritzingu skeemist tulenevatel hilisematel etappidel näete, kuhu peaksite iga juhtme otsa kinnitama. Mõne aja pärast lähevad mõned neist otse Arduino Mega PIN -koodide juurde (neid on Arduino -s piisavalt), teised leivalauale ja kõik GND -d saab joota ühe nöörijupiga (tehes ühise keele), mis hiljem peaks olema ühendatud Arduino tahvli GND -ga. Siin on üks oluline märkus: Halli efekti andurid on OMNIDIRECTIONAL, mis tähendab, et pole vahet, millist magneti poolust hoitakse anduri lähedal, see saadab 0 andmeid, kui läheduses on mõni magnetväli ja 1, kui seda pole, nimelt on magnet andurist eemal (rohkem kui 5 sm).
3. Valmistage ette sarnane 21x21 cm papp ja kinnitage sellele Arduino Mega ja pikk leivalaud. Samuti saate papist uuesti lõigata 4 soovitud kõrgusega seina ja liimida need vertikaalselt nende kahe 21x21 cm ruudukujulise plaadi kihiga. Seejärel järgige seadistamiseks Fritzingu skeeme. RFID-lugeja saate seadistada ka pärast seda, kui olete LEDide ja Halli efekti anduritega lõpetanud.
4. Kontrollige, kas kõik LED -id ja andurid töötavad, saates põhikoodide abil signaale. Ärge vältige seda sammu, kuna see võimaldab teil testida, kas kõik töötab korralikult, ja minna plaadi edasisele ehitamisele.
5. Valmistage ette ettur ja kuninganna, mille külge on kinnitatud kaks 10 cm raadiusega magnetit, samuti ümarad RFID -sildid. Hiljem peate lugema nende siltide ID -d Arduino IDE jadakuval.
6. Kui kõik töötab suurepäraselt, võite käivitada põhikoodi ja proovida asju!
7 (valikuline). Võite teha puiduga kunstiteoseid, mis annavad teie demole loomulikuma vaate. See sõltub teie tahtest ja kujutlusvõimest.
6. samm: mõned fotod ja videod erinevatest etappidest
Samm 7: lähtekood
Nüüd, kui oleme prototüübiga valmis saanud, oleme valmis selle ellu viima alloleva Arduino koodiga. Püüdsin jätta võimalikult palju kommentaare, et muuta koodi analüüsimise protsess arusaadavaks. Ausalt öeldes võib loogika esmapilgul tunduda pisut keeruline, kuid kui süveneda koodi loogikasse, näeb see välja kõikehõlmavam.
Märkus: Sarnaselt päris malelauale loendasin ma ruudud abstraktselt A1, A2, A3, A4, B1,…, C1,…, D1,.., D4. Kuid koodis pole seda märget praktiline kasutada. Seetõttu kasutasin massiive ja kujutasin ruute vastavalt 00, 01, 02, 03, 10, 11, 12, 13,…, 32, 33.
Täname tähelepanu eest! Testige kõike ja kirjutage kommentaarides mis tahes puudustest, mis mul puudusid, parandustest, soovitustest jne. Ootan huviga mõningaid arvamusi projekti kohta. Kui vajate projektiga seotud abi, saatke mulle kiri (miriyevt@gmail).com) või lisage skype'i (tahir.miriyev9r1), et saaksime vestluse ajastada ja asju üksikasjalikult arutada. Palju edu!