Mündəricat:

4x4 elektron şahmat taxtasının nümayişi/ Arduino Mega + RFID oxuyucusu + Hall effektli sensorlar ilə: 7 addım
4x4 elektron şahmat taxtasının nümayişi/ Arduino Mega + RFID oxuyucusu + Hall effektli sensorlar ilə: 7 addım

Video: 4x4 elektron şahmat taxtasının nümayişi/ Arduino Mega + RFID oxuyucusu + Hall effektli sensorlar ilə: 7 addım

Video: 4x4 elektron şahmat taxtasının nümayişi/ Arduino Mega + RFID oxuyucusu + Hall effektli sensorlar ilə: 7 addım
Video: Электросамокаты 2021 КАКОЙ ВЫБРАТЬ Какие бывают Электросамокат 2021 для города взрослых подростков 2024, Noyabr
Anonim
4x4 elektron şahmat taxtasının nümayişi/ Arduino Mega + RFID oxuyucusu + Hall effektli sensorlar ilə
4x4 elektron şahmat taxtasının nümayişi/ Arduino Mega + RFID oxuyucusu + Hall effektli sensorlar ilə

Salam ustalar, Mən Tahir Miriyevəm, Orta Doğu Texniki Universitetinin 2018 məzunu, Ankara/ Türkiyə. Mən Tətbiqi Riyaziyyat ixtisasına yiyələnmişəm, amma həmişə elektronika, dizayn və proqramlaşdırma ilə bağlı bəzi əl işləri ilə məşğul olan şeylər etməyi çox sevirdim. Sənaye Dizayn şöbəmizdə təqdim olunan unikal prototip kursu sayəsində həqiqətən maraqlı bir şey etmək şansı qazandım. Layihə bütün bir semestr (4 ay) davam edən Müddətli Layihə kimi qəbul edilə bilər. Şagirdlərə, artıq mövcud olan məhsulların/demoların dizaynına yaradıcı bir yanaşma tapmaq və Arduino mikro nəzarətçiləri və sensorlarından istifadə edərək fikirlərini həyata keçirmək vəzifəsi verildi. Şahmat haqqında düşünürdüm və müvəffəqiyyətli layihələr üzərində bir az araşdırma apardıqdan sonra, əvvəlki layihələrdə istehsalçıların Raspberry Pi ilə birlikdə bəzi MUX ilə birlikdə hazır şahmat mühərriklərindən (hər fiqurun bütün hərəkətlərinin proqramlaşdırıldığı) istifadə etdiklərini gördüm. es, LED və qamış açarları. Layihəmdə, baxmayaraq ki, şahmat mühərriki baxımından hər hansı bir xarici proqramdan qurtulmağa və RFID oxuyucusu, Hall effektli sensorlar və Arduino Mega istifadə edərək Şəkil Tanıma problemi üçün yaradıcı bir həll tapmağa qərar verdim.

Addım 1: Şəkil Tanıma Problemi nədir və onu necə həll etdim

Şəkil Tanıma Problemi nədir və onu necə həll etdim
Şəkil Tanıma Problemi nədir və onu necə həll etdim

Sadə dillə desək, "beyin" = mikrokontrolörlü bir şahmat taxtanız olduğunu və lövhənizdə əlinizdə hansı fiquru tutduğunuzu və haraya qoyduğunuzu anlamalısınız. Şəkil Tanıma problemi budur. Şahmat mühərrikiniz olduqda, bütün parçaları lövhədə ilkin mövqelərində dayandığınızda bu problemin həlli əhəmiyyətsizdir. Niyə belə olduğunu izah etməzdən əvvəl bəzi fikirlərimi bildirim.

İşlərin burada necə işlədiyinə həvəsli olanlar üçün, qamış açarlarına niyə ehtiyacımız olduğuna aydınlıq gətirməliyəm (və ya mənim vəziyyətimdə Hall effektli sensorlar istifadə etdim): hər parçanın altına maqnit qoyub götürsəniz lövhədə bir kvadrat (hər kvadratın altında bir qamış açarı olduğunu düşünərək) sensorun üstündəki maqnit sahəsinin olmaması/olmaması səbəbindən meydanda dayanan bir parçanın olub olmadığını nəzarətçinizə bildirə bilərsiniz.. Ancaq yenə də mikrokontrolöre meydanda tam olaraq hansı parçanın dayandığı barədə heç nə demir. Yalnız meydanda bir parça olmadığını/olmadığını söyləyir. Bu nöqtədə, şahmat mühərriki ilə həll edilə bilən, şahmat oyunu başlayanda bütün parçaları ilkin mövqelərinə qoyaraq Fiqur Tanıma problemi ilə üz -üzəyik. Bu şəkildə mikrokontrolör, hər bir parçanın əvvəldən harada dayandığını, bütün ünvanların yaddaşda sabitləndiyini "bilir". Buna baxmayaraq, bu bizə böyük bir məhdudiyyət gətirir: məsələn, hər hansı bir ədəd seçə və onları təsadüfi olaraq lövhənin istənilən yerinə yerləşdirə və oyunu təhlil etməyə başlaya bilməzsən. Həmişə əvvəldən başlamalısınız, bütün parçalar əvvəlcə lövhədə olmalıdır, çünki bir parçanı qaldırıb başqa bir meydanda yerləşdirdikdən sonra mikrokontrolörün yerlərini izləməsinin yeganə yolu budur. Əslində bu, fərq etdiyim və çalışmağa qərar verdiyim problem idi.

Yaradıcılığa baxmayaraq həllim olduqca sadə idi. Bir lövhənin ön tərəfinə RFID oxuyucusu qoydum. Eyni zamanda, yalnız parçaların altına bir maqnit deyil, həm də RFID etiketi bağladım, hər bir parçanın özünəməxsus bir şəxsiyyəti var. Beləliklə, istənilən fiquru hər hansı bir yerə qoymadan əvvəl parçanı RFID oxuyucusuna yaxın tuta və şəxsiyyətini oxumasına icazə verə bilərsiniz, parçanı müəyyənləşdirə, yaddaşda saxlaya və sonra istədiyiniz yerə yerləşdirə bilərsiniz. Ayrıca, dövrə dizaynını asanlaşdırmaq üçün qamış açarları istifadə etmək əvəzinə, "var" mənasını verən rəqəmsal məlumat olaraq mikro nəzarətçiyə 0 və ya 1 göndərməyin yeganə fərqi ilə eyni şəkildə işləyən zal effektli sensorlar istifadə etdim. və ya meydanda hər hansı bir parça "yoxdur". Parçanı qaldırdığınız zaman, qaldırılmış bir parçanın yerləşdirilə biləcəyi bütün kvadrat yerlərin yanması üçün LEDləri də əlavə etdim (təəssüf ki, eyni rəngdə deyil, onlarda yox idi). Bunu şahmat öyrənənlər üçün bir təhsil praktikası olaraq düşünün:)

Son olaraq qeyd etmək istərdim ki, bir neçə texnikadan istifadə etməyimə baxmayaraq, layihə sadə və başa düşüləndir, dərindən işlənməmiş və mürəkkəb deyil. 8x8 şahmat taxtasına davam etmək üçün kifayət qədər vaxtım yox idi (həm də Türkiyədə 64 zal effekti sensoru baha başa gəldiyindən, layihə ilə əlaqədar bütün xərcləri öz üzərimə götürmüşəm), buna görə də 4x4 demo versiyasını yalnız iki ədəd sınaqdan keçirmişəm: Piyada və Kraliça. Bir şahmat mühərriki istifadə etmək əvəzinə, aşağıdakı videoda görəcəyiniz hər şeyi yaradan Arduino üçün bir mənbə kodu yazdım.

Addım 2: İşlər necə işləyir

Image
Image

Layihənin necə edildiyini addım-addım izah etməyə keçməzdən əvvəl, bir illüstrasiyalı videoya baxmaq və danışdığım mövzu ilə bağlı intuitiv bir fikir əldə etmək daha yaxşı olardı.

Qeyd #1: qırmızı LED -lərdən biri (ilk növbədə/ soldan sağa) yanır, ağlına gəlmir.

Qeyd #2: geniş istifadə olunsa da, təcrübəmdən deyə bilərəm ki, RFID Texnologiyası DIY tətbiqlərində istifadə etmək üçün ən yaxşı fikir deyil (əlbəttə alternativləriniz varsa). Hər şey işə düşməzdən əvvəl şahmat fiqurlarını oxucunun yanına qoyub şəxsiyyət vəsiqəsinin düzgün oxunmasını gözləməklə bir çox sınaqlardan keçdim. Bunun üçün seriya portu qurulmalıdır, çünki RFID oxuyucunun şəxsiyyəti oxuması yalnız baş ağrısıdır. Məsələni başa düşmək üçün insan özünü sınamalıdır. Daha çox yardıma ehtiyacınız varsa, mənə bir mesaj göndərin ([email protected]) və ya skype əlavə edin (tahir.miriyev9r1), belə ki, bir söhbət planlaşdıra və hər şeyi ətraflı müzakirə edə bilək, hər şeyi ətraflı izah edəcəyəm.

Addım 3: Alətlər və Komponentlər

Alətlər və Komponentlər
Alətlər və Komponentlər
Alətlər və Komponentlər
Alətlər və Komponentlər
Alətlər və Komponentlər
Alətlər və Komponentlər

Layihə üçün istifadə etdiyim bütün vasitələrin siyahısı: Elektron komponentlər:

  • Çörək paneli (x1)
  • Çox yönlü A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) Hall effektli sensorlar (x16)
  • Əsas 5 mm LED (x16)
  • Jumper telləri
  • 125 kHz RFID Oxucu və Anten (x1)
  • Arduino Mega (x1)
  • RFID 3M Etiketləri (x2)

Digər materiallar:

  • Pleksiglas
  • Parlaq kağız
  • qısa taxtalar (taxta)
  • Akril boya (tünd yaşıl və krem) x2
  • İncə karton
  • 10 mm yuvarlaq maqnit (x2)
  • Piyada və Kraliça parçaları
  • Lehimləmə dəmiri və lehimləmə materialları

Addım 4: Şemalar (Fritzing)

Sxemlər (Fritzing)
Sxemlər (Fritzing)

Sxemalar bir az mürəkkəbdir, bilirəm, amma fikir aydın olmalıdır. İlk dəfə Fritzing -dən istifadə etdim (yeri gəlmişkən çox tövsiyə olunur), ehtimal ki, əlaqələr daha dəqiq tərtib edilə bilər. Hər halda, sxemdəki hər şeyi qeyd etdim. Qeyd: Fritzing verilənlər bazasındakı komponentlər arasında dəqiq RDIF Reader modelini tapa bilmədim. İstifadə etdiyim model 125Khz RFID moduludur - UART. Youtube -da bu modulu Arduino ilə necə quracağınıza dair dərslər tapa bilərsiniz.

Addım 5: Proses

Proses
Proses

İşlərin necə edildiyini izah etməyin vaxtı gəldi. Zəhmət olmasa addım-addım təsviri izləyin:

1. A B C D 1 2 3 4 olan 16 kvadrat düzmək üçün lövhənin yuxarı hissəsinin divarlarını kəsmək və yapışdırmaq üçün 21x21 sm ölçülü bir karton və bir az əlavə karton götürün. Karton nazik olduğundan, hər bir ayağa 3 ayaqlı və hər biri 2 ayaqlı 16 LED olan 16 zala təsirli sensoru yapışdıra bilərsiniz.

2. Komponentləri qurduqdan sonra, Hall effektli sensorların ayaqlarını və LED-ləri keçid tellərinə lehimləmək üçün bir az lehim etməlisiniz. Bu nöqtədə, rəngli telləri ağıllı bir şəkildə seçməyi məsləhət görürəm ki, LED -lərin + və - ayaqları, eyni zamanda Hall effektli sensorların VCC, GND və PIN ayaqları ilə qarışmasın. Əlbəttə ki, sensorları olan bir PCB və hətta WS2812 tipli LED -lər artıq çap edilə bilər, amma layihəni sadə saxlamağa və bir az daha "əl işi" etməyə qərar verdim. Bu nöqtədə, etməniz lazım olan hər şey kordon və sensorlar hazırlamaqdır, sonrakı mərhələlərdə Fritzing sxemindən sonra hər bir telin ucunu harada bağlamalı olduğunuzu görə bilərsiniz. Qısa müddətdə bəziləri birbaşa Arduino Mega -dakı PIN -lərə gedəcəklər (Arduinoda kifayət qədər var), digərləri çörək taxtasına və bütün GND -lər daha sonra tək bir kordona (ümumi zəmin) lehimlənə bilər. Arduino lövhəsində GND -yə qoşulmalıdır. Burada vacib bir qeyd: Hall effekti sensörleri OMNİDİRECTIONAL -dır, yəni maqnitin hansı dirəyinin sensorun yaxınlığında saxlanılmasının heç bir əhəmiyyəti yoxdur, yaxınlıqda bir maqnit sahəsi olarkən 0 məlumat göndərəcək, olmadıqda isə 1, yəni maqnit sensordan uzaqdır (5 sm -dən çox deyil).

3. Oxşar 21x21 sm ölçülü karton hazırlayın və üzərinə Arduino Mega və uzun bir çörək taxtası düzəldin. İstənilən yüksəklikdə olan 4 divarı yenidən kartondan kəsə və 21x21 sm ölçüdə olan bu iki təbəqə ilə şaquli şəkildə yapışdıra bilərsiniz. Sonra hər şeyi qurmaq üçün Fritzing Schematics -ə əməl edin. LEDlər və Hall effektli sensorlar bitdikdən sonra RFID oxuyucusunu da təyin edə bilərsiniz.

4. Əsas kodlardan istifadə edərək siqnal göndərərək bütün LED və sensorların işləyib -işləmədiyini yoxlayın. Bu addımdan qaçmayın, çünki hər şeyin düzgün işlədiyini yoxlamağa və lövhənin daha da qurulmasına keçməyə imkan verəcəkdir.

5. Aşağıda 10 sm radiuslu iki maqnit və yuvarlaq RFID etiketləri olan Piyon və Kraliça hazırlayın. Daha sonra, Arduino IDE -də Serial Screen -dən həmin etiketlərin kimliklərini oxumalı olacaqsınız.

6. Hər şey əla işləyirsə, əsas kodu işə sala və hər şeyi sınaya bilərsiniz!

7 (isteğe bağlı). Demonuza daha təbii bir görünüş verəcək ağacdan bədii işlər edə bilərsiniz. Bu sizin təsəvvürünüzə və iradənizə bağlıdır.

Addım 6: Fərqli Mərhələlərdən Bəzi Foto və Videolar

Image
Image
Fərqli Mərhələlərdən Bəzi Foto və Videolar
Fərqli Mərhələlərdən Bəzi Foto və Videolar
Fərqli Mərhələlərdən Bəzi Foto və Videolar
Fərqli Mərhələlərdən Bəzi Foto və Videolar

Addım 7: Mənbə Kodu

Mənbə Kodu
Mənbə Kodu

İndi bir prototip hazırlandıqda, aşağıdakı Arduino kodu ilə həyata keçirməyə hazırıq. Kod təhlili prosesini başa düşülməsi üçün bacardığım qədər şərh yazmağa çalışdım. Düzünü desəm, məntiq ilk baxışdan bir az mürəkkəb görünə bilər, amma kodun məntiqini dərindən araşdırsanız, daha əhatəli görünəcək.

Qeyd: Əsl şahmat taxtasına bənzər olaraq, mən özüm kvadratları A1, A2, A3, A4, B1,…, C1,…, D1,.., D4 kimi saydım. Ancaq kodda bu işarəni istifadə etmək praktik deyil. Buna görə də seriallardan istifadə etdim və kvadratları sırasıyla 00, 01, 02, 03, 10, 11, 12, 13,…, 32, 33 kimi təqdim etdim.

Diqqətinizə görə təşəkkürlər! Hər şeyi sınayın və əldən verdiyim hər cür səhvlər, təkmilləşdirmələr, təkliflər və s. Haqqında şərhlərdə yazmaqda sərbəst olun. Layihə ilə bağlı bəzi fikirləri eşitməyi səbirsizliklə gözləyirəm. Layihə ilə bağlı hər hansı bir yardıma ehtiyacınız varsa, mənə məktub göndərin (miriyevt@gmail).com) və ya skype -a əlavə edin (tahir.miriyev9r1), belə ki, bir söhbət planlaşdıra və hər şeyi ətraflı müzakirə edə bilərik. Uğurlar!