Mündəricat:

Geek Spinner: 14 addım (şəkillərlə)
Geek Spinner: 14 addım (şəkillərlə)

Video: Geek Spinner: 14 addım (şəkillərlə)

Video: Geek Spinner: 14 addım (şəkillərlə)
Video: Как ВЫПРОСИТЬ у мамы АЙФОН? А годный лайфхак просит у тебя подписку 😀 2024, Iyul
Anonim
Image
Image
Geek Spinner
Geek Spinner
Geek Spinner
Geek Spinner
Geek Spinner
Geek Spinner

Fidget əyiricilər əyləncəlidir və bu günlərdə bir neçə dollara hər hansı bir çıxış sayğacında tapa bilərsiniz, amma öz əlinizlə qura bilsəniz nə olar? Və LEDləri var idi? İstədiyinizi söyləmək və ya göstərmək üçün proqramlaşdıra bilərsinizmi? Bu coşqun səslənirsə, BU SİZİN ÜÇÜN PROJƏDİR.

Uşaqları proqramlaşdırma ilə maraqlandırmaq üçün həmişə yanıb -sönən LED -lərdən istifadə etməklə maraqlanmışam. Arduino mikrokontrolörünün ən sadə layihəsi, LED -i yandırıb söndürməkdir. Sonra LED -in davamlı olaraq (təxminən 12 millisaniyə aralığında) görünməmişdən əvvəl nə qədər sürətli yanıb -sönə biləcəyini görürsünüz. Sonra LED -i irəli -geri silkələyirsən və yenə yanıb -sönəcəyini görə bilərsən! Bu fenomenə "görmə davamlılığı" (POV) deyilir və bu layihə necə işləyir. Həm gözün necə işlədiyini, həm də kompüterlərin inanılmaz dərəcədə sürətli olduğunu müzakirə edə bilər.

Bu layihədə proqramlaşdırıla bilən 8 bitlik mikro nəzarətçi, səkkiz LED və bir sikkə hüceyrəsi istifadə olunur. Standart skeytbord yatağından istifadə edərək fırlanır və fırlanmanı təyin etmək üçün Hall effekti sensoru və maqnitdən istifadə edir. Başlanğıc dostu delikli hissələrdən istifadə etməklə hazırlanır və Arduino proqramlaşdırma mühiti ilə proqramlaşdırıla bilər. Kifayət qədər danışaq, başlayaq…

Addım 1: Parçaları, Alətləri və Təchizatları toplayın

Image
Image
Parçaları, Alətləri və Təchizatları toplayın
Parçaları, Alətləri və Təchizatları toplayın

Yarım yolda qurmaq və bir şey itirdiyinizi tapmaq həmişə sinir bozucudur. Çalışdığım və yaxşı işlədiyini gördüyüm hissələr bunlardır. Öz riski ilə əvəz edin:

Materiallar Bill =================

  • 1 ea, Purple PCB, ABŞ -da OSH Park tərəfindən məhəbbətlə istehsal edilmişdir
  • 1 ea, Attiny 84, Atmel ATTINY84A-PU,
  • 1 ea, toxunma açarı, TE 1825910-6,
  • 1 ea, Delikdən Keçid SPDT, C&K JS202011AQN,
  • 1 ea, Batareya tutacağı, Linx BAT-HLD-001-THM,
  • 8 ea, 3 mm Qırmızı LED 160 Mcd, Wurth 151031SS04000,
  • 8 ea, 330 ohm 1/8 W, Stackpole CF18JT330R,
  • 1 ea, 0.1 uF qapaq, KEMET C320C104M5R5TA,
  • 1 ea, Maqnit açarı, Melexis MLX92231LUA-AAA-020-SP,
  • 1 ea, 608 Kaykay Rulmanı,
  • 1 ea, kiçik nadir torpaq maqnit 2mm x 1mm,
  • 2 ədəd, 3D çaplı qapaqlar (STL faylı əlavə olunur).
  • 1 ea, CR2032 batareya, Panasonic BSP və ya buna bərabər,

Alətlər və Təchizatlar: Seminarlarım üçün cımbız istisna olmaqla ehtiyacınız olan hər şeyə sahib olan SparkFun Başlayanlar Toolkitindən istifadə edirəm:

  • Lehimleme dəmir.
  • SolderWire
  • Səliqəli kəsiklər (5 dollarlıq Hakko CHP170-i sevirəm!)
  • Sökülən örgü
  • Super yapışqan

Attini proqramlaşdırma (4 -cü addım, bunu kit olaraq alsanız lazım deyil):

  • Arduino (ucuz Çin klonlarından çəkinin və ABŞ Açıq Mənbə İstehsalatınızı dəstəkləyin).

    • SparkFun Redboard
    • Adafruit metrosu
    • Arduino UNO
  • AVR Proqramlaşdırma Qalxanı.
  • Pogo adapteri (çip quraşdırılmış proqramlaşdırma varsa).
  • Uno üçün standart USB A-B, Redboard üçün USB Mini və ya Metro üçün USB Micro.

Bu layihə üçün bir dəst Tindie.com saytında mövcuddur (eksi batareya). Kitin alınması bir çox fərqli satıcıdan sifariş vermək üçün vaxtınıza və xərcinizə qənaət edəcək və minimum PCB sifariş mükafatından qaçınacaqdır. Ayrıca, bir Attiny proqramlaşdırması da əhəmiyyətsiz deyil və kiti satın alsanız, artıq əvvəlcədən proqramlaşdırılmış olacaq. Seminarlarımda digər layihələrimi inkişaf etdirməyimə və paylaşmağımda mənə kömək edəcəksiniz!

Addım 2: Müqavimət vacibdir

Müqavimət vacibdir
Müqavimət vacibdir
Müqavimət vacibdir
Müqavimət vacibdir
Müqavimət vacibdir
Müqavimət vacibdir

Bir dəst qurma təcrübəniz olduğunu düşünürük. Lehimləmə işinə ehtiyacınız varsa, www.sparkfun.com/tutorials/213 ünvanına baş çəkin və ya Geek Girl -un https://www.youtube.com/embed/P5L4Gl6Q4Xo ünvanında izahını izləyin. Https://www.tindie.com/products/3447/ saytında yeni başlayanlar üçün uyğun bir dəstim də var.

Rezistordan başlamağı sevirəm, çünki a) lehimləmə yivinizə girərkən və dəmir istiliyinə yaxınlaşanda nisbətən istiliyə davamlıdır, b) qütbləri yoxdur, buna görə oriyentasiya kritik deyil və c) onlar lövhədə ən aşağı komponent olduğundan, lehim edərkən sıx oturun. LEDlərin hər biri üçün səkkiz 330 ohm cərəyan məhdudlaşdıran rezistor var. Bir anda və ya bir anda səkkizini edə bilərsiniz.

  • Kabelləri yastıqların eninə bükün və rezistoru daxil edin.
  • Lövhəni çevirin və telləri lehimləyin.
  • Yivləri kəsiklərlə kəsin.
  • Geek dostlarınızı heyrətləndirmək istəyirsinizsə, onları yenidən dəmirlə vurun.

Addım 3: Kod?

Kod?
Kod?
Kod?
Kod?
Kod?
Kod?
Kod?
Kod?

Kitimi satın alsanız, çip əvvəlcədən proqramlaşdırılmışdır və növbəti addıma keçə bilərsiniz.

Bəli, bu layihənin bəzi kodlara ehtiyacı var. Və əgər diqqət edirsinizsə, 1 -ci addımda sizə Attini proqramlaşdırmanın əhəmiyyətsiz olmadığını söylədim. Arduinodan istifadə edirəm, proqramlaşdırma mühiti, AVR proqramçım və bir pogo pin jig.

Çip yerində lehimlənmədən əvvəl proqramlaşdırıla bilər (şəkil 2) və ya PCB -nin altındakı ISP başlığından istifadə edərək lehimləndikdən sonra (şəkil 3). Hər iki halda da proqramlaşdırma aşağıdakı kimidir:

  • Arduino Proqramlaşdırma mühitini yükləyin.
  • Attiny 85 üçün dəstəyi aşağıdakılardan quraşdırın:

    • https://highlowtech.org/?p=1695 (Arduino Tiny)
    • https://github.com/SpenceKonde/ATTinyCore (Attiny Core)
  • "Arduino ISP eskizini" yükləyin: [Fayl] -> [Nümunələr] -> [Arduino ISP olaraq].
  • AVR Proqramlaşdırma Qalxanına qoşun və lent kabelini Attiny84 mövqeyinə daxil edin
  • Pogo Adapter istifadə edirsinizsə, lövhədəki ISP başlığına yerləşdirin. Müsbət və mənfi yastıqlar işarələnir, beləliklə başlığı düzgün istiqamətləndirə bilərsiniz.
  • Çipdən istifadə edirsinizsə, onu bir pinlə USB konnektoruna doğru daxil edin.
  • Doğru çipi seçin:

    • Arduino Tiny: "Attiny 84 @ 8 Mhz"
    • Attiny Core: "Attiny 24/44/84"

      • Çip "Attiny 84"
      • 8 MHz (Daxili)
      • "Saat əqrəbinin əksinə" işarələndirmə
  • Proqramçı seçin, [Alətlər] -> [Proqramçı] -> [ISP olaraq Arduino]
  • Proqramlaşdırma qoruyucularını təyin edin, [Alətlər] -> [Bootloader Yazdır]
  • Əlavə edilmiş eskizi yükləyin, [Fayl] -> [Proqramçıdan istifadə edərək yükləyin]

Aldığım ən böyük səhv mənbəyi, pinlərin düzgün hizalanmamasıdır.

Addım 4: Çip edin

Çip edin
Çip edin
Çip et
Çip et
Çip et
Çip et
Çip edin
Çip edin

İndi çipinizin üzərində kod olduğu üçün onu quraşdıra bilərsiniz. Bir DIP çipinin istiqaməti ("ikili sıralı paket") ümumiyyətlə bir pinlə bitişik bir çuxurla və ya burada olduğu kimi çipin ucunda bir pinlə göstərilir.

  • Uçları düz bir səthə basaraq 90 dərəcəyə bükün (şəkillər 1 və 2).
  • Çipi PCB üzərindəki simvolu ilə uyğunlaşdırın və çipi daxil edin (şəkil 3).
  • Qarşı tərəflərə bir pin qoyun və hər iki çipin PCB -yə düz olduğunu və oriyentasiyanın düzgün olub olmadığını yoxlayın. Bundan sonra düzəltmək həqiqətən çətin olacaq. Bu işdə mənə inanın.
  • Doğru olduğundan əmin olduqdan sonra qalan sancaqları lehimləyin və sonra yuyun.

Addım 5: Açar və Kondansatör

Açar və Kondansatör
Açar və Kondansatör
Açar və Kondansatör
Açar və Kondansatör

Düymə IC -nin yanına, digər tərəfdəki kondansatörə gedir.

  • Düyməni yerinə itələyin (düzgün istiqamətdə olduğundan əmin olun).
  • Yerinə lehimləyin.
  • İpləri arxadan kəsin.

Kondansatörün oriyentasiyası yoxdur, ancaq yazılan tərəfi kənara qoysanız, geek dostlarınız hansı dəyərdən istifadə etdiyinizi biləcəklər.

Addım 6: Şalter və Batareya Tutacağı

Anahtar və Batareya Tutacağı
Anahtar və Batareya Tutacağı
Anahtar və Batareya Tutacağı
Anahtar və Batareya Tutacağı
Anahtar və Batareya Tutacağı
Anahtar və Batareya Tutacağı
Anahtar və Batareya Tutacağı
Anahtar və Batareya Tutacağı

Keçid səviyyəni kənara işarə edərək gedir. Digər əşyalar kimi, iki sancağı da lehimləyin, düz oturduğunu yoxlayın və sonra qalanını lehimləyin.

Batareya tutucusunda istiqaməti göstərmək üçün işarələr var, amma bunun heç bir əhəmiyyəti yoxdur. Bununla birlikdə, adi aparatlara nisbətən bir az daha çox istilik tələb edəcək və batareyanı yerində saxlamaq üçün oturduğundan əmin olmalısınız (şəkil 4).

Addım 7: LEDlər

LEDlər
LEDlər
LEDlər
LEDlər
LEDlər
LEDlər
LEDlər
LEDlər

Ən azı bir LED daxil olmayan layiqli bir layihə yoxdur. Bunun səkkiz var!

Uzun qurğuşun müsbətdir (anod). İpək ekranında "+" işarəsi var və pad kvadratdır. Səkkizin hamısını bir anda edirsinizsə, bütün istiqamətlərin düzgün olduğuna əmin olmaq üçün onları yuxarı qaldırın.

  • Hər LED -də bir ədəd lehim.
  • İstiqamətini və düz oturduqlarını yoxlayın (şəkil 3).

    Əgər belə deyilsə, barmağınızla qutuya basın və qurğunu yerinə oturana qədər yenidən qızdırın (şəkil 4)

  • Qalanları lehimləyin.
  • İpləri kəsin.

Addım 8: Yoxlayın

Image
Image
Dönmə vaxtı
Dönmə vaxtı

Bu nöqtədə LEDləri yoxlaya və söndürə bilərik:

  • Müsbət tərəfi xaricə doğru olan bir batareyanı daxil edin.
  • Döndürücüyü yandırın və sonra hamısı (inşallah) LEDlər yanana qədər düyməni basın (videoya baxın).
  • Əyiricini döndərin və naxışa baxın. Bir LED yanmırsa, geriyə quraşdırıla bilər və ya istilikdən zədələnmiş ola bilər. Lehimdən çıxarın və yenisini qoyun.

Giderme:

  • LED yanmırsa:

    • Batareyanızın yaxşı və düzgün istiqamətdə olduğundan əmin olun.
    • Çipinizi proqramlaşdırdınızmı? Doğru istiqamətdədirmi? Isinirmi?
    • LEDlər düzgün istiqamətləndirilibmi? Onları sınamaq üçün led lehim birləşmələrindəki sikkə hüceyrəsini istifadə edin?
  • Əgər keçid LED -lərin yanıb -sönməsini təmin etmirsə:

    • LEDdəki lehim birləşmələrini yoxlayın.
    • Attini üzərindəki lehim birləşmələrini yoxlayın.
  • Hər şey kömək etmirsə, ön və arxa yüksək keyfiyyətli fotoşəkillər çəkin və göndərin və şərhlərdə kömək istəyin.

Addım 9: Dönmə vaxtı

Dönmə vaxtı
Dönmə vaxtı
Dönmə vaxtı
Dönmə vaxtı
Dönmə vaxtı
Dönmə vaxtı

Rulman korpusu böyük yastığa lehimləməklə yerində saxlanılır. Bunun üçün səbr və çox istilik lazımdır:

  • Rulmanı yerləşdirmək üçün sərt bir səthdə sikkələr kimi bir şey istifadə edin.
  • Çantaya lehim axını görənə qədər həm yastığı, həm də rulman qabığını qızdırın (bir az vaxt lazımdır).
  • Digər tərəfdən təkrarlayın.
  • Əyiricini fırladaraq yatağın düzgün hizalandığını yoxlayın.
  • Lövhəni çevirin və digər tərəfdən iki nöqtəni lehimləyin.

Addım 10: Bu bir inqilabdırmı?

Image
Image
Bu İnqilabdırmı?
Bu İnqilabdırmı?
Bu İnqilabdırmı?
Bu İnqilabdırmı?

Yalnız nümunələr əvəzinə mesajlar göstərmək üçün, döngənin dairə ilə bağlı mövqeyini bilməmiz lazımdır. Hall effekti sensoru və maqnitdən istifadə edəcəyik. Bu, yanma mühərriklərinin ən çox güc əldə etmək üçün qığılcımı nə vaxt yandıracağını bildiyinə bənzəyir. Həm sensorun, həm də maqnitin istiqamətləndirilməsi və hizalanması bunun işləməsi üçün çox vacibdir.

  • Cihazın üzündəki yazı ipək ekrana uyğun olan rulmana baxır (şəkil 1).
  • Hündürlüyü yatağın üstündəki hizalayın (qapağındakı maqnitin olduğu yer).
  • Lehim bir qurğuşun.
  • Hündürlüyü və yeməyi yoxlayın.
  • Qalan ipləri lehimləyin.
  • İpləri kəsin.

Bir Omni-pole sensoru istifadə edirsinizsə, maqnitin istiqamətini anlamalısınız. Bunu etmək üçün ən yaxşı yol, əvvəlki addımdakı nümunədən başqa bir rejim qurmaq və sonra LEDlərin yanıb -sönməsini başlayan maqnitin tərəfini tapmaqdır (videoya baxın). Maqnitin kənara baxan tərəfi ilə yapışdırın. İşinizi iki dəfə yoxlayın.

Addım 11: Balans Qanunu

Balans Qanunu
Balans Qanunu
Balans Qanunu
Balans Qanunu

Batareyanı içəriyə qoyaraq əyiricini yatay olaraq yuxarı tutsanız, batareyanın aşağıya doğru döndüyünü görəcəksiniz. Komponentləri balanslaşdırmaq üçün ən yaxşı səylərimə baxmayaraq, hələ də tarazlıqdadır. Bir qoz və bolt istifadə edərək batareyasız tərəfə bir az ağırlıq əlavə edə bilərsiniz və ya yastığa bir az lehim əlavə edə bilərsiniz.

Addım 12: Əməliyyatsınız

Image
Image
Ancaq gözləyin, daha çox şey var.
Ancaq gözləyin, daha çox şey var.

Mıknatısınız və sensörünüz yerindədirsə, Geek Spinner -in bütün möhtəşəmliyini yoxlamağa hazırsınız. Əyiricinin işləmə rejimi açıldıqda və ya düyməni basdıqdan sonra (D0 - D7) yandırılan LED ilə göstərilir. Düyməni basaraq rejim dəyişdirilir (videoya baxın).

int rejimi = 8; // mövcud rejimlərin sayı

// 0 -> "Salam Dünya!" Yazısı // 1 -> RPM // 2 -> saniyə ərzində vaxt // 3 -> dönmə sayı // 4 -> fırlanma sayı (cəmi) // 5 -> "lilly pad" naxışı // 6 -> şəkil 1 (ürək) // 7 -> şəkil 2 (gülümsəyin)

Addım 13: Ancaq gözləyin, daha çox şey var.

Ancaq gözləyin, daha çox şey var.
Ancaq gözləyin, daha çox şey var.
Ancaq gözləyin, daha çox şey var.
Ancaq gözləyin, daha çox şey var.
Ancaq gözləyin, daha çox şey var.
Ancaq gözləyin, daha çox şey var.

"Ürək" və "təbəssüm" nümunələri, səkkiz seqmentin hər 5 fırlanma dərəcəsində necə görünəcəyini göstərmək üçün qütb qrafikindən istifadə etməklə yaradılmışdır.

Əl ilə:

  • Tam qətnamə şəklini yükləyin və çap edin (şəkil 1).
  • Şəkil yaratmaq üçün blokları doldurun (şəkil 2).
  • Radial boyunca, 0 -dan başlayaraq, baytı qara = 1, ağ = 0 istifadə edərək hesablayın;

    Ürəyin ilk radialı 1, 0, 0, 0, 0, 0, 0, 0, buna görə bayt = 0b100000000;

  • İşiniz bitənə qədər davam edin (işarə edin ki, şəkliniz simmetrikdirsə, yalnız yarısını etməlisiniz).
  • Baytlarınızı "şekil_1 " və ya "şekil_2 " altında eskizin "textAndShapes.h" hissəsinə yapışdırın.

Python istifadə edərək:

  • Python quraşdırın.
  • Pythonun Şəkil kitabxanasını quraşdırın.
  • Əlavə edilmiş "readGraph.py" skriptini yükləyin.
  • Tam qətnamə şəkli yükləyin (şəkil 1).
  • Şəkli sevdiyiniz redaktorda açın (GIMP və ya MS Paint).
  • İstədiyiniz seqmentləri doldurmaq üçün seçilmiş qara rəngli "Doldurma" əmrindən istifadə edin (şəkil 2).
  • Şəkli "readGraph.py" skript ilə eyni qovluğa qeyd edin və ona uyğun olaraq skriptdəki fayl adını dəyişdirin:

im = Image.open ('heart.png')

Skripti işə salın və çıxışı "şekil_1 " və ya "şekil_2 " altından eskizin "textAndShapes.h" hissəsinə yapışdırın

Hər halda, yaradıcılığınızı (şəkil və kod) şərhlərdə bölüşməkdən çekinmeyin!

Addım 14: Kreditlər və Son Düşüncələr

Kreditlər və Son Düşüncələr
Kreditlər və Son Düşüncələr

Əlbəttə ki, bunların hamısını təkbaşına düşünməmişəm. Uzun bir vuruşla deyil.

  • POV ilə ilk təcrübə təcrübəm Nik Sayerin POV Twirlie adlı bir layihəsi oldu: https://www.tindie.com/products/nsayer/pov-twirlie/. (Mən də pogo adapterdən istifadə edirəm).
  • "LED + Fidget əyirici = POV" düşüncəsi, Techydiyin Təlimatlandırıcısını https://www.instructables.com/id/LED-FIDGET-SPINNER/ gördükdən sonra beynimə düşdü.
  • Mükəmməl bir fikriniz olanda, kimsə artıq bunu etdi: https://www.instructables.com/id/POV-Arduino-Fidget-Spinner/. Səth montajı lehimləmə, edə biləcəyim bir şeydir, amma həqiqətən yeni başlayanlar üçün uyğun deyil. Onun kodu da başımın bir az üstündə idi, amma fikirlərini RPM və sayları göstərməklə istifadə etdim.
  • Mətni göstərmək üçün Reger-kişilərin POV Saat kodunun parçalarını başa düşə bildim və istifadə etdim:

Heç bir layihə tam və ya mükəmməl deyil. İşdə irəli sürdüyüm bəzi fikirlər:

  • Balans: Məlumat vərəqlərində nadir hallarda komponentlərin ağırlığı haqqında məlumat var, buna görə də balans haqqında yalnız onu qurmadan təhsilli bir təxmin etmək çətindir. Aydındır ki, batareya ən ağır komponentdir. Balanslaşdırmaq üçün lazım olduğu qədər əlavə edə biləcəyim üçün hər ucuna deşiklər əlavə etdim.
  • Saat mili istiqamətində? Diqqət yetirdinizsə, mətn yalnız saat əqrəbi istiqamətində fırlandıqda düzgün görünür. Digər istiqamətə dönmək güzgü görüntüsü yaradır. İkinci bir Hall sensoru və ya maqnit əlavə etmək, fırlanma istiqamətini əldə etməyə imkan verir (Seanın layihəsi bunu etdi).
  • Rəng? Proqramlaşdırıla bilən RGB LED -lərdən istifadə edərək rənglər edə bilərsiniz. Tipik olaraq, səthə quraşdırılırlar.

Tövsiyə: