Innholdsfortegnelse:

Home Alone' innbruddstyv avskrekkende/ bruk Attiny13 til å kjøre en trinnmotor og en servo: 5 trinn
Home Alone' innbruddstyv avskrekkende/ bruk Attiny13 til å kjøre en trinnmotor og en servo: 5 trinn

Video: Home Alone' innbruddstyv avskrekkende/ bruk Attiny13 til å kjøre en trinnmotor og en servo: 5 trinn

Video: Home Alone' innbruddstyv avskrekkende/ bruk Attiny13 til å kjøre en trinnmotor og en servo: 5 trinn
Video: 3 Сосед по комнате из ада - мультфильмы настоящих криминальных ужасов 2024, November
Anonim
'Home Alone' innbruddstyv avskrekkende/ bruk Attiny13 til å kjøre en trinnmotor og en servo
'Home Alone' innbruddstyv avskrekkende/ bruk Attiny13 til å kjøre en trinnmotor og en servo
'Home Alone' innbruddstyv avskrekkende/ bruk Attiny13 til å kjøre en trinnmotor og en servo
'Home Alone' innbruddstyv avskrekkende/ bruk Attiny13 til å kjøre en trinnmotor og en servo

Dette kan være et av mine rareste prosjekter ennå:-) Men selv om du ikke er interessert i å holde innbruddstyver borte, kan dette prosjektet brukes til alt du trenger for å kjøre en trinnmotor eller servomotor, eller til og med flere likestrømsmotorer med en Attiny13. De fleste av dere vil huske filmen Home Alone, der McCauly Calkin prøver å late som innbruddstyvene at han faktisk ikke er alene hjemme, ved å sette en pappfigur på en platespiller og sette strenger på en annen pappfigur slik at han kan etterligne mennesker Siden jeg ofte er hjemmefra, er jeg veldig bevisst på å forlate huset mitt som om det fremdeles er okkupert. For derfor publiserte jeg tidligere en 'Hjemmesimulator' som bytter lys i et bestemt mønster med nok tilfeldighet til å gjøre det ser ut som noen er tilstede. Jeg la til en 'Fake TV' som får det til å se ut som om det er en TV som spiller. Alle disse tingene hjelper, men hvis det kommer til å simulere tilstedeværelse er det ingenting bedre enn faktisk bevegelse. Så jeg trengte noe som beveget seg, og ettersom jeg ikke har en platespiller og ønsket noe som kunne fungere mens jeg var borte, trengte jeg noe litt mer solid state. Den mest åpenbare måten å få en pappfigur til å skape inntrykk av bevegelse, ville være å snu den 90 grader slik at den vekselvis blokkerer lys og ikke blokkerer lys. Jeg gjorde det først med en billig servo, men det ga to problemer: Det var vanskelig å legge til en pappfigur, til og med en ikke for stor, til akselen og en gang Jeg gjorde det, drag ville bare bli for mye for den servoen. En kraftigere servo hadde en veldig bratt prisstigning, så jeg begynte å tenke 'Steppermotor'. Jeg hadde fortsatt en som var tung på grunn av kjøleribben festet til den, så det virket ideelt. Et program for å slå trinnmotoren ble lett skrevet på en Arduino, men dra forårsaket fortsatt et lite problem ettersom pappfiguren min hadde størrelsen en menneskelig torso (ca. 80 cm lang). Jeg måtte enten forsterke pappa, gjøre den tyngre, eller så måtte jeg gjøre den mindre. Sistnevnte syntes å være den beste løsningen da jeg bare kunne sette det nærmere et lys. Hele den tiden hadde jeg også lekt med tanken på å få en figur til å stå opp. Motorer, trinser osv. Kom meg i tankene, og selv om jeg ikke helt har gitt opp den ideen, bestemte jeg meg for å legge til en liten funksjon i pappfiguren, og det var et hode i bevegelse. Min idé var å få figuren til å snu 90 grader, så den ville kaste en full skygge, og deretter få den til å nikke med hodet. og det var der servoen min kom inn igjen. Jeg ville faktisk ikke ofre en hel arduino bare for å snu en pappfigur. På kontra gjettet jeg på at en Attiny13 som jeg hadde liggende kunne gjøre jobben like godt: 4 pinner for stepper, 1 pin for servoen. det er akkurat det en Attiny13 har å tilby. Jeg innrømmer at jeg kan være veldig tett fordi jeg tenkte på alle slags scenarier for hvordan man skal bruke kontakten til å fungere på et bestemt tidspunkt, for et bestemt tidspunkt fordi jeg ideelt sett ønsket å kontrollere den fra 'Hjemme -simulatoren' som jeg nevnte tidligere. Så jeg tenkte på en ledning eller trådløs, men da var Attin13 ikke den beste ideen fordi det har et problem med Manchestercode, og jeg trengte en pin for mottakeren, og følsomheten til de billige mottakerne er ikke så stor. Så jeg tenkte allerede på en kommersiell tidbryter, men da skjønte jeg at jeg var en idiot. Siden tingen trenger sin egen PSU, hvorfor ikke ta en wallwart og sette den i en fjernkontroll som jeg allerede kunne kontrollere fra min hjemme -simulator. Så begynte jeg å bygge min endelige design. BOM

En billig ServoA SteppermotorA pappeskeEn Attiny13An 8 pinners IC -sokkelA stykke tavle 9 strimler med 17 hull Noen servo -forlengelseskablerA ULN2003A 16 pinner IC -sokkelA 10 k motstandEn plastskjærebrett (eller et annet stykke lett materiale) 3 -pins hanhodet (for servo) 6 -pins hanhodet (for trinnmotor) limtape (selvfølgelig)

I tillegg: En måte å programmere Attiny på

Bare en kommentar om Steppermotor. Jeg bruker en gammel 55SI-25DAWC, men hvis du fortsatt må kjøpe en, er det en veldig billig trinnmotor/sjåførkombinasjon tilgjengelig: 28BYJ-48. Selve motoren koster 1,50 euro, men for 2 euro kan du få den samme motoren med et førerkort. så det er en god avtale

Trinn 1: 'Hjemme alene' Konstruere pappmannen

'Hjemme alene' Konstruere pappmannen
'Hjemme alene' Konstruere pappmannen
'Hjemme alene' Konstruere pappmannen
'Hjemme alene' Konstruere pappmannen

Fra en eske kuttet jeg et stykke på 40x20 cm og et stykke på 18x18. Jeg festet de to delene sammen som et hode og en overkropp, ved hjelp av gaffatape, og etterlot et lite mellomrom mellom de to delene, men dekket av gaffatape, for å danne et hengsel for nakken. (Bildene gjør dette veldig tydelig) Fra det gamle skjærebrettet skar jeg et stykke på 20 cm langt, omtrent en halv cm tykt (tykkelsen på brettet) og ca 1,5 cm bredt. Den 1,5 cm var nok til å passe akselen til stepperen min. Hvis du har en annen stepper, må du sørge for at stykket du klipper er bredt nok til akselen på stepper din. under 'nakken' bygde jeg opp en holder til min servo av pappstykker. Selvfølgelig kan dette gjøres med et vinkeljern (eller plast), men det er litt vanskelig å feste på pappkroppen, så jeg brukte bare papp for å passe servoen. Jeg la til en arm på servoen laget av en 11 x 0,6 x 0,6 plastbit fra skjærebrettet og festet den til te Servo. Igjen, se på bildene for å se hvordan dette gjøres Selv om stepperen min var tung nok til å bære pappfigur, ville dreiemomentet og motstanden forårsaket av at den snur få motoren til å begynne å "gå" rundt, så jeg laget en bunnplate av 24 * 11 cm skjærebrett. Jeg boret to hull for å feste trinnmotoren og har fremdeles god plass til kontrolleren. Selv om servoen snur 180 grader, plasserte jeg armen slik at den ikke satte hodet helt rett. På den måten faller den lett tilbake når servoen vender tilbake til 0 -posisjon

Trinn 2: 'Hjemme alene' Konstruere kontrolleren

'Hjemme alene' Konstruere kontrolleren
'Hjemme alene' Konstruere kontrolleren
'Hjemme alene' Konstruere kontrolleren
'Hjemme alene' Konstruere kontrolleren
'Hjemme alene' Konstruere kontrolleren
'Hjemme alene' Konstruere kontrolleren
'Hjemme alene' Konstruere kontrolleren
'Hjemme alene' Konstruere kontrolleren

Kontrolleren er An Attiny13, festet til en ULN2003. Selv om jeg i min versjon har brukt litt flere pins for å gjøre brettet mer fleksibelt å bruke til andre prosjekter, er de eneste overskriftene du trenger en 3 -pins mannlig servohode og en 6 -pins mannlig header for stepper

Trinn 3: 'Hjemme alene': Programvaren

EDIT 2019 Prosjektet ble laget på grunnlag av den en gang populære 'Smeezekitty' kjernen for Attiny13. Den nå ofte brukte MicroCore fra MCUDude har tilsynelatende problemer med variabler i delayMicroseconds -setningene. Hvis du bruker den, må du erstatte "delayMicroseconds (300 + p * (2500 /180));" ved "forsinkelse (5);"

Programmet ovenfor viser hvordan du kjører min spesielle stepper, og du må kanskje endre verdiene som skrives til PORTB hvis du har anotehr stepper. Siden Attiny13 er ganske lite i minnet og heller ikke gir for mange pinner, savner programmet noe sofistikert. Det er ok å skrive direkte til PORTB, men i dette tilfellet vil det også skrive et “0” til PB4 og PB5. PB5 er ikke et stort problem, men det kan være lurt å bruke PB4. I mitt tilfelle er det der jeg legger servoen min, og det forårsaker egentlig ikke et problem, da jeg ikke bruker dem samtidig.

Imidlertid, hvis du vil bruke en annen mikrokontroller som 328, og du vil unngå å skrive til PB4 og PB5 og PB6 og PB7, kan du bruke en maske til å skrive til bit 0-3. Masken for å gjøre det er B00001111.

Hvis du vil angi bitene 0 og 2, går du slik:

I stedet for PORTB = 5, oppgi: PORTB = (PORTB & ~ maske) | (B00000101);

For de som synes dette er for kryptisk:

den OG er først verdien av PORTB med IKKE maske og OR er resultatet med verdien vi vil skrive og tildeler den tilbake til PORTB.

Så anta at PORTB = 00010000 og vi vil skrive 00000101 til det, vi kan ikke tildele det umiddelbart fordi det ville fjerne PB4.

Men hvis vi gjør som beskrevet, blir det:

PORTB = (PORTB & 11110000) | 00000101

PORTB = (00010000 & 11110000) | 00000101

PORTB = 00010000 | 00000101

PORTB = 00010101

Vi har skrevet vår verdi og beholdt PB4

Så hvorfor kan vi ikke umiddelbart ELLER PORTB med verdien vi ønsker i stedet for OG-først?

Vel, fordi det kan beholde PB4 og PB5 … men det holder også PB3-PB0 uendret hvis en av dem allerede inneholdt en '1'

Selvfølgelig ville det ikke være nødvendig å snu masken hvis vi definerer den allerede invertert, men det er vanlig praksis å gjøre det som sådan

Trinn 4: 'Hjemme alene' innbruddstyv: Det kan brukes

se videoen for å se den fungere (den roterte -90 grader, beklager det)

Intensjonen med denne enheten er å kaste bevegelige skygger på gardinene eller persiennene. Det fungerer derfor best med lysgardiner. Selve enheten skal ikke være synlig utenfra. Sørg for at den har en lyskilde et sted bak den. Jeg styrer den ved å sende et RF -signal til fjernkontakten i strømuttaket som mater strømforsyningen til denne enheten, men du kan også bruke en timer.

Trinn 5: "Hjemme alene" Hva fungerte ikke …

Denne videoen viser et av mine tidligere eksperimenter med en større torso og bare en enkel servo. Tydeligvis ikke en god design

Anbefalt: