Sisukord:

"Üksinda kodus" sissemurdja peletusvahend/ kasutage samm -mootori ja servo juhtimiseks Attiny13: 5 sammu
"Üksinda kodus" sissemurdja peletusvahend/ kasutage samm -mootori ja servo juhtimiseks Attiny13: 5 sammu

Video: "Üksinda kodus" sissemurdja peletusvahend/ kasutage samm -mootori ja servo juhtimiseks Attiny13: 5 sammu

Video:
Video: Начало → Изучайте английский → Освойте ВСЕ ОСНОВЫ АНГЛИЙСКОГО ЯЗЫКА, которые вам НУЖНО знать! 2024, November
Anonim
"Kodus üksi" sissemurdja peletusvahend/ kasutage samm -mootori ja servo juhtimiseks Attiny13
"Kodus üksi" sissemurdja peletusvahend/ kasutage samm -mootori ja servo juhtimiseks Attiny13
"Kodus üksi" sissemurdja peletusvahend/ kasutage samm -mootori ja servo juhtimiseks Attiny13
"Kodus üksi" sissemurdja peletusvahend/ kasutage samm -mootori ja servo juhtimiseks Attiny13

See võib olla üks mu kummalisemaid projekte veel:-) Aga isegi kui te pole huvitatud sissemurdjate eemal hoidmisest, saab seda projekti kasutada kõikjal, kus on vaja juhtida samm- või servomootorit või isegi mitut alalisvoolumootorit Attiny13-ga Suurem osa teist mäletab filmi Üksinda kodus, kus McCauly Calkin üritab sissemurdjatele teeselda, et tegelikult pole ta üksi kodus, pannes plaadimängijale papist figuuri ja pannes teisele papikujule nöörid, et ta saaks inimesi jäljendada tantsimine. Kuna olen sageli kodust eemal, olen väga teadlik oma maja maha jätmisest, nagu oleks see endiselt hõivatud. Selle jaoks avaldasin ma varem kodus simulaatori, mis lülitab tuled kindla mustriga piisavalt juhuslikult välja. tundub, et keegi on kohal. Lisasin "võlts -teleri", mis näeb välja nagu teler mängib. Kõik need asjad aitavad, kuid kohaloleku simuleerimisel pole midagi paremat kui tegelik liikumine. Nii et ma vajasin midagi, mis liikus ja kuna mul pole plaadimängijat ja tahtsin midagi, mis võiks eemaloleku ajal toimida, vajasin midagi natuke kindlamat olekut. Kõige ilmsem viis papist kujundi loomiseks liikumisest oleks keerake seda 90 kraadi, nii et see vaheldumisi blokeeriks valguse, mitte ei blokeeriks valgust. Esmalt tegin seda odava servoga, kuid see andis kaks probleemi: teljele ja üks kord oli raske lisada isegi mitte liiga suurt pappkuju Ma tegin, tõmbejõud oleks selle servo jaoks lihtsalt liiga palju. Võimsama servo hind tõusis väga järsult, nii et hakkasin mõtlema "Steppermotor". Mul oli ikka veel üks, mis oli selle külge kinnitatud jahutusradiaatori tõttu raske, nii et see tundus ideaalne. Steppermootori keeramise programm oli Arduinole hõlpsasti kirjutatud, kuid lohistamine tekitas endiselt natuke probleeme, kuna mu papist kuju oli inimese torso (umbes 80 cm pikk). Pidin kas pappi tugevdama, muutes selle raskemaks, või siis väiksemaks. Viimane tundus olevat parim lahendus, kuna suutsin selle lihtsalt valgusele lähemale panna. Kogu selle aja olin ma mänginud ka mõttega, et näitaja püsti. Mootorid, rihmarattad jms käisid mu peast läbi ja kuigi ma pole sellest ideest täielikult loobunud, otsustasin praegu lihtsalt lisada papile väikese funktsiooni ja see oli liikuv pea. Minu idee oli, et näitaja pöörduks 90 kraadi, nii et see heidaks täieliku varju ja laseks siis pead noogutada. ja sealt tuli mu servo uuesti sisse. Ma tegelikult ei tahtnud ohverdada tervet arduinot lihtsalt papist figuuri keeramiseks. Arvasin, et Attiny13, mis mul ümber oli, oskas sama hästi hakkama saada: 4 tihvti stepperile, 1 tihvt servole. see on täpselt see, mida pakub Attiny13. Ma tunnistan, et mõnikord võin ma olla väga tihe, sest ma mõtlesin välja igasuguseid stsenaariume, kuidas kontraktsiooni toimida kindlal ajal ja kindla aja jooksul, sest ideaalis tahtsin ma seda kontrollida see varem mainitud 'Kodusimulaatorist'. Nii et ma mõtlesin traadi või traadita ühenduse peale, kuid siis polnud Attin13 parim idee, millel on Manchestercode'i probleem ja mul oli vaja vastuvõtja jaoks tihvti ja nende odavate vastuvõtjate tundlikkus pole nii suur. Nii et ma juba mõtlesin lihtsalt kommertsliku taimeri lülitile, kuid siis mõistsin, et olen idioot. Kuna asi vajaks oma toiteallikat, siis miks mitte võtta seinapilt ja panna see kaugjuhtimislülitisse, mida saaksin juba oma kodus simulaatorist juhtida. Niisiis, hakkasin ehitama oma lõplikku disaini.

Odav ServoA Steppermotor Pappkarp Attiny13An 8 tihvtiga IC pistikupesa Tükk ribalauda 9 riba 17 auguga Mõned servopikendusjuhtmed ULN2003A 16 kontaktiga IC pistikupesa 10 k takisti Plastikust lõikelaud (või mõni muu kerge materjal) 3 -pin isane päis (servo jaoks) 6 -kontaktiline isane päis (astmemootorile) liimiteip (muidugi)

Lisaks: viis Attiny programmeerimiseks

Lihtsalt märkus sammmootori kohta. Ma kasutan vana 55SI-25DAWC, kuid kui peate selle ikkagi ostma, on saadaval väga odav sammmootor/draiverikombinatsioon: 28BYJ-48. Mootor ise maksab 1,50 eurot, kuid 2 euro eest saate sama mootori koos juhtplaadiga. nii et see on hea asi

1. samm: „Üksinda kodus” Papist mehe ehitamine

"Üksinda kodus" Papist mehe ehitamine
"Üksinda kodus" Papist mehe ehitamine
"Üksinda kodus" Papist mehe ehitamine
"Üksinda kodus" Papist mehe ehitamine

Karbist lõikasin tüki 40x20 cm ja tüki 18x18. Kinnitasin need kaks tükki pea ja torso külge, kasutades kleeplinti, jättes kahe tüki vahele väikese vahe, kuid kaetud kleeplindiga, et moodustada kaelale liigend. (Pildid teevad selle väga selgelt selgeks) Lõikasin vanalt lõikelaualt 20 cm pikkuse, umbes poole cm paksuse (plaadi paksuse) ja umbes 1,5 cm laiuse tüki. 1,5 cm oli minu stepperi teljele piisav. kui teil on teistsugune samm, siis veenduge, et lõigatud tükk on teie sammude telje jaoks piisavalt lai. Puuritud aukude surnud punkt, mis sobiks minu teljega. seejärel liimisin plasti papi "Torso" alusele “kaela” alla ehitasin papitükkidest oma servole hoidiku. Loomulikult saab seda teha nurgaga triikrauaga (või plastikuga), kuid seda on natuke raske papi torso külge kinnitada, nii et ma kasutasin lihtsalt pappi servo paigaldamiseks. Lisasin servole lõikelaua plastikust 11 x 0,6 x 0,6 tükist valmistatud käe ja kinnitasin selle Servo külge. Jällegi vaadake pilte, et näha, kuidas seda tehakse. Kuigi mu samm -samm oli pappkuju kandmiseks piisavalt raske, paneks pöördemoment ja selle pööramisest tingitud mootor mootori ringi liikuma, nii et lõin alusplaadi 24 * 11 cm lõikelaud. Puurisin samm -mootori kinnitamiseks kaks auku ja kontrolleri jaoks on veel piisavalt ruumi. Kuigi servo pöörleb 180 kraadi, paigutasin käe nii, et see ei paneks pead täielikult sirgeks. Nii kukub see kergesti tagasi, kui servo pöördub tagasi 0 asendisse

Samm 2: „Üksinda kodus” Kontrolleri ehitamine

"Üksinda kodus" Kontrolleri ehitamine
"Üksinda kodus" Kontrolleri ehitamine
"Üksinda kodus" Kontrolleri ehitamine
"Üksinda kodus" Kontrolleri ehitamine
"Üksinda kodus" Kontrolleri ehitamine
"Üksinda kodus" Kontrolleri ehitamine
"Üksinda kodus" Kontrolleri ehitamine
"Üksinda kodus" Kontrolleri ehitamine

Kontroller on An Attiny13, mis on ühendatud ULN2003 külge. Kuigi oma versioonis olen kasutanud natuke rohkem tihvte, et muuta plaat paindlikumaks kasutamiseks teiste projektide jaoks, on ainsad päised, mida vajate, 3 -pin isane servo päis ja 6 pin isane päis stepperile

3. samm: „Üksinda kodus”: tarkvara

EDIT 2019 Projekt tehti kunagise populaarse „Smeezekitty” tuuma alusel, mis oli mõeldud Attiny13 jaoks. MCUDude nüüd sageli kasutataval MicroCore'il on ilmselt probleeme delayMicroseconds avalduste muutujatega. Kui kasutate seda, asendage "delayMicroseconds (300 + p * (2500 /180));" poolt "viivitus (5);"

Ülaltoodud programm näitab, kuidas juhtida minu konkreetset stepperit, ja kui teil on anotehr stepper, peate võib -olla muutma PORTB -i kirjutatavaid väärtusi. Kuna Attiny13 on mäluga üsna väike ja ei paku ka liiga palju nööpnõelu, jätab programm mõne keerukuse vahele. Otse PORTB -i kirjutamine on OK, kuid sel juhul kirjutab see PB4 ja PB5 ka “0”. PB5 pole suur probleem, kuid võiksite PB4 kasutada. Minu puhul panen ma oma servo sinna ja see ei tekita tegelikult probleeme, kuna ma ei kasuta neid samal ajal.

Kui aga soovite kasutada mõnda muud mikrokontrollerit, näiteks 328, ja soovite vältida kirjutamist PB4 ja PB5 ning PB6 ja PB7, kasutage maski, et kirjutada ainult bitile 0-3. Mask selleks on B00001111.

Kui soovite seejärel määrata bitid 0 ja 2, toimige järgmiselt.

PORTB = 5 asemel öelge: PORTB = (PORTB & ~ mask) | (B00000101);

Neile, kes peavad seda liiga salapäraseks:

see kõigepealt JA on PORTB -i väärtus koos NOT -maskiga ja VÕI on tulemus väärtusega, mida me tahame kirjutada, ja määrab selle PORTB -ile tagasi.

Seega, oletame, et PORTB = 00010000 ja me tahame sellele kirjutada 00000101, ei saa me seda kohe määrata, sest see kustutaks PB4.

Kui aga teeme nii, nagu kirjeldatud, muutub see järgmiseks:

PORTB = (PORTB & 11110000) | 00000101

PORTB = (00010000 & 11110000) | 00000101

PORTB = 00010000 | 00000101

PORTB = 00010101

Oleme oma väärtuse kirja pannud ja PB4 alles jätnud

Niisiis, miks me ei saa kohe VÕI PORTB-i soovitud väärtusega selle asemel, et seda kõigepealt AND-i saada?

Noh, sest see võib hoida PB4 ja PB5… kuid see hoiab ka PB3-PB0 muutumatuna, kui üks neist sisaldas juba “1”

Muidugi poleks maski ümberpööramine vajalik, kui määratleksime selle juba ümberpööratud kujul, kuid see on tavaline tava

4. samm: sissemurdjahoiatus „Üksinda kodus”: kasutage

vaadake videot, et see toimiks (see pöörati -90 kraadi, vabandust)

Selle seadme eesmärk on visata kardinatele või ruloodele liikuvaid varje. Seetõttu sobib see kõige paremini heledate kardinatega. Seade ise ei tohiks olla väljastpoolt nähtav. Veenduge, et selle taga oleks valgusallikas. Ma kontrollin seda, saates raadiosagedussignaali toitevõrgu kaugjuhtimispuldile, mis toidab selle seadme seinale paigaldatud toiteallikat, kuid võite kasutada ka taimerit.

5. samm: „Üksinda kodus”, mis ei töötanud ……

See video näitab ühte minu varasemat katset suurema torso ja lihtsalt lihtsa servoga. Ilmselgelt mitte hea disain

Soovitan: