Mündəricat:

Evdə Tək' Oğurluq Caydırıcısı/ Bir Steppermotor və Servo Sürmək üçün Attiny13 istifadə edin: 5 addım
Evdə Tək' Oğurluq Caydırıcısı/ Bir Steppermotor və Servo Sürmək üçün Attiny13 istifadə edin: 5 addım

Video: Evdə Tək' Oğurluq Caydırıcısı/ Bir Steppermotor və Servo Sürmək üçün Attiny13 istifadə edin: 5 addım

Video: Evdə Tək' Oğurluq Caydırıcısı/ Bir Steppermotor və Servo Sürmək üçün Attiny13 istifadə edin: 5 addım
Video: Eve giren hırsız yorganın altında yakalandı 2024, Noyabr
Anonim
'Evdə Tək' Oğurluq Caydırıcı/ Bir Steppermotor və Servo Sürmək üçün Attiny13 istifadə edin
'Evdə Tək' Oğurluq Caydırıcı/ Bir Steppermotor və Servo Sürmək üçün Attiny13 istifadə edin
'Evdə Tək' Oğurluq Caydırıcısı/ Bir Steppermotor və Servo Sürmək üçün Attiny13 istifadə edin
'Evdə Tək' Oğurluq Caydırıcısı/ Bir Steppermotor və Servo Sürmək üçün Attiny13 istifadə edin

Hələ də ən qəribə layihələrimdən biri ola bilər:-) Ancaq oğurluq edənlərin uzaqlaşması ilə maraqlanmasanız belə, bu layihə bir steppermotor və ya servo motor və ya hətta Attiny13 ilə bir neçə DC mühərrikini idarə etməyiniz lazım olan hər şey üçün istifadə edilə bilər. Çoğunuz, Evdə Yalnız filmini xatırlayacaqsınız, burada McCauly Calkin soyğunçulara əslində evində tək olmadığını iddia etməyə çalışır, kartof şəkli bir pleyerə qoyaraq başqa bir karton fiquruna iplər qoyaraq insanları təqlid edə bilər. Evdən tez -tez uzaqlaşdığım üçün, evimi hələ də işğal altında qalmış kimi tərk etməkdən çox şüurluyam, çünki əvvəllər işıqları müəyyən bir nümunə ilə kifayət qədər təsadüfi şəkildə dəyişən 'Evdə simulyatoru' nəşr etmişdim. sanki kimsə var. Bir televiziya oynayan kimi görünən bir "saxta TV" əlavə etdim. Bütün bunlar kömək edir, amma varlığı simulyasiya etmək üçün gəldikdə, əsl hərəkətdən daha yaxşı bir şey yoxdur. Mən hərəkət edən bir şeyə ehtiyacım var idi və məndə səsyazma qurğusu olmadığından və uzaqda işləyə biləcək bir şey istədiyim üçün bir az daha möhkəm bir şeyə ehtiyacım var idi. İşığı maneə törətmək üçün 90 dərəcə çevirmək üçün əvvəlcə ucuz bir servo ilə etdim, amma bu iki problem verdi: oxa çox böyük olmayan bir karton rəqəmi əlavə etmək çətindi və bir dəfə Etdim, sürükləmə bu servo üçün çox çox olardı. Daha güclü bir servo çox kəskin bir qiymət artımına sahib idi, buna görə 'Steppermotor' düşünməyə başladım. İstifadə etdiyim soyuducuya görə hələ də ağır olan biri var idi, belə ki ideal görünürdü. Steppermotoru çevirmək üçün bir proqram asanlıqla bir Arduino üzərində yazılmışdı, amma karton fiqurumun ölçüsü olduğu üçün sürükləmə hələ də bir az problem yaradırdı. insan bədəni (təxminən 80 sm uzunluğunda). Kartonu ya möhkəmləndirməli, ya da ağırlaşdırmalıyam, ya da kiçiltməli idim. Bir işığa yaxınlaşdıra bildiyim üçün sonuncu ən yaxşı həll kimi görünürdü. Bütün bu müddət ərzində mən də ayağa qalxmaq fikri ilə oynayırdım. Motorlar, kasnaklar və s. Ağlımdan keçdi və bu fikirdən tamamilə imtina etməsəm də, hələlik karton fiquruna kiçik bir xüsusiyyət əlavə etmək qərarına gəldim və bu hərəkət edən bir baş idi. Fikrim rəqəmin 90 dərəcə dönməsini, tam kölgə salacaq və sonra başını yelləyərdi. və servomun yenidən gəldiyi yer budur. Mən əslində karton fiquru çevirmək üçün bütün arduino qurban vermək istəmirdim. Əlbətdə ki, ətrafımda qoyduğum bir Attiny13 -ün işi də eyni şəkildə edə biləcəyini təxmin etdim: step üçün 4 sancaq, servo üçün 1 pin. Attiny13 -ün təklif etdiyi şey budur. Etiraf edim ki, bəzən çox sıx ola bilərəm, konkret bir zamanda, müəyyən bir müddətdə işləmək üçün necə idarə olunacağına dair hər cür ssenariləri düşündüm, çünki ideal olaraq idarə etmək istəyirdim. Daha əvvəl qeyd etdiyim 'Evdəki simulyatordan'. Bir tel və ya simsiz əlaqə haqqında düşündüm, amma sonra Attin13 Manchestercode ilə problemi olan ən yaxşı fikir deyildi və alıcı üçün bir pin lazım idi və bu ucuz alıcıların həssaslığı o qədər də yaxşı deyildi. Mən artıq yalnız bir kommersiya timer keçidini düşündüm, amma sonra axmaq olduğumu başa düşdüm. İşin öz PSU -na ehtiyacı olduğu üçün, niyə bir divar divarı götürüb evdə simulyatorumdan idarə edə biləcəyim bir Uzaqdan Anahtara qoymursunuz, buna görə də son dizaynımı qurmağa başladım. BOM

Ucuz bir ServoA SteppermotorA karton qutuAntiny 13An 8 sancaqlı IC yuva 17 ədəd 9 delikli zolaqlı lövhə Bəzi servo uzatma kordonları ULN2003A 16 sancaqlı IC yuva 10 k müqavimətli Plastik kəsmə lövhəsi (və ya başqa yüngül material parçası) 3 pinli kişi başlığı (servo üçün) 6 pinli kişi başlığı (steppermotor üçün) yapışqan bant (əlbəttə)

Əlavə: Attiny proqramlaşdırma üsulu

Steppermotor haqqında yalnız bir qeyd. Köhnə 55SI-25DAWC istifadə edirəm, amma hələ də satın almalısınızsa, çox ucuz bir steppermotor/sürücü kombinatı mövcuddur: 28BYJ-48. Motorun özü 1.50 avroya başa gəlir, amma 2 avroya eyni motoru sürücü lövhəsi ilə əldə edə bilərsiniz. buna görə yaxşı bir işdir

Addım 1: 'Evdə Tək' Karton Adamı Tikmək

'Evdə Tək' Karton Adamın İnşası
'Evdə Tək' Karton Adamın İnşası
'Evdə Tək' Karton Adamın İnşası
'Evdə Tək' Karton Adamın İnşası

Bir qutudan 40x20 sm və 18x18 ölçüdə bir parça kəsdim. Boyun üçün bir menteşe yaratmaq üçün iki parça arasında kiçik bir boşluq buraxaraq yapışan bant istifadə edərək iki hissəni bir baş və bir gövdə olaraq bağladım. (Şəkillər bunu çox aydın göstərir) Köhnə kəsmə taxtasından 20 sm uzunluğunda, təxminən yarım sm qalınlığında (lövhənin qalınlığı) və təxminən 1,5 sm enində bir parça kəsdim. 1,5 sm, addımımın oxuna uyğun olmaq üçün kifayət idi. Fərqli bir addımınız varsa, kəsdiyiniz parçanın addımınızın oxu üçün kifayət qədər geniş olduğundan əmin olun. Mənim oxuma uyğun olan bir deşik delik açdı. sonra plastik kartonun əsasına yapışdırdım 'Torso'Just 'boyun' altında, karton parçalardan servom üçün bir tutacaq qurdum. Əlbəttə ki, bu, bir açılı dəmir (və ya plastik) ilə edilə bilər, ancaq kartonun gövdəsinə yapışdırmaq bir az çətindir, buna görə servoya uyğunlaşmaq üçün karton istifadə etdim. Kəsmə lövhəsindən 11 x 0,6 x 0,6 ədəd plastikdən hazırlanmış servoya bir qol əlavə etdim və onu Servo -ya bağladım. Yenə də bunun necə edildiyini görmək üçün şəkillərə baxın Stepperim karton fiqur daşımaq üçün kifayət qədər ağır olsa da, fırlanma anı və sürtünmə mühərrikin ətrafda 'gəzməyə' başlamasına səbəb olardı, buna görə də bir baza plitəsi yaratdım. 24 * 11 sm kəsmə taxtası. Step motorunu bağlamaq üçün iki delik açdım və hələ də nəzarətçi üçün kifayət qədər yer var. Servo 180 dərəcə dönsə də, qolu başı tamamilə düz qoymayacaq şəkildə yerləşdirdim. Bu şəkildə servo 0 mövqeyinə qayıtdıqda asanlıqla geri düşür

Addım 2: 'Evdə Yalnız' Nəzarətçi qurmaq

'Evdə Tək' Nəzarətçi Qurmaq
'Evdə Tək' Nəzarətçi Qurmaq
'Evdə Tək' Nəzarətçi Qurmaq
'Evdə Tək' Nəzarətçi Qurmaq
'Evdə Tək' Nəzarətçi Qurmaq
'Evdə Tək' Nəzarətçi Qurmaq
'Evdə Tək' Nəzarətçi Qurmaq
'Evdə Tək' Nəzarətçi Qurmaq

Nəzarətçi ULN2003 -ə qoşulmuş bir Attiny13 -dir. Mənim versiyamda, lövhəni digər layihələr üçün daha elastik etmək üçün bir az daha çox pin istifadə etsəm də, ehtiyacınız olan tək başlıq 3 pinli kişi servo başlığı və step üçün 6 pinli kişi başlığıdır.

Addım 3: 'Evdə Yalnız': Proqram təminatı

EDIT 2019 Layihə, Attiny13 üçün bir zamanlar populyar olan 'Smeezekitty' nüvəsi əsasında hazırlanmışdır. MCUDude -dən indi tez -tez istifadə olunan MicroCore, gecikmə Mikrosaniyələri ifadələrində dəyişənlərlə problem yaşayır. Bunu istifadə edirsinizsə, "delayMicroseconds (300 + p * (2500 /180))" əvəz edin; "gecikmə (5)" ilə

Yuxarıdakı proqram mənim xüsusi stepperimi necə idarə edəcəyimi göstərir və anotehr stepperiniz varsa PORTB -a yazılan dəyərləri dəyişdirməyiniz lazım ola bilər. Attiny13 -in yaddaşı olduqca kiçik olduğu üçün çoxlu sancaqlar da təmin etmədiyi üçün proqram bəzi incəlikləri qaçırır. Birbaşa PORTB -ə yazmaq yaxşıdır, lakin bu halda PB4 və PB5 -ə də "0" yazacaq. PB5 çox problem deyil, ancaq PB4 istifadə etmək istəyə bilərsiniz. Mənim vəziyyətimdə servomu qoyduğum yerdir və bu heç bir problem yaratmır, çünki eyni anda istifadə etmirəm.

Ancaq 328 kimi başqa bir mikro nəzarətçi istifadə etmək istəyirsinizsə və PB4 və PB5 və PB6 və PB7-yə yazmaqdan çəkinmək istəyirsinizsə, yalnız 0-3 bitinə yazmaq üçün maska istifadə edin. Bunu etmək üçün maska B00001111 -dir.

0 və 2 bitlərini təyin etmək istəyirsinizsə, bu şəkildə gedin:

PORTB = 5 əvəzinə, deyin: PORTB = (PORTB & ~ maska) | (B00000101);

Bunu çox sirli hesab edənlər üçün:

əvvəlcə maskasız PORTB dəyərini VƏ ya yazmaq istədiyimiz dəyərin nəticəsidir və bunu yenidən PORTB -ə təyin edir.

Beləliklə, PORTB = 00010000 olduğunu düşünün və ona 00000101 yazmaq istəyirik, bunu dərhal təyin edə bilmərik, çünki bu PB4 -ü siləcək.

Ancaq təsvir edildiyi kimi etsək, belə olur:

PORTB = (PORTB & 11110000) | 00000101

PORTB = (00010000 & 11110000) | 00000101

PORTB = 00010000 | 00000101

PORTB = 00010101

Dəyərimizi yazdıq və PB4 saxladıq

Elə isə, niyə əvvəlcə VE-ing əvəzinə istədiyimiz dəyəri dərhal OR PORTB edə bilmirik?

PB4 və PB5-i saxlaya biləcəyi üçün … amma onlardan birində '1' varsa, PB3-PB0-u dəyişməz saxlayır.

Əlbəttə ki, ters çevrildiyini təyin etsək, maskanı tərs çevirmək lazım olmazdı, amma bunu etmək adi bir tətbiqdir.

Addım 4: 'Evdə Yalnız' Oğurluq Caydırıcısı: İstifadə edin

işlədiyini görmək üçün videoya baxın (-90 dərəcə döndü, üzr istəyirəm)

Bu cihazın məqsədi pərdələrin və ya pərdələrin üzərinə hərəkət edən kölgələr atmaqdır. Buna görə işıq pərdələri ilə daha yaxşı işləyir. Cihazın özü kənardan görünməməlidir. Bunun arxasında bir yerdə bir işıq mənbəyinin olduğundan əmin olun. Bu cihaz üçün divar qurğusu PSU -nu qidalandıran elektrik prizindəki Uzaqdan Anahtara RF siqnalı göndərərək nəzarət edirəm, ancaq taymer də istifadə edə bilərsiniz.

Addım 5: 'Evdə Tək' Nə Çalışmadı ……

Bu video daha böyük bir gövdə və sadə bir servo ilə əvvəlki təcrübələrimdən birini göstərir. Aydındır ki, yaxşı bir dizayn yoxdur

Tövsiyə: