Innehållsförteckning:

'Home Alone' inbrottslarm/ Använd Attiny13 för att köra en stegmotor och en servo: 5 steg
'Home Alone' inbrottslarm/ Använd Attiny13 för att köra en stegmotor och en servo: 5 steg

Video: 'Home Alone' inbrottslarm/ Använd Attiny13 för att köra en stegmotor och en servo: 5 steg

Video: 'Home Alone' inbrottslarm/ Använd Attiny13 för att köra en stegmotor och en servo: 5 steg
Video: 10 Natural Ways To Make Home Smell Amazing 2024, November
Anonim
'Home Alone' inbrottslarm/ Använd Attiny13 för att köra en stegmotor och en servo
'Home Alone' inbrottslarm/ Använd Attiny13 för att köra en stegmotor och en servo
'Home Alone' inbrottslarm/ Använd Attiny13 för att köra en stegmotor och en servo
'Home Alone' inbrottslarm/ Använd Attiny13 för att köra en stegmotor och en servo

Det här kan vara ett av mina konstigaste projekt än:-) Men även om du inte är intresserad av att hålla inbrottstjuvar borta kan det här projektet användas för allt där du behöver för att köra en stegmotor eller servomotor, eller till och med flera likströmsmotorer med en Attiny13. De flesta kommer att minnas filmen Home Alone, där McCauly Calkin försöker låtsas för inbrottstjuvarna att han faktiskt inte är ensam hemma, genom att sätta en pappfigur på en skivspelare och sätta strängar på en annan pappfigur så att han kan imitera människor Eftersom jag ofta är hemifrån är jag mycket medveten om att lämna mitt hus som om det fortfarande är upptaget. Därför publicerade jag tidigare en "Hemma simulator" som växlar ljus i ett specifikt mönster med tillräckligt med slumpmässighet för att göra det ser ut som att någon är närvarande. Jag lade till en "Fake TV" som får det att se ut som om det finns en TV som spelar. Alla dessa saker hjälper, men om det gäller att simulera närvaro finns det inget bättre än verklig rörelse. Så jag behövde något som rörde sig och eftersom jag inte har en skivspelare och ville ha något som kunde fungera medan jag var borta, behövde jag något lite mer fast tillstånd. Det mest uppenbara sättet att få en kartongfigur att skapa intryck av rörelse skulle vara att vända den 90 grader så att den växelvis skulle blockera ljus och inte blockera ljus. Jag gjorde det först med en billig servo men det gav två problem: Det var svårt att lägga till en pappfigur även en inte för stor, till axeln och en gång Jag gjorde, dragningen skulle bara bli för mycket för den servon. En mer kraftfull servo hade en mycket brant prisuppgång så jag började tänka "Steppermotor". Jag hade fortfarande en som var tung på grund av kylflänsen fäst vid den så det verkade idealiskt. Ett program för att vrida stegmotorn skrevs enkelt på en Arduino, men drag orsakade fortfarande lite problem eftersom min kartong hade storleken på en mänsklig bål (cirka 80 cm lång). Jag måste antingen förstärka kartongen, göra den tyngre, eller så måste jag göra den mindre. Det senare verkade vara den bästa lösningen eftersom jag bara kunde sätta det närmare ett ljus. Hela den tiden hade jag också lekt med tanken på att få en figur att stå upp. Motorer, remskivor osv kom mig in i tankarna och även om jag inte helt har gett upp den idén bestämde jag mig för att lägga till en liten funktion i kartongfiguren och det var ett rörligt huvud. så det skulle kasta en full skugga och sedan låta det nicka med huvudet. och det var där min servo kom in igen. Jag ville faktiskt inte offra en hel arduino bara för att vända en kartongfigur. På kontanten gissade jag att en Attiny13 som jag hade lagt mig kunde göra jobbet lika bra: 4 stift för steget, 1 stift för servon. det är precis vad en Attiny13 har att erbjuda. Jag erkänner att jag kan vara väldigt tät eftersom jag tänkte på alla möjliga scenarier för hur man använder kontrasten för att arbeta vid en viss tid, för en viss tid eftersom jag helst ville kontrollera det från "Hemma -simulatorn" som jag nämnde tidigare. Så jag tänkte på en tråd eller trådlös, men då var Attin13 inte den bästa idén eftersom det har problem med Manchestercode och jag behövde en nål för mottagaren och känsligheten hos de billiga mottagarna är inte så bra. Så jag tänkte redan på en kommersiell timeromkopplare, men då insåg jag att jag var en idiot. Eftersom saken skulle behöva en egen PSU, varför inte ta en wallwart och lägga den i en fjärrkontakt som jag redan kunde styra från min At Home -simulator. Så jag började bygga min slutliga design. BOM

En billig ServoA SteppermotorA kartong En Attiny13An 8 stift IC -uttagA En bit av bandbräda 9 remsor med 17 hål Några servoförlängningssladdar A ULN2003A 16 stift IC -uttagA 10 k motståndA en skärbräda av plast (eller något annat ljust material) 3 -stifts hanrubrik (för servo) 6 -stifts hanrubrik (för stegmotor) limad tejp (självklart)

Dessutom: Ett sätt att programmera Attiny

Bara en anmärkning om Steppermotor. Jag använder en gammal 55SI-25DAWC, men om du fortfarande måste köpa en finns det en mycket billig stegmotor/förarkombination: 28BYJ-48. Motorn i sig kostar 1,50 euro, men för 2 euro kan du få samma motor med ett förarbräda. så det är en bra affär

Steg 1: "Ensam hemma" Konstruera kartongmannen

'Home Alone' Konstruerar kartongmannen
'Home Alone' Konstruerar kartongmannen
'Home Alone' Konstruerar kartongmannen
'Home Alone' Konstruerar kartongmannen

Från en låda skär jag en bit på 40x20 cm och en bit på 18x18. Jag fäst de två bitarna ihop som ett huvud och en torso, med hjälp av tejp och lämnade ett litet mellanrum mellan de två bitarna, men täckt av gaffatejpen, för att bilda ett gångjärn för nacken. (Bilderna gör detta väldigt tydligt) Från den gamla skärbrädan skär jag en bit på 20 cm lång, ungefär en halv cm tjock (brädans tjocklek) och cirka 1,5 cm bred. De 1,5 cm var tillräckligt för att passa axeln på min stepper. om du har en annan stegmaskin, se till att biten du skär är tillräckligt bred för axeln på din stegmaskin. Borrade ett hål i mittpunkt som skulle passa min axel. sedan limmade jag plasten på kartongens bas 'Torso'Just under 'nacken' byggde jag upp en hållare till min servo av kartongbitar. Naturligtvis kan detta göras med ett vinkeljärn (eller plast), men det är lite svårt att fästa på pappkroken, så jag använde bara kartong för att passa servon. Jag lade till en arm på servon gjord av en 11 x 0,6 x 0,6 bit plast från skärbrädet och fäst den på te Servo. Återigen, titta på bilderna för att se hur detta görs Även om min stepper var tillräckligt tung för att bära kartongfigur, skulle vridmomentet och dragningen som orsakas av att det vänder få motorn att börja "gå" runt, så jag skapade en bottenplatta av 24 * 11 cm skärbräda. Jag borrade två hål för att fästa stegmotorn och har fortfarande gott om plats för regulatorn. Även om servon vrider sig 180 grader placerade jag armen så att den inte sätter upp huvudet helt rakt. På det sättet faller det lätt tillbaka när servon vänder tillbaka till 0 -läge

Steg 2: "Alone Home" Konstruera kontrollen

'Home Alone' Konstruera kontrollen
'Home Alone' Konstruera kontrollen
'Home Alone' Konstruera kontrollen
'Home Alone' Konstruera kontrollen
'Home Alone' Konstruera kontrollen
'Home Alone' Konstruera kontrollen
'Home Alone' Konstruera kontrollen
'Home Alone' Konstruera kontrollen

Kontrollenheten är An Attiny13, ansluten till en ULN2003. Även om jag i min version har använt lite fler stift för att göra brädet mer flexibelt att använda för andra projekt, är de enda rubrikerna du behöver en 3 -stifts manlig servohuvud och en 6 -stifts hanrubrik för steget

Steg 3: "Ensam hemma": Programvaran

EDIT 2019 Projektet gjordes på grundval av den en gång populära "Smeezekitty" -kärnan för Attiny13. Den ofta använda MicroCore från MCUDude har tydligen problem med variabler i delayMicroseconds -uttalandena. Om du använder den, ersätt "delayMicroseconds (300 + p * (2500 /180));" med "fördröjning (5);"

Ovanstående program visar hur jag kör min speciella steg och du kan behöva ändra värdena som skrivs till PORTB om du har en anotehr steg. Eftersom Attiny13 är ganska litet i minnet och inte heller ger för många stift, saknar programmet viss sofistikering. Att skriva direkt till PORTB är OK, men i detta fall kommer det också att skriva ett “0” till PB4 och PB5. PB5 är inte ett stort problem, men du kanske vill använda PB4. I mitt fall är det där jag lägger min servo och det orsakar egentligen inget problem eftersom jag inte använder dem samtidigt.

Men om du vill använda en annan mikrokontroller som en 328 och du vill undvika att skriva till PB4 och PB5 och PB6 och PB7, använd en mask för att bara skriva till bit 0-3. Masken för att göra det är B00001111.

Om du sedan vill ställa in bitarna 0 och 2 gör du så här:

I stället för PORTB = 5, ange: PORTB = (PORTB & ~ mask) | (B00000101);

För dem som tycker att detta är för kryptiskt:

det OCH är först värdet på PORTB med NOT mask och OR är resultatet med det värde vi vill skriva och tilldelar det tillbaka till PORTB.

Så anta att PORTB = 00010000 och vi vill skriva 00000101 till det, vi kan inte tilldela det omedelbart eftersom det skulle rensa PB4.

Men om vi gör som beskrivet blir det:

PORTB = (PORTB & 11110000) | 00000101

PORTB = (00010000 & 11110000) | 00000101

PORTB = 00010000 | 00000101

PORTB = 00010101

Vi har skrivit vårt värde och behållit PB4

Så, varför kan vi inte omedelbart ELLER PORTB med det värde vi vill ha istället för OCH-ing först?

Tja, för det kan behålla PB4 och PB5 … men det håller också PB3-PB0 oförändrat om någon av dem redan innehöll ett '1'

Naturligtvis skulle det inte vara nödvändigt att vända masken om vi skulle definiera den redan inverterad, men det är vanligt att göra det som sådant

Steg 4: 'Home Alone' inbrottslarm: Använd

titta på videon för att se den fungera (den roterades -90 grader, förlåt för det)

Avsikten med denna enhet är att kasta rörliga skuggor på gardinerna eller persiennerna. Det fungerar därför bäst med ljusgardiner. Själva enheten ska inte vara synlig utifrån. Se till att den har en ljuskälla någonstans bakom den. Jag styr den genom att skicka en RF -signal till fjärrkontakten i eluttaget som matar strömförsörjningen till den här enheten, men du kan också använda en timer.

Steg 5: "Ensam hemma" Vad som inte fungerade ……

Denna video visar ett av mina tidigare experiment med en större bål och bara en enkel servo. Uppenbarligen ingen bra design

Rekommenderad: