Indholdsfortegnelse:
- Trin 1: 'Alene hjemme' Konstruktion af papmanden
- Trin 2: 'Alene hjemme' Konstruktion af controlleren
- Trin 3: 'Alene hjemme': Softwaren
- Trin 4: 'Hjemme alene' tyveri: Brug
- Trin 5: 'Alene hjemme' Hvad virkede ikke ……
Video: Hjem alene' tyveri/ afbrudstyv/ brug Attiny13 til at køre en trinmotor og en servo: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Dette er måske et af mine mærkeligste projekter endnu:-) Men selvom du ikke er interesseret i at holde indbrudstyve væk, kan dette projekt bruges til alt, hvor du skal køre en steppermotor eller servomotor, eller endda flere DC-motorer med en Attiny13. De fleste af jer vil huske filmen Alene alene, hvor McCauly Calkin forsøger at foregive over for indbrudstyvene, at han faktisk ikke er alene hjemme ved at sætte en papfigur på en pladespiller og sætte snore på en anden papfigur, så han kan efterligne mennesker Da jeg ofte er væk hjemmefra, er jeg meget bevidst om at forlade mit hus, som om det stadig er optaget. Derfor har jeg tidligere udgivet en 'At home simulator', der skifter lys i et bestemt mønster med nok tilfældighed til at gøre det ligner nogen er til stede. Jeg tilføjede et 'Fake TV', der får det til at ligne et tv, der spiller. Alle disse ting hjælper, men hvis det kommer til at simulere tilstedeværelse, er der ikke noget bedre end egentlig bevægelse. Så jeg havde brug for noget, der bevægede sig, og da jeg ikke har en pladespiller og ønskede noget, der kunne fungere, mens jeg var væk, havde jeg brug for noget lidt mere solid state. Den mest oplagte måde at få en papfigur til at skabe indtryk af bevægelse ville være at dreje det 90 grader, så det skiftevis ville blokere lys og ikke blokere lys. Jeg gjorde det først med en billig servo, men det gav to problemer: Det var svært at tilføje en papfigur, selv en ikke for stor, til akslen og en gang Jeg gjorde, trækket ville bare være for meget for den servo. En mere kraftfuld servo havde en meget stejl prisstigning, så jeg begyndte at tænke 'Steppermotor'. Jeg havde stadig en, der var tung på grund af kølelegemet knyttet til den, så det virkede ideelt. Et program til at dreje Steppermotoren blev let skrevet på en Arduino, men træk forårsagede stadig lidt af et problem, da min papfigur havde størrelsen en menneskelig torso (ca. 80 cm lang). Jeg var enten nødt til at forstærke pap, gøre det tungere, eller også måtte jeg gøre det mindre. Sidstnævnte syntes at være den bedste løsning, da jeg bare kunne sætte det tættere på et lys. Hele den tid havde jeg også leget med tanken om at få en figur til at stå op. Motorer, remskiver osv. Gik mig ind, og selvom jeg ikke helt har opgivet den idé, besluttede jeg lige nu at tilføje en lille funktion til papfiguren, og det var et hoved i bevægelse. Min idé var at få figuren til at dreje 90 grader, så det ville kaste en fuld skygge og derefter få det til at nikke med hovedet. og det var her min servo kom ind igen. Jeg ville faktisk ikke ofre en hel arduino bare for at vende en papfigur. På kontanten gættede jeg på, at en Attiny13, som jeg havde liggende, lige så godt kunne klare jobbet: 4 ben til stepperen, 1 pin til servoen. det er præcis, hvad en Attiny13 har at tilbyde. Jeg indrømmer, at jeg nogle gange kan være meget tæt, for jeg tænkte på alle slags scenarier for, hvordan kontraperingen skulle fungere på et bestemt tidspunkt, til et bestemt tidspunkt, fordi jeg ideelt set ville kontrollere det fra 'At home simulator' jeg nævnte tidligere. Så jeg tænkte på en ledning eller trådløs, men så var Attin13 ikke den bedste idé, da det har et problem med Manchestercode, og jeg havde brug for en nål til modtageren, og følsomheden for de billige modtagere er ikke så stor. Så jeg tænkte allerede på bare en kommerciel timer switch, men så indså jeg, at jeg var en idiot. Da tingen skulle bruge sin egen PSU, hvorfor så ikke tage en wallwart og lægge den i en fjernbetjening, som jeg allerede kunne styre fra min At Home -simulator. Så jeg begyndte at bygge mit endelige design. BOM
En billig ServoA SteppermotorA papkasse En Attiny13An 8 pins IC -fatning Et stykke stripboard 9 strimler med 17 huller Nogle servo -forlængerledninger A ULN2003A 16 pins IC -stik A 10 k modstand Et plastskærebræt (eller et andet stykke let materiale) 3 -polet hanhoved (til servo) 6 -polet hanhoved (til steppermotor) limet tape (selvfølgelig)
Derudover: En måde at programmere Attiny på
Bare en bemærkning om Steppermotor. Jeg bruger en gammel 55SI-25DAWC, men hvis du stadig skal købe en, er der en meget billig steppermotor/driverkombination tilgængelig: 28BYJ-48. Selve motoren koster 1,50 euro, men for 2 euro kan du få den samme motor med et førertavle. så det er en god handel
Trin 1: 'Alene hjemme' Konstruktion af papmanden
Fra en æske skar jeg et stykke på 40x20 cm og et stykke på 18x18. Jeg fastgjorde de to stykker sammen som et hoved og en torso ved hjælp af gaffatape og efterlod et lille hul mellem de to stykker, men dækket af gaffatape, for at danne et hængsel til nakken. (Billederne gør dette meget tydeligt) Fra det gamle skærebræt skar jeg et stykke på 20 cm langt, cirka en halv cm tykt (pladens tykkelse) og cirka 1,5 cm bredt. De 1,5 cm var nok til at passe til akslen på min stepper. hvis du har en anden stepper, skal du sørge for, at det stykke, du klipper, er bredt nok til akslen på din stepper. Borede et hul dødpunkt, der ville passe til min aksel. derefter limede jeg plasten til bunden af pap 'Torso'Just under 'halsen' byggede jeg af stykker pap op en holder til min servo. Selvfølgelig kan dette gøres med et vinkeljern (eller plast), men det er lidt svært at fastgøre til papkroppen, så jeg brugte bare pap til at passe til servoen. Jeg tilføjede en arm til servoen lavet af et 11 x 0,6 x 0,6 stykke plastik fra skærebrættet og fastgjorde det til te Servo. Igen, se på billederne for at se, hvordan dette gøres Selvom min stepper var tung nok til at bære papfigur, ville drejningsmomentet og trækket forårsaget af den dreje få motoren til at begynde at 'gå' rundt, så jeg lavede en bundplade ud af 24 * 11 cm skærebræt. Jeg borede to huller for at fastgøre trinmotoren og har stadig masser af plads til controlleren. Selvom servoen drejer 180 grader, placerede jeg armen sådan, at den ikke satte hovedet helt lige op. På den måde falder det let tilbage, når servoen vender tilbage til 0 -position
Trin 2: 'Alene hjemme' Konstruktion af controlleren
Controlleren er En Attiny13, knyttet til en ULN2003. Selvom jeg i min version har brugt lidt flere pins til at gøre brættet mere fleksibelt at bruge til andre projekter, er de eneste headers du har brug for en 3 -pin han servo header og en 6 pin han header til stepper
Trin 3: 'Alene hjemme': Softwaren
EDIT 2019 Projektet blev lavet på basis af den engang populære 'Smeezekitty' kerne for Attiny13. Den nu ofte anvendte MicroCore fra MCUDude har tilsyneladende problemer med variabler i delayMicroseconds -sætningerne. Hvis du bruger den, skal du erstatte "delayMicroseconds (300 + p * (2500 /180));" ved "forsinkelse (5);"
Ovenstående program viser, hvordan jeg kører min særlige stepper, og du skal muligvis ændre de værdier, der skrives til PORTB, hvis du har en anotehr stepper. Da Attiny13 er ret lille i hukommelsen og heller ikke giver for mange pins, savner programmet noget sofistikeret. Det er OK at skrive direkte til PORTB, men i dette tilfælde vil det også skrive et “0” til PB4 og PB5. PB5 er ikke et stort problem, men du vil måske bruge PB4. I mit tilfælde er det, hvor jeg placerer min servo, og det giver ikke rigtig et problem, da jeg ikke bruger dem på samme tid.
Men hvis du vil bruge en anden mikrokontroller som f.eks. En 328, og du vil undgå at skrive til PB4 og PB5 og PB6 og PB7, skal du bruge en maske til kun at skrive til bit 0-3. Masken til at gøre det er B00001111.
Hvis du derefter vil indstille bits 0 og 2, skal du gå sådan her:
I stedet for PORTB = 5, angiv: PORTB = (PORTB & ~ maske) | (B00000101);
For dem der synes dette er for kryptisk:
det ANDER først værdien af PORTB med IKKE maske og OR er resultatet med den værdi, vi vil skrive, og tildeler det tilbage til PORTB.
Antag så PORTB = 00010000, og vi vil skrive 00000101 til det, vi kan ikke tildele det med det samme, fordi det ville rydde PB4.
Men hvis vi gør som beskrevet, bliver det:
PORTB = (PORTB & 11110000) | 00000101
PORTB = (00010000 & 11110000) | 00000101
PORTB = 00010000 | 00000101
PORTB = 00010101
Vi har skrevet vores værdi og beholdt PB4
Så hvorfor kan vi ikke umiddelbart ELLER PORTB med den værdi, vi ønsker i stedet for OG-først?
Jo, fordi det kan beholde PB4 og PB5 … men det holder også PB3-PB0 uændret, hvis en af dem allerede indeholdt en '1'
Selvfølgelig ville det ikke være nødvendigt at vende masken om, hvis vi ville definere den allerede omvendt, men det er almindelig praksis at gøre det som sådan
Trin 4: 'Hjemme alene' tyveri: Brug
se videoen for at se den fungere (den blev roteret -90 grader, undskyld det)
Hensigten med denne enhed er at kaste bevægelige skygger på gardiner eller persienner. Det fungerer derfor bedst med lysgardiner. Selve enheden bør ikke være synlig udefra. Sørg for, at den har en lyskilde et eller andet sted bag den. Jeg styrer den ved at sende et RF -signal til fjernkontakten i stikkontakten, der føder wallwart PSU'en til denne enhed, men du kan også bruge en timer.
Trin 5: 'Alene hjemme' Hvad virkede ikke ……
Denne video viser et af mine tidligere eksperimenter med en større torso og bare en simpel servo. Naturligvis ikke et godt design
Anbefalede:
Interessant programmeringsvejledning til designer-Få dit billede til at køre (del to): 8 trin
Interessant programmeringsvejledning til designer-Få dit billede til at køre (del to): Matematik, for de fleste af jer, virker ubrugelig. Det mest almindeligt anvendte i vores daglige liv er bare at tilføje, trække, multiplicere og dividere. Det er dog ganske anderledes, hvis du kan oprette med program. Jo mere du ved, jo mere vidunderligt resultat får du
Brug af 556 timer til at drive en trinmotor: 5 trin
Brug af 556 -timer til at drive en trinmotor: Denne instruktion forklarer, hvordan en 556 -timer kan drive en trinmotor. Der er ingen kode nødvendig for dette kredsløb
I2C / IIC LCD -skærm - Brug et SPI LCD til I2C LCD Display Brug SPI til IIC modul med Arduino: 5 trin
I2C / IIC LCD -skærm | Brug en SPI LCD til I2C LCD -skærmen Brug af SPI til IIC -modulet med Arduino: Hej fyre, da en normal SPI LCD 1602 har for mange ledninger at tilslutte, så det er meget svært at grænseflade det med arduino, men der er et modul på markedet, som kan konverter SPI -skærm til IIC -skærm, så du skal kun tilslutte 4 ledninger
Brug af 2 skiftregistre (74HC595) til at køre 16 lysdioder: 9 trin
Brug af 2 skiftregistre (74HC595) til at køre 16 lysdioder: Dette kredsløb bruger 2 skifteregistre (74HC595). Skifteregistrene kører som output 16 lysdioder. Hvert skiftregister kører 8 lysdioder. Skiftregisterne er kablet, så hvert skiftregisterudgange vil ligne en kopi af de andre
Brug af en H -bro (293D) til at køre 2 gearede hobbymotorer Ans Arduino; kredsløbsoversigt: 9 trin
Brug af en H -bro (293D) til at drive 2 gearede hobbymotorer Ans Arduino; kredsløbsoversigt: H -broen 293D er et integreret kredsløb, der er i stand til at køre 2 motorer. Fordelen ved H -broen i forhold til transistor- eller MOSFET -styrekredsløb er, at den kan køre de 2 motorer tovejs (frem og tilbage) med en kode