Inhoudsopgave:

Home Alone' Inbreker Afschrikmiddel / Gebruik Attiny13 om een stappenmotor en een servo aan te drijven - Ajarnpa
Home Alone' Inbreker Afschrikmiddel / Gebruik Attiny13 om een stappenmotor en een servo aan te drijven - Ajarnpa

Video: Home Alone' Inbreker Afschrikmiddel / Gebruik Attiny13 om een stappenmotor en een servo aan te drijven - Ajarnpa

Video: Home Alone' Inbreker Afschrikmiddel / Gebruik Attiny13 om een stappenmotor en een servo aan te drijven - Ajarnpa
Video: Guns N' Moses - Bijbel ongecensureerd 2024, November
Anonim
'Home Alone' Inbreker Afschrikmiddel / Gebruik Attiny13 om een stappenmotor en een servo aan te drijven
'Home Alone' Inbreker Afschrikmiddel / Gebruik Attiny13 om een stappenmotor en een servo aan te drijven
'Home Alone' Inbreker Afschrikmiddel / Gebruik Attiny13 om een stappenmotor en een servo aan te drijven
'Home Alone' Inbreker Afschrikmiddel / Gebruik Attiny13 om een stappenmotor en een servo aan te drijven

Dit is misschien wel een van mijn vreemdste projecten tot nu toe:-) Maar zelfs als je niet geïnteresseerd bent in het weghouden van inbrekers, kan dit project worden gebruikt voor alles waar je een stappenmotor of servomotor moet aandrijven, of zelfs meerdere DC-motoren met een Attiny13. De meesten van jullie zullen zich de film Home Alone herinneren, waar McCauly Calkin de inbrekers probeert te doen alsof hij niet alleen thuis is, door een kartonnen figuur op een platenspeler te zetten en touwtjes aan een andere kartonnen figuur te doen zodat hij mensen kan imiteren Omdat ik vaak van huis ben, ben ik er heel bewust van mijn huis achter te laten alsof het nog steeds bewoond is. Daarvoor heb ik eerder een 'Thuissimulator' gepubliceerd die de lichten in een specifiek patroon schakelt met voldoende willekeur om het eruit zien alsof er iemand aanwezig is. Ik heb een 'nep-tv' toegevoegd waardoor het lijkt alsof er een tv speelt. Al deze dingen helpen, maar als het gaat om het simuleren van aanwezigheid, is er niets beter dan daadwerkelijke beweging. Dus ik had iets nodig dat bewoog en omdat ik geen platenspeler heb en iets wilde dat kon werken terwijl ik weg was, had ik iets meer solide nodig. De meest voor de hand liggende manier om een kartonnen figuur een indruk van beweging te laten wekken, zou zijn om het 90 graden te draaien zodat het afwisselend licht zou blokkeren en geen licht. Ik deed dat eerst met een goedkope servo, maar dat gaf twee problemen: het was moeilijk om een kartonnen figuur toe te voegen, zelfs een niet al te grote, aan de as en Dat deed ik, de weerstand zou gewoon te veel zijn voor die servo. Een krachtigere servo had een zeer sterke prijsstijging dus ik begon te denken aan 'stappenmotor'. Ik had er nog steeds een die zwaar was vanwege het koellichaam dat eraan was bevestigd, dus dat leek ideaal. een menselijke torso (ongeveer 80 cm lang). Ik moest het karton verstevigen, zwaarder maken, of ik moest het kleiner maken. Dat laatste leek me de beste oplossing omdat ik hem gewoon dichter bij een licht kon zetten. Al die tijd speelde ik ook met de gedachte om een figuur te laten opstaan. Motoren, katrollen etc kwamen in me op en hoewel ik dat idee nog niet helemaal heb opgegeven, heb ik voor nu gewoon besloten om een kleine functie toe te voegen aan het kartonnen figuur en dat was een bewegend hoofd. Mijn idee was om het figuur 90 graden te laten draaien, dus het zou een volledige schaduw werpen, en dan zijn hoofd laten knikken. en dat is waar mijn servo weer binnenkwam. Ik wilde eigenlijk niet een hele Arduino opofferen om een kartonnen figuur te draaien. Integendeel, ik vermoedde dat een Attiny13 die ik had liggen het werk net zo goed zou kunnen doen: 4 pinnen voor de stepper, 1 pin voor de servo. dat is precies wat een Attiny13 te bieden heeft. Ik geef toe dat ik soms erg compact kan zijn, want ik heb allerlei scenario's bedacht om het apparaat op een specifiek tijdstip te laten werken, voor een specifieke tijd, omdat ik idealiter controle wilde hebben het uit de 'Thuissimulator' die ik eerder noemde. Dus ik dacht aan een draad, of draadloos, maar toen was de Attin13 niet het beste idee, want die heeft een probleem met Manchestercode en ik had een pin nodig voor de ontvanger en de gevoeligheid van die goedkope ontvangers is niet zo geweldig. Dus ik dacht al aan een commerciële tijdschakelaar, maar toen besefte ik dat ik een idioot was. Omdat het ding zijn eigen PSU nodig heeft, waarom zou je dan geen wallwart nemen en die in een Remote Switch plaatsen die ik al kon bedienen vanuit mijn At Home-simulator. Dus begon ik met het bouwen van mijn definitieve ontwerp. BOM

Een goedkope servoEen stappenmotorEen kartonnen doosEen Attiny13Een 8-pins IC-voet Een stuk stripboard 9 strips van 17 gaten Enkele servo-verlengsnoerenA ULN2003A 16-pins IC-voetenEen weerstand van 10 kEen plastic snijplank (of een ander stuk licht materiaal) 3-pins mannelijke header (voor servo) 6 pins male header (voor stappenmotor)glueduct tape (natuurlijk)

Bovendien: Een manier om de Attiny. te programmeren

Even een opmerking over de stappenmotor. Ik gebruik een oude 55SI-25DAWC, maar als je er toch een moet kopen is er een hele goedkope stappenmotor/driver combo beschikbaar: de 28BYJ-48. De motor zelf kost 1,50 euro, maar voor 2 euro heb je diezelfde motor met een driverboard. dus dat is een goede deal

Stap 1: 'Home Alone' De kartonnen man construeren

'Home Alone' De kartonnen man construeren
'Home Alone' De kartonnen man construeren
'Home Alone' De kartonnen man construeren
'Home Alone' De kartonnen man construeren

Uit een doos heb ik een stuk van 40x20 cm en een stuk van 18x18 gesneden. Ik heb de twee stukken aan elkaar bevestigd als een hoofd en een romp, met behulp van ducttape, waarbij ik een kleine opening tussen de twee stukken liet, maar bedekt door de ducttape, om een scharnier voor de nek te vormen. (De foto's maken dit heel duidelijk) Van de oude snijplank heb ik een stuk gesneden van 20 cm lang, ongeveer een halve cm dik (de dikte van de plank) en ongeveer 1,5 cm breed. De 1,5 cm was genoeg om op de as van mijn stepper te passen. als je een andere stepper hebt, zorg er dan voor dat het stuk dat je snijdt breed genoeg is voor de as van je stepper. Een gat in het midden geboord dat op mijn as zou passen. Daarna heb ik het plastic op de basis van het kartonnen 'Torso' geplakt. onder de 'hals' bouwde ik uit stukjes karton een houder voor mijn servo. Dit kan natuurlijk met een hoekijzer (of plastic), maar dat is een beetje moeilijk te bevestigen aan de kartonnen torso, dus ik heb gewoon karton gebruikt om de servo te passen. Ik voegde een arm toe aan de servo gemaakt van een 11 x 0,6 x 0,6 stuk plastic van de snijplank en bevestigde dat aan de servo. Nogmaals, kijk naar de foto's om te zien hoe dit wordt gedaan. Hoewel mijn stepper zwaar genoeg was om een kartonnen figuur te dragen, zou het koppel en de weerstand veroorzaakt door het draaien ervoor zorgen dat de motor begon te 'lopen', dus maakte ik een basisplaat van 24 * 11 cm snijplank. Ik heb twee gaten geboord om de stappenmotor te bevestigen en heb nog steeds voldoende ruimte voor de controller. Hoewel de servo 180 graden draait, heb ik de arm zo geplaatst dat hij het hoofd niet helemaal recht zet. Op die manier valt het gemakkelijk terug wanneer de servo teruggaat naar de 0-positie

Stap 2: 'Home Alone' De controller bouwen

'Alleen thuis' De controller bouwen
'Alleen thuis' De controller bouwen
'Alleen thuis' De controller bouwen
'Alleen thuis' De controller bouwen
'Alleen thuis' De controller bouwen
'Alleen thuis' De controller bouwen
'Alleen thuis' De controller bouwen
'Alleen thuis' De controller bouwen

De controller is An Attiny13, gekoppeld aan een ULN2003. Hoewel ik in mijn versie wat meer pinnen heb gebruikt om het bord flexibeler te maken voor andere projecten, zijn de enige headers die je nodig hebt een 3-pins mannelijke servo-header en een 6-pins mannelijke header voor de stepper

Stap 3: 'Home Alone': de software

EDIT 2019 Het project is gemaakt op basis van de ooit populaire 'Smeezekitty' core voor de Attiny13. De nu veelgebruikte MicroCore van MCUDude heeft blijkbaar problemen met variabelen in de delayMicroseconds statements. Als u die gebruikt, vervangt u "delayMicroseconds(300 + p * (2500 / 180));" door "vertraging (5);"

Het bovenstaande programma laat zien hoe je mijn specifieke stepper kunt besturen en het kan zijn dat je de waarden die naar PORTB worden geschreven, moet wijzigen als je een andere stepper hebt. Omdat de Attiny13 vrij klein is in het geheugen en ook niet te veel pinnen biedt, mist het programma wat verfijning. Rechtstreeks schrijven naar PORTB is OK, maar in dit geval zal het ook een "0" naar PB4 en PB5 schrijven. PB5 is niet zo'n probleem, maar misschien wilt u PB4 gebruiken. In mijn geval is dat waar ik mijn servo plaats en dat veroorzaakt niet echt een probleem omdat ik ze niet tegelijkertijd gebruik.

Als u echter een andere microcontroller zoals een 328 wilt gebruiken en u wilt voorkomen dat u schrijft naar PB4 en PB5 en PB6 en PB7, gebruik dan een masker om alleen naar bit 0-3 te schrijven. Het masker om dat te doen is B00001111.

Als je dan bits bits 0 en 2 wilt instellen, ga dan als volgt te werk:

In plaats van PORTB=5, vermeld: PORTB=(PORTB &~masker) | (B0000101);

Voor wie dit te cryptisch vindt:

het is eerst ANDs de waarde van PORTB met NOT mask en OR is het resultaat met de waarde die we willen schrijven en wijst dat terug aan PORTB.

Dus, stel dat PORTB= 00010000 en we willen er 00000101 naar schrijven, we kunnen dat niet meteen toewijzen omdat dat PB4 zou wissen.

Als we echter doen zoals beschreven, wordt het:

PORTB=(PORTB & 11110000) | 00000101

PORTB=(00010000 & 11110000) | 00000101

PORTB=00010000 | 00000101

PORTB= 00010101

We hebben onze waarde geschreven en PB4 gehouden

Dus waarom kunnen we niet meteen OR PORTB met de waarde die we willen in plaats van eerst EN-en?

Nou, omdat dat misschien PB4 en PB5 houdt … maar het houdt ook PB3-PB0 ongewijzigd als een van hen al een '1' bevat

Natuurlijk zou het omkeren van het masker niet nodig zijn als we het al omgekeerd zouden definiëren, maar het is gebruikelijk om het als zodanig te doen

Stap 4: 'Home Alone' Inbreker Afschrikmiddel: Gebruik

bekijk de video om te zien dat het werkt (hij is -90 graden gedraaid, sorry daarvoor)

De bedoeling van dit apparaat is om bewegende schaduwen op de gordijnen of jaloezieën te werpen. Het werkt daarom het beste met lichtgordijnen. Het apparaat zelf mag van buitenaf niet zichtbaar zijn. Zorg ervoor dat er ergens een lichtbron achter zit. Ik bedien het door een RF-signaal te sturen naar de Remote Switch in het stopcontact dat de Wallwart PSU voor dit apparaat voedt, maar je kunt ook een timer gebruiken.

Stap 5: 'Alleen thuis' Wat niet werkte……

Deze video toont een van mijn eerdere experimenten met een grotere torso en slechts een simpele servo. Duidelijk geen goed ontwerp

Aanbevolen: