Den mest ubrukelige enheten

Du har sikkert sett hvordan den "mest ubrukelige enheten" ser ut, hvis ikke, bør du se en video av driften. Det er uforglemmelig!

En underholdende liten ting :) Og viktigst av alt, det kan tiltrekke gjestenes oppmerksomhet i lang tid.
Vanligvis er det slike interessante små ting du vil lage med egne hender.
Jeg må si at det ikke er vanskelig å lage en slik enhet. Du kan klare deg med det du har for hånden.

Her er prinsippet elektrisk diagram den mest ubrukelige enheten:

En konvensjonell servo kan brukes til å drive bryterskyveren. Dessuten vil en "drept" servo duge. Uansett, all elektronikk er fjernet fra den originale servoen og kun motor og innebygd girredusering brukes.

I tillegg trenger du en sekspinners On-On-bryter og en mikrobryter. Sistnevnte brukes forresten vanligvis til tastetrykk hos datamus.

Det vanskeligste med å lage en slik maskin er å lage kroppen. En skjematisk opererende anordning kan være laget av termoplast. Deretter er det enkelt å fullføre saken fra tre eller plast.

Se videoinstruksjonene for å lage det mest ubrukelige. Denne instruksjonen viser hvordan du gjør det og hva du skal feste hvor.

Den produserte enheten er ikke så vakker som i den første videoen, men den fungerer og er like ubrukelig som originalen :)

Pavel kommenterer:

Å kult! Jeg går og kjøper alt jeg trenger)

Andrzej kommenterer:

Et morsomt hjemmelaget produkt. Det er ingen skam å gi noe slikt, og du kan få mye underholdning ut av det - bare hvem vet hvor mye!

Arduino + to servoer + ladekort + boost-omformerkort + gammelt batteri + en haug med radiokomponenter + kryssfinerstykke + vippebryter = en idiots drøm gikk i oppfyllelse!
Mye tekst for de som liker å lese. Mange spoilere for de som liker å lese diagonalt. Video, for de som elsker videoer. Skisse for de som liker å umiddelbart kopiere og løpe "på kneet". Foto, foto, foto. Katt, for kattelskere.

Egentlig ikke en ansvarsfraskrivelse

Dette er mitt første prosjekt, bortsett fra blinkende LED, Hello world, etc. Tradisjonen tro må du først strø aske på hodet for å sikre at koden er langt fra perfekt og sørge for å blande deg i en tvist om dette. Og også angående delvis kopiering av kode fra et annet prosjekt, be om ikke å slå for hardt osv. Men dette vil ikke skje. Koden er perfekt! Fordi det fungerer, liker jeg det, og jeg har laget det for meg selv.
Jeg vil gi råd til de som er interessert: ikke vær redd, bli med i kampen, måke fjell med kode, bygg dine egne megapyramider fra forskjellige operatører. Over tid vil stil, raffinement og ideal komme.
Så lenge det er plass i kontrollerens minne, er du ikke redd for noe. Hvis du treffer en vegg, vil du optimalisere. Og dette er også utvikling. Det er viktig.
En stor bok om C-programmering - ja, nyttig. Men til å begynne med er det mye mer nyttig å ha en kort referanse på kommandoer tilgjengelig og ha flere lenker i bokmerkene dine for å jobbe med enkle eksempler, biblioteker osv., som , eller samme Amperka.
Dessuten hjelper flytskjemaer meg mye. Rektangel, diamant, oval. Alle som har vært borti det forstår. Jeg gjør ett prosjekt nå - jeg kan ikke gjøre det uten et flytskjema. For meg er det bedre å tegne i flere dager - tegne om på papir for å tydeligere forestille seg hele flyten av programmet, enn å skrive ned en haug med kode og sette seg fast i den, fordi... Jeg har ikke muligheten til å dekke hele koden med kraften i programmeringstankene mine, på grunn av min begrensede erfaring.
For de som ønsker å gjenta det eller gjøre det på sin egen måte, vil jeg svare på alle spørsmål.
Jeg vil ikke gå inn i tomme tvister om skriving, stil, design, kode og nødvendighet av produktet osv. Hvis jeg gjorde en alvorlig feil et sted i anmeldelsen, retter jeg den eller legger den til.

Du kan Google hva "den mest ubrukelige enheten" er. Jeg kom over det ved et uhell. Denne koden ble tatt som grunnlag, fordi den startet ikke av seg selv, og jeg ønsket å lage mine egne manus.

Lyrisk digresjon

De sier at etter førti, spesielt når du allerede er veldig etter førti, må du prøve å "flekse" hjernen din. Og at det å lære språk er den beste oppvarmingen. Og ikke bare i den alderen. Jeg er ikke så god i språk, men Helsemagasinet ser ut til å gi råd... Generelt bestemte jeg meg for å lære noe nytt for meg selv. Elektronikk er ikke nytt for meg, selv om jeg har glemt det meste, men programmering har aldri vært kjent for meg. Jeg var redd ham. Men her falt mange tegn ovenfra sammen: magasinet "Helse", som anbefaler å lære noe nytt, en langvarig drøm om å forstå (minst litt) programmering (minst noe) og youtube, der bare de late ikke snakker om hvordan du blinker en LED med smartavgift for en dollar og en krone.
Før dette klarte jeg at LED-en blinker ganske bra ved å bruke to transistorer, en kondensator og et par motstander, men nå, sier de, er det ikke comme il faut. Så du må være i trenden.


Jeg likte virkelig denne ubrukelige enheten, i ordets bokstavelige betydning. Jeg så det og ble forelsket. Jeg vil ha det, det er alt! Som en barnedrøm! Men alderen har gjort sine egne justeringer. Jeg vil lage den selv, ikke kjøpe den. Spesielt siden den er på salg enkle enheter. Jeg kom over en "intellektuell", men jeg kunne ikke finne noe lignende på salg. Dessuten må det gjøres!
Og igjen, Arduino. Og jeg bom-boomer ikke i det. Så vi må finne ut av det. Aliexpress til unnsetning. Jeg begynte med Arduino. Jeg forsto at veien til studier ville være vanskelig og ofre var uunngåelige. Så jeg bestilte fem forskjellige. La dem brenne, hvis noe. Feilsøking av kretsen skjedde på Uno fra en annen selger. Men siden akkurat dette brettet var i den endelige enheten, ble det inkludert i tittelen.
I tillegg til Arduinos, bestilte jeg en enorm mengde all slags søppel, både Arduino-kompatibel og nesten Arduino. Her vil jeg bare fortelle deg om hva som var nyttig i dette produktet.

Arduino Pro Mini


Leveringen er rask, pakket i en standard antistatisk pose og konvolutt med en kviset indre overflate. Selgeren er omgjengelig, russisktalende.
På en 328-brikke. 3,3 volt, 8 MHz. Hvorfor er det slik? Ja, ved en feiltakelse. Jeg ville ha 5 volt, 16 MHz, men kjøpte denne. Det er min egen feil. For dette prosjektet er det imidlertid ikke kritisk - jeg installerte en ekstra spenningsomformer. Det er alt. Jeg fant ingen store forskjeller fra andre Minier. Merkeforskjellen er svart tekstolitt(?) Av jambs: RAW-pinnen fungerer ikke på brettet. Men det stoppet heller ikke. Selv om en 3,3 V-omformer kan spare penger med den.Kammene er ikke loddet. Brettet er godt laget.
Hvorfor så kort? Fordi det allerede er partiskhet om denne selgeren og hans gebyrer (klausul 18). De som vil finner det lett. Det er ingen vits i å gjenfortelle det. Jeg har også lagt til mine to øre i kommentarene til den. Og jeg korresponderte mye med selgeren.


Servodrev SG90


$3,2 per parti med to stykker.
Det er ikke noe spesielt å beskrive. Svak servodrift med gjennomsnittlig posisjoneringsnøyaktighet, som er svært avhengig av bevegelseshastigheten. Men det er billig. For lokkdrevet - mer enn nok, for "hånden" - på grensen til muligheter. Den krever 5 volt for å fungere, men 3,3 er tilstrekkelig for kontroll. Jeg prøvde å kontrollere den gjennom omformeren og direkte fra Arduino - det er ingen forskjell. Derfor sparte nivåomformeren penger.


Ladekontroller og strømomformer


$2,28 for fem stykker. Med beskyttelse. Under lading er den røde lysdioden på; når ladingen er fullført, lyser den blå lysdioden. Det var en anmeldelse her.


$0,50 hver. Levering er imidlertid betalt, men jeg kjøpte en hel haug med andre ting fra denne butikken, så levering var ikke plagsomt. USB-kontakten ble fjernet for å lette vekten))) Utgangen produserer 5,12 volt.





Jeg tok det offline. Litt trangt. For å lette driften av servoen var det mulig å demontere den, forkorte fjæren eller erstatte den med en svakere. Men latskapen vant. Jeg sa det slik. Riktignok måtte jeg skrive inn kodetilsetningene til rotasjonsvinkelen til servoen ved høye hastigheter.


TTL-konverter


$1,5 per stykk. Egentlig bestilte jeg den først. Det er halve prisen. Men av noen merkelige grunner døde han en heroisk død. Jeg forstår fortsatt ikke hvordan jeg drepte ham. Av denne grunn stoppet prosjektet i en måned til en ny, mer avansert kom - ingen grunn til å trykke på reset. Er ikke dette fremgang?


Resten er fra lager

Spenningsregulator 1117T-3,3V i TO220-hus, kondensatorer 1500,0x6,3 og 470,0x16, to 0,1 μF kondensatorer, hvit LED og mikrobryter fra barnebil, 220 Ohm motstand. Batteriet hadde ligget ubrukt i flere år. Jeg tok en gang fra hverandre en brent (bokstavelig talt) bærbar DVD-spiller. Det eneste gode der var batteriene som overlevde. Her er en av dem som kom godt med. Spenning 3,7 V, jeg fant ikke kapasiteten i merkingen.
Limpistol, strikk for pengene, to kroker fra... en BH (takk til min kone. Darling, I love you!), to møbeldybler, fire skruer, fire selvklebende støtfangere til møbeldører, et stykke brødbrett, ledninger, kontakter.


Situasjonen med skroget var mer komplisert. Mange bokser er prøvd. Plastboksen fra Tissot-klokken viste seg å være skjør, delvis papp. Men metallgardinene fra den kom opp. Det er enda en igjen på lager. Jeg prøvde ferdige parfymebokser, en vinboks og en godteboks. Til slutt bestemte jeg meg for å gjøre det selv.
Kryssfiner av høy kvalitet, mest sannsynlig bjørk, ble funnet i et brennesett for barn. Barnet har blitt voksen - settet gjenstår. På den ene siden var det en tegning, men den andre siden så for å si det rett ut, utmerket

Enkelt sagt, flott

På skolen hadde vi en Trudovik. Eldret. Generelt er han en fantastisk person. Han ble respektert. Da vi gikk gjennom elektrisitet, ved å bruke eksemplet med et batteri, en lyspære og en nøkkel, holdt han oss et foredrag.
«Det er strøm i batteriet. Nå kommer han ut av det positive og følger ledningene. Det går, går, plutselig bam - nøkkelen er på vei. Og nøkkelen er åpen. Tok forstår at det ikke er noe sted å gå lenger. Han snudde seg og gikk inn i batteriet. Og lyset lyser ikke. Vi lukker nøkkelen. Strømmen begynte å flyte igjen, nådde nøkkelen, gikk gjennom den, gikk gjennom lyspæren og returnerte til batteriet. Og lyspæren lyser, ærlig talt, perfekt.» Siden den gang har det vært en slik setning i leksikonet, som et synonym for noe uventet vellykket.




Jeg prøvde å kutte kryssfiner med en baufil og en stikksag, men det fungerte ikke. Spon, som da er vanskelig å fjerne, og en ujevn kant. Jeg fant en vei ut - en skarp brevpapirkniv. Den skjærer gjennom halvparten av kryssfiner på den ene siden og halvparten på den andre. Så litt sliping og alt er i orden. Men, med en god metalllinjal og et konstant skarpt blad får du et perfekt kutt og en rett linje.
Selvfølgelig, ikke uten sine feil - under det håndlagde klistremerket er det et banalt hull skjult. Jeg boret den i midten for vippebryteren. Men servoen passet ikke. Jeg måtte flytte vippebryteren til siden og lukke hullet. Slike vanskeligheter skremmer meg ikke.
Jeg ser ikke poenget med å beskrive hvert nys som er involvert i å lage enheten. Jeg vil beskrive noen punkter. Og den som har hender, la ham gjøre det.
Jeg satte sammen boksen ved hjelp av smeltelim. Selve limet sparte jeg ikke på. Den holder seg perfekt. Knirker ikke, spiller ikke. Rask, billig og munter. Og generelt, som du la merke til, holdes nesten alt sammen av dette limet. Jeg anbefaler. Det fremskynder monteringsprosessen betraktelig. Slukkemikrofonen limte jeg fra innsiden til venstre vegg - den kan sees litt på bildet.
Lokket var festet til gardinen.

Jeg led med sløret. Jeg eksperimenterte mye. Jeg ønsket at lokket skulle ligge på toppen av boksen, og ikke inne. Jeg bøyde til og med flere versjoner av stiftgardiner fra binders. Poe husket senere at under eksperimentene fanget gardinene fra esken med Tissot-klokker øynene hans. Så bra, sveitsisk (kinesisk?).
Sløret er en viktig ting. Kvaliteten er veldig viktig for den generelle ytre skjønnheten til enheten.
Hovedvippebryteren må være mykere, da vil den fungere lettere.
Lokket settes tilbake til lukket stilling med et elastisk bånd. Det er ikke nødvendig å velge det veldig stivt - servoen vil håndtere det, men hvis gardinen er sentralt plassert, vil lokket deformeres.
Når det gjelder kryssfiner, er lakkering obligatorisk - det blir veldig skittent. Jeg brukte klar tsapon lakk. Rett og slett fordi det ikke var noen andre for hånden.
Det er bedre å plassere servoen som styrer "hånden" annerledes. Ikke på siden, men foran vippebryteren. Da kan "armen" være enklere å produsere - L-formet, i stedet for U-formet. Bredden på boksen kan reduseres og vippebryteren kan plasseres i midten.
Det er bedre å rotere lokkservoen 180 grader, da vil det i koden være lettere å knytte gradene til denne servoen med betjeningen av lokket. For meg er det omvendt, så åpning betyr synkende grader. Men for "hånden" er det omvendt. Og det er mer riktig å skyve lokket fra samme side som elastikken trekker det tilbake fra.
Boksen bør ikke gjøres for liten. Det vil ikke være praktisk å bruke. Men en flatere en er akseptabel. Boksen er lett og er den flatere blir den mer stabil. Det vil være mer praktisk å trykke på vippebryteren med fingeren uten å holde i boksen.
Jeg laget noe som et skjold av to deler av et brødbrett. Loddet inn i Arduino uten kontakter. Tett. Jeg bryr meg ikke.


Men jeg har laget alt periferutstyret på kontakter. Det er mer behagelig.
En stor kondensator for å drive Arduino (3,3 volt) er nødvendig. Uten den henger Arduinoen.
Jeg har ikke monteringstegninger av enheten. Det er så enkelt at mange andre kan brukes enkle løsninger, som all mekanikk er basert på. I videoen, både mine og andre lignende enheter, kan du se drivalternativene som brukes.

#inkludere #inkludere Servo dørServo; //cover servo drive Servo handServo; //arm servo Sprett bouncer = Sprett(12, 40); //opprett en forekomst av Bounce-klassen for pin 12 på vippebryteren int pos = 0; //startposisjon variabel int pos1door = 70; //utgangsposisjon av lokket servo int pos2door = 30; //endelig plassering av dekselservoen int pos1hand = 10; //utgangsposisjonen til håndservoen int pos2hand = 160; //endelig posisjon av armen servo int r; //tilfeldig tall som alternativet for å slå av vippebryteren avhenger av #define LED_PIN 11 // nummeret på utgangen koblet til LED int ledState = LOW; // angi statusen til LED med denne variabelen long previousMillis = 0; // lagre tiden for siste veksling av LED #define INTERVAL 30UL // intervall mellom å slå på/av LED void-oppsettet() ( pinMode(LED_PIN, OUTPUT); pinMode(12, INPUT); // switch pin 12 til inngangsmodus digitalWrite(12, 1); //slå på pull-up motstanden på den Serial.begin(9600); //sett porten til en hastighet på 9600 bps. For feilsøking. Så kan du fjerne den. doorServo .attach(9); //tilordne lokkservoen til pinne 9 handServo.attach(10); //tilordne håndservoen til pinne 10 doorServo.write(pos1door); //sett lokkservoen til utgangsposisjonen handServo. write(pos1hand); //sett håndservoen til utgangsposisjonen ) void loop() ( if (bouncer.update()) ( if (bouncer.read()==0) ( //hvis knappen trykkes () r = random(0,11); //generer et tilfeldig tall jn 0 til 10 Serial.println® ; if (r == 0) ( move_0(); ) //function call by tilfeldig tall else if (r == 1) ( move_1(); ) else if (r == 2) ( move_2(); ) else if (r == 3) ( move_3(); ) else if (r == 4) ( move_4(); ) else if (r == 5) ( move_5(); ) else if (r == 6) ( move_0(); ) else if (r == 7) ( move_1(); ) else if (r == 8) ( move_4(); ) else if (r == 9) ( move_3(); ) else if (r == 10) ( move_0(); ) ) ) ) // Funksjonsbibliotek. Generelt prinsipp: åpne lokket - stikk ut hånden og slå av vippebryteren - fjern hånden - lukk lokket // og det er muligheter for hvordan du kan dekorere det vakkert............ void move_0())( //enkelt alternativ: åpne-slå-av-lukk //åpne lokket for(pos = pos1dør; pos >= pos2dør; pos -=3) ( doorServo.write(pos); delay(15) ; ) //stikk ut hånden for(pos = pos1hånd ;pos<= pos2hand; pos +=3) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand; pos >= pos1hånd; pos -=3) ( handServo.write(pos); delay(15); ) //lukk lokket for(pos = pos2dør; pos<= pos1door; pos +=3) { doorServo.write(pos); delay(15); } } void move_1(){ //простой вариант 2: открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= pos2dør; pos -=1) ( doorServo.write(pos); delay(15); ) delay(1000); //stikk ut hånden for(pos = pos1hånd; pos<= pos2hand; pos +=1) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand; pos > <= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_2(){ //задумчивый вариант 2: приоткрыли-закрыли-открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= pos2dør+15; pos -=5) ( doorServo.write(pos); delay(15); ) delay(1000); //lukk lokket for(pos = pos2dør+15; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } delay(1000); //открываем крышку for(pos = pos1door; pos > <= pos2hand+2; pos +=5) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand+2; pos >= pos1hånd; pos -=5) ( handServo.write(pos); delay(15); ) //lukk lokket for(pos = pos2dør; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_3(){ //дерганый вариант: приоткрыли-подергали - закрыли-открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= pos2dør+15; pos -=1) ( doorServo.write(pos); delay(50); ) delay(500); //trekk i lokket for(int i=1; i<=8; i ++) { doorServo.write(pos2door+18); delay(80); doorServo.write(pos2door+15); delay(80); static unsigned long previousMillis = 0; if(millis() - previousMillis >INTERVAL) ( forrigeMillis = millis(); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); ) ) delay(500); //lukk lokket for(pos = pos2dør+15; pos<= pos1door; pos +=1) { doorServo.write(pos); delay(50); } delay(1000); //открываем крышку for(pos = pos1door; pos >= pos2dør; pos -=5) ( doorServo.write(pos); delay(15); ) //stikk ut hånden for(pos = pos1hånd; pos<= pos2hand+2; pos +=5) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand+2; pos >= pos1hånd; pos -=5) ( handServo.write(pos); delay(15); ) //lukk lokket for(pos = pos2dør; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_4(){ //открываем крышку delay(2000); for(pos = pos1door; pos >= pos2dør+15; pos -=5) ( doorServo.write(pos); delay(50); ) delay(500); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); delay(2000); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); forsinkelse(500); //lukk lokket for(pos = pos2dør+15; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(50); } delay(1000); //открываем крышку не полностью for(pos = pos1door; pos >= pos2dør+15; pos -=1) ( doorServo.write(pos); delay(50); ) delay(2000); //åpne lokket helt for(pos = pos2dør+15; pos >= pos2dør; pos -=1) ( doorServo.write(pos); delay(15); ) //stikk ut hånden for(pos = pos1hånd; pos<= pos2hand-35; pos +=1) { handServo.write(pos); delay(35); } delay(1000); //высовываем руку for(pos = pos2hand-35; pos <= pos2hand+3; pos +=4) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand+3; pos >= pos1hånd; pos -=7) ( handServo.write(pos); delay(15); ) //lukk lokket for(pos = pos2dør; pos<= pos1door; pos +=7) { doorServo.write(pos); delay(15); } delay(500); //открываем крышку for(pos = pos1door; pos >= pos2dør+20; pos -=5) ( doorServo.write(pos); delay(50); ) delay(300); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); forsinkelse(500); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); forsinkelse(100); //lukk lokket for(pos = pos2dør+20; pos<= pos1door; pos +=1) { doorServo.write(pos); delay(50); } } void move_5(){ //возня for(int i=1; i <=2; i ++) { for(pos = pos1door; pos <= pos1door+45; pos +=5) { doorServo.write(pos); delay(50); } for(pos = pos1door+45; pos >= pos1dør; pos -=5) ( doorServo.write(pos); delay(50); ) delay(100); ) //trekk i lokket for(int i=1; i<=3; i ++) { doorServo.write(pos1door-6); delay(80); doorServo.write(pos1door-3); delay(80); } delay(300); //открываем крышку digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos1door; pos >= pos2dør+25; pos -=5) ( doorServo.write(pos); delay(50); ) delay(500); //åpne dekselet digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2dør+25; pos >= pos2dør+10; pos -=5) ( doorServo.write(pos); delay(50); ) //open the door digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2dør+10; pos >= pos2dør-5; pos -=2) ( doorServo.write(pos); delay(50); ) //stikk ut hånden for(pos = pos1hånd; pos<= pos2hand-35; pos +=9) { handServo.write(pos); delay(35); } delay(1000); //убираем руку for(pos = pos2hand-35; pos >= pos2hånd-70; pos -=1) ( handServo.write(pos); delay(15); ) delay(1000); //stikk ut hånden for(pos = pos2hand-70; pos<= pos2hand+3; pos +=9) { handServo.write(pos); delay(15); } delay(50); //убираем руку for(pos = pos2hand+3; pos >= pos1hånd; pos -=7) ( handServo.write(pos); delay(15); ) //lukk dekselet digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2dør-5; pos<= pos1door+3; pos +=5) { doorServo.write(pos); delay(50); } }

Skissen foreslått av forfatteren fra lenken i begynnelsen av anmeldelsen fungerte ikke for meg. Og jeg var ennå ikke den proffen jeg er nå))))))))
Generelt begynte jeg å forstå. Som et resultat, basert på noen andres, laget jeg min egen skisse. Lagt til anti-sprett beskyttelse. Det hadde selvfølgelig vært enklere å installere en motstand med en kondensator, men jeg ville virkelig programmere den.


I prinsippet er opplegget klart av skissen. Men jeg tar henne uansett. Beklager kvaliteten - så godt jeg kunne. Jeg tok et litt annet omformerbrett - jeg fant det ikke nødvendig i forfra.


Det er ingen spesielle forklaringer på skissen. Kanskje øyeblikket for å legge til noen få graders rotasjonsvinkel, når servohastigheten er høy. Jeg la merke til at hvis "hånden" plutselig hopper ut, slår den ikke av vippebryteren. Dette skyldes åpenbart den dårlige kvaliteten på servoene. Derfor må du legge til litt til avgangsvinkelen til "armen". Jeg mistenker at med repetisjon kan disse tilleggsgradene være annerledes for deg. Avhenger av skulderen på "armen".
Og om programmene. Så langt er det seks programmer. Ringt opp gjennom generering av tilfeldig tall. Dessuten kalles enkle programmer (0, 1 og 2) oftere enn vanlige. Det virket for alle mine testere at mer sofistikerte programmer skulle være en sjelden hyggelig bonus, så dukker det opp en viss intriger. Så jeg gjorde det.
For elskere av tall er størrelsen på boksen: lengde - 150 mm, høyde - 70 mm, bredde - 65 mm.

Youtube har svekket kvaliteten kraftig. Hvis du trenger å se på originalen, last den ned. 21 MB.
Her er skissen endret slik at du kan se alle seks programmene etter tur, slik at du har en ide om dem alle. I livet, som jeg skrev, har de en pseudo-tilfeldig rekkefølge.



Lading skjer via mikro-USB med vanlig mobillader. Batterilevetiden er svært avhengig av bruksfrekvensen. Noen ganger i flere dager, og noen ganger "dreper" jeg på en dag.


Til slutt.
Prosjektet kan imidlertid videreutvikles og forbedres. Du kan komme opp med nye scenarier. Du kan legge til en diskanthøyttaler og stemme enheten. La ham for eksempel "brumme", som å bli sint, hvis tiden mellom å slå av og på vippebryteren er veldig kort. Du kan, som i det originale prosjektet, legge til bevegelse av boksen i forskjellige retninger.
Du kan bygge inn en sjekk for saken når "hånden", av en eller annen grunn, ikke slo av vippebryteren (for eksempel når servoen ikke når ønsket vinkel i kulde) og justerer vinkelen en om gangen, skriver en slags "nervøs" melding spesielt for et slikt tilfelle » avslutningsprogram. Du kan installere Nano og programmere via USB uten å demontere enheten hver gang. Jeg likte anmeldelsen +123 +232

Arduino + to servoer + ladebrett + boost-omformerkort + gammelt batteri + en haug med radiodeler + kryssfinerstykke + vippebryter = en idiots drøm gikk i oppfyllelse!
Mye tekst, for de som liker å lese. Mange spoilere for de som liker å lese "diagonalt". Video, for de som elsker video. Sketch, for de som liker å umiddelbart kopiere og løpe på knærne. Foto, foto, foto. Katt, for kattelskere.

Egentlig ikke en ansvarsfraskrivelse

Dette er mitt første prosjekt, ikke medregnet LED-blink, Hello world, etc. I følge tradisjonen må du først strø aske på hodet ditt, med tanke på at koden er langt fra perfekt og du må involvere deg i en tvist om dette. Og også angående delvis kopiering av kode fra et annet prosjekt, be om ikke å slå for hardt osv. Men dette vil ikke skje. Koden er perfekt! Fordi det fungerer, liker jeg det og det er laget for meg selv.
Jeg vil gi råd til de som er interessert: ikke vær redd, gå inn i kamp, ​​grav deg gjennom fjell med kode, bygg dine egne megapyramider fra forskjellige operatører. Med tiden vil stil, raffinement og ideal komme.
Så lenge det er plass i kontrollerens minne, er du ikke redd for noe. Hvis du treffer en vegg, vil du optimalisere. Og dette er også utvikling. Det er viktig.
En stor bok om programmering i C - ja, nyttig. Men til å begynne med er det mye mer nyttig å ha en kort oppslagsbok om kommandoer tilgjengelig og ha flere lenker i bokmerkene for å jobbe med enkle eksempler, biblioteker osv. de arduino-diy.com, eller samme ampere.
Og også, flytskjemaer hjelper meg mye. Rektangel, diamant, oval. De som har vært borti det forstår. Jeg gjør ett prosjekt nå - jeg kan ikke gjøre det uten et flytskjema. For meg er det bedre å tegne og tegne om på papir i flere dager for å tydeligere forestille seg hele fremdriften av programmet, enn å skissere en haug med kode og sette seg fast i den, fordi... Jeg har ikke muligheten til å dekke hele koden med kraften i programmeringstankene mine, på grunn av min begrensede erfaring.
For de som ønsker å gjenta det eller gjøre det på sin egen måte, vil jeg svare på alle spørsmål.
Jeg vil ikke gå inn i tomme tvister om mine skriveferdigheter, stil, design, kode og behov for produktet osv. Hvis jeg har gjort en alvorlig feil et sted i anmeldelsen, vil jeg rette den eller legge den til.

Hva er «Den mest ubrukelige enheten» kan du google selv. Jeg kom over ham ved et uhell. Denne koden ble tatt som grunnlag, fordi... Det startet ikke av seg selv, og jeg ville lage mine egne manus.

Lyrisk digresjon

De sier at etter førti, spesielt når du allerede er veldig etter førti, må du prøve å "varme opp" hjernen din. Og at det å lære språk er den beste oppvarmingen. Og ikke bare i den alderen. Jeg er ikke så god i språk, men magasinet "Helse" ser ut til å gi råd... Generelt bestemte jeg meg for å lære noe nytt for meg selv. Elektronikk er ikke nytt for meg, selv om jeg har glemt det meste, men programmering har aldri vært kjent for meg. Jeg var redd ham. Men her falt mange tegn ovenfra sammen: magasinet "Health", som anbefaler å lære noe nytt, en langvarig drøm om å forstå (minst litt) programmering (minst noe) og YouTube, der bare de late ikke gjør det fortelle deg hvordan du blinker en LED ved hjelp av smart betaling for en dollar og kopek.
Før dette gjorde jeg en god jobb med å kontrollere blinkingen av LED-en ved hjelp av to transistorer, en kondensator og et par motstander, men nå, sier de, er dette ikke comme il faut. Så du må være i trenden.


Jeg likte virkelig denne ubrukelige, i ordets rette forstand, enheten. Jeg så det og ble forelsket. Jeg vil ha det, det er alt! Som en barndomsdrøm! Men alderen har gjort sine egne justeringer. Jeg vil lage den selv, ikke kjøpe den. Dessuten er enkle enheter på salg. Jeg kom over "intelligent", men jeg kunne ikke finne noe lignende til salgs. Dessuten må vi gjøre det!
Og igjen, Arduino. Og jeg bom-boomer ikke i det. Så vi må finne ut av det. Aliexpress for å hjelpe. Startet med Arduino. Jeg forsto at veien til studier ville være vanskelig og ofre var uunngåelige. Derfor bestilte jeg fem forskjellige. La dem brenne, hvis noe. Feilsøking av kretsen skjedde på Uno fra en annen selger. Men siden det var dette brettet som havnet i den endelige enheten, ble det inkludert i tittelen.
I tillegg til Arduinoen, bestilte jeg en enorm mengde all slags søppel, både Arduino-kompatibel og nesten Arduino. Her vil jeg bare fortelle deg om hva som var nyttig i dette produktet.

Arduino Pro Mini


Leveringen er rask, pakket i form av en standard antistatisk pose og en konvolutt med en kviset indre overflate. Selgeren er omgjengelig, russisktalende.
På en 328-brikke. 3,3 volt, 8 MHz. Hvorfor er det slik? Ja ved en feiltakelse. Jeg ville ha en 5 volt, 16 MHz, men jeg kjøpte denne. Det er min egen feil. For dette prosjektet er det imidlertid ikke kritisk - jeg installerte en ekstra spenningsomformer. Det er faktisk alt. Jeg fant ingen store forskjeller fra andre Minier. Merkeforskjellen er svart tekstolitt(?) Blant manglene: RAW-pinnen fungerer ikke på brettet. Men det stoppet heller ikke. Selv om en 3,3 V-omformer kan spare penger med den. Barna er ikke kablet. Betalingen ble gjort bra.
Hvorfor så kort? Fordi det allerede er partiskhet om denne selgeren og hans gebyrer (klausul 18). De som vil vil finne det lett. Det er ingen vits i å gjenfortelle det. Jeg la også til mine to øre i kommentarene til ham. Og jeg korresponderte med selgeren av hjertens lyst.

Servodrev SG90


$3,2 per batch med to stykker.
Det er ikke noe spesielt å beskrive. Svak servodrift med gjennomsnittlig posisjoneringsnøyaktighet, som er sterkt avhengig av bevegelseshastigheten. Men det er billig. For lokkdrevet - mer enn nok, for "hånden" - på grensen til muligheter. For å jobbe trenger du 5 volt, men for kontroll er 3,3 nok. Jeg prøvde å kontrollere den gjennom omformeren og direkte fra Arduino - det er ingen forskjell. Derfor sparte nivåomformeren penger.

Ladekontroller og strømomformer


$2,28 for fem stykker. Med beskyttelse. Under lading er den røde LED-en på, slutten av ladingen er den blå LED-en. Det var en anmeldelse her.


$0,50 hver. Levering er imidlertid betalt, men jeg tok også en hel haug med alt mulig fra denne butikken, så levering var ikke stressende. USB-kontakten er fjernet for å gjøre den lettere))) Utgangen produserer 5,12 volt.


Jeg tok det offline. Litt trangt. For å gjøre arbeidet med serva lettere, var det mulig å demontere den, forkorte fjæren eller erstatte den med en svakere. Men latskapen vant. Jeg sa det slik. Riktignok måtte jeg skrive i koden tillegg til rotasjonsvinkelen til servoen ved høye hastigheter.

TTL-konverter


$1,5 per stykk. Egentlig bestilte jeg den først. Det er dobbelt så billig. Men av noen merkelige grunner døde han de modiges død. Jeg forsto fortsatt ikke hva jeg brukte til å drepe ham. Av denne grunn stoppet prosjektet i en måned, inntil en ny, mer avansert kom - ingen grunn til å trykke tilbakestill. Er ikke dette fremgang?

Resten er fra lager

Spenningsregulator 1117T-3,3V i TO220-pakke, kondensatorer 1500,0×6,3 og 470,0×16, to 0,1 µF kondensatorer, hvit LED og mikrobryter fra barnemaskin, motstand 220 Ohm. Batteriet ble liggende i flere år uten bruk. Jeg tok en gang fra hverandre en brent (bokstavelig talt) bærbar DVD-spiller. Det eneste gode der var at batteriene overlevde. Her er en av dem som kom godt med. Spenning 3,7 V, jeg fant ikke kapasitansen i merkingen.
En limpistol, en strikk for pengene, to kroker fra... en BH (takk til min kone. Kjære, jeg elsker deg!), to møbeldybler, fire skruer, fire selvklebende støtfangere til møbeldører å, et stykke et brødbrett, ledninger, kontakter.

Situasjonen med kroppen var mer komplisert. Mange bokser ble prøvd. Plastboksen fra Tissot-klokken viste seg å være skjør, delvis papp. Men metallgardinene gikk bort fra henne. Det er enda en igjen på lager. Jeg prøvde ferdige parfymebokser, en vinboks og en godteboks. Til slutt bestemte jeg meg for å gjøre det selv.
Kryssfiner av høy kvalitet, mest sannsynlig bjørk, ble funnet i et brennesett for barn. Barnet har blitt voksen - settet gjenstår. En tegning ble brukt på den ene siden, men den andre siden så ut for å si det rett ut, flott

For å si det rett ut, flott

På skolen hadde vi en arbeidsarbeider. I alderen. Generelt er han en fantastisk person. Han ble respektert. Da vi gikk gjennom strøm, for eksempel et batteri, en lyspære og en nøkkel, holdt han oss et foredrag.
«Det er strøm i batteriet. Nå kommer han ut av det blå og følger ledningene. Det går, går, plutselig bam - nøkkelen er på vei. Og nøkkelen er åpen. Tok forstår at det ikke er noe sted å gå lenger. Han snudde seg og gikk inn i batteriet. Og lyset lyser ikke. La oss lukke nøkkelen. Strømmen gikk igjen, nådde nøkkelen, gikk gjennom den, gikk gjennom lyspæren og returnerte til batteriet. Og lyspæren er på, bare for å si, flott.» Siden den gang har det vært en slik setning i leksikonet som et synonym for noe uventet vellykket.


Jeg prøvde å kutte kryssfiner med en baufil, en stikksag, men ingenting fungerte. Spon, som da er vanskelig å fjerne, ujevne kanter. Jeg fant en vei ut - en skarp brevpapirkniv. Den skjærer gjennom halvparten av kryssfiner på den ene siden og halvparten på den andre. Så litt sliping og alt er i orden. Men, med en god metalllinjal og et konstant skarpt blad får du et perfekt kutt og en rett linje.
Selvfølgelig, ikke uten feil - under håndlaget klistremerke er det et banalt hull skjult. Jeg boret den i midten for vippebryteren. Men serveren passet ikke. Jeg måtte flytte vippebryteren til siden og lukke hullet. Slike vanskeligheter skremmer meg ikke.
Jeg ser ikke poenget med å beskrive hvert trinn i å lage enheten. Jeg vil beskrive noen punkter. Og den som har hender, la ham gjøre det.
Jeg satte sammen boksen ved hjelp av varmt lim. Jeg sparte ikke på selve limet. Holder seg perfekt. Knirker ikke, spiller ikke. Rask, billig og munter. Og generelt, som du la merke til, holdes nesten alt sammen av dette limet. Jeg anbefaler det. Det fremskynder monteringsprosessen betraktelig. Den avslåtte mikrofonen ble limt fra innsiden til venstre vegg - det kan sees litt på bildet.
Jeg festet lokket til gardinen.

Jeg led med sløret. Jeg eksperimenterte mye. Jeg ønsket at lokket skulle ligge på toppen av boksen, og ikke inne. Jeg bøyde til og med flere versjoner av gardinstifter fra binders. Så husket jeg at i prosessen med eksperimenter fanget gardiner fra en Tissot-klokkeboks oppmerksomheten min. Så snill, sveitsisk (kinesisk?).
Gardinen er en viktig ting. Kvaliteten er veldig viktig for den generelle ytre skjønnheten til enheten.
Hovedvippebryteren må være mykere, da blir det lettere å jobbe.
Lokket settes tilbake til lukket stilling med et elastisk bånd. Det er ikke nødvendig å velge det veldig vanskelig - servaen vil håndtere det, men hvis gardinen er sentralt plassert, vil lokket deformeres.
Når det gjelder kryssfiner er lakkering et must - det blir veldig skittent. Jeg brukte fargeløs capon lakk. Rett og slett fordi det ikke var noen andre for hånden.
Det er bedre å plassere servoen som styrer "hånden" annerledes. Ikke på siden, men foran vippebryteren. Da kan "armen" være lettere å produsere - L-formet, i stedet for U-formet. Bredden på boksen kan reduseres og vippebryteren kan plasseres i midten.
Det er bedre å rotere lokkservoen 180 grader, da vil det i koden være lettere å knytte gradene til denne servoen med betjeningen av lokket. For meg er det omvendt, så åpning er en nedgang i grader. Og "hånden" er det motsatte. Og det er mer riktig å skyve lokket fra samme side som elastikken trekker det tilbake fra.
Boksen bør ikke gjøres for liten. Det vil ikke være praktisk å bruke. Men en flatere en er akseptabel. Boksen er lett og er den flatere blir den mer stabil. Det vil være mer praktisk å trykke på vippebryteren med fingeren uten å holde i boksen.
Jeg laget noe som et skjold av to deler av et brødbrett. Loddet inn i Arduino uten kontakter. Dødelig. Jeg synes ikke synd.


Men jeg har laget alt periferutstyret på kontakten. Det er mer praktisk.
En kondensator med høy kapasitet for å drive arduinoen (3,3 volt) er nødvendig. Uten den henger Arduinoen.
Jeg har ikke monteringstegninger av enheten. Det er så enkelt at du kan bruke mange andre enkle løsninger som all mekanikk er basert på. I videoen, både mine og andre lignende enheter, kan du se drivalternativene som brukes.

#inkludere #inkludere Servo dørServo; //lokk servodrift Servo handServo; //arm servo Sprett bouncer = Sprett(12, 40); //opprett en forekomst av Bounce-klassen for pin 12 på vippebryteren int pos = 0; //startposisjonsvariabel int pos1door = 70; //utgangsposisjon av lokket servomotor int pos2door = 30; //endelig posisjon til dekselservomotoren int pos1hand = 10; //utgangsposisjonen til håndservoen int pos2hand = 160; //endelig posisjon av håndservoen int r; //tilfeldig tall som alternativet for å slå av vippebryteren avhenger av #define LED_PIN 11 // nummeret på utgangen koblet til LED int ledState = LOW; // vi setter statusen til LED-en med denne variabelen long previousMillis = 0; // lagre tiden for siste LED-bytte #define INTERVAL 30UL // intervall mellom å slå på/av LED-void-oppsettet() ( pinMode(LED_PIN, OUTPUT); pinMode(12, INPUT); // bytte pinne 12 til inngang mode digitalWrite(12, 1); //slå på pull-up motstanden på den Serial.begin(9600); //sett porten til en hastighet på 9600 bps. For feilsøking. Så kan du fjerne den. doorServo.attach (9); //tilordne lokkservoen til pinne 9 handServo.attach(10); //tilordne håndservoen til pinne 10 doorServo.write(pos1door); //sett lokkservoen til utgangsposisjonen handServo.write( pos1hand); //sett håndservoen til utgangsposisjonen ) void loop() ( if (bouncer.update()) ( if (bouncer.read()==0) ( //hvis knappen trykkes ( r = random(0,11); //generer et tilfeldig tall jn 0 til 10 Serial.println® ; if (r == 0) ( move_0(); ) //funksjonsanrop basert på et tilfeldig tall annet if (r == 1) ( move_1(); ) else if (r == 2) ( move_2(); ) else if (r == 3) ( move_3(); ) else if (r == 4) ( move_4(); ) else if (r == 5) ( move_5(); ) else if (r == 6) ( move_0(); ) else if (r == 7) ( move_1(); ) else if (r == 8 ) ( move_4(); ) else if (r == 9) ( move_3(); ) else if (r == 10) ( move_0(); ) ) ) ) // Funksjonsbibliotek. Generelt prinsipp: åpne lokket - stikk ut hånden og slå av vippebryteren - fjern hånden - lukk lokket // og det er alternativer for hvordan du kan ordne det vakkert............ void move_0())( //enkelt alternativ: åpne-slå-av-lukk //åpne lokket for(pos = pos1dør; pos >= pos2dør; pos -=3) ( doorServo.write(pos); delay(15) ; ) //strek ut hånden for(pos = pos1hånd ;pos<= pos2hand; pos +=3) { handServo.write(pos); delay(15); } //убирaeм руку for(pos = pos2hand; pos >= pos1hånd; pos -=3) ( handServo.write(pos); delay(15); ) //lukk lokket for(pos = pos2dør; pos<= pos1door; pos +=3) { doorServo.write(pos); delay(15); } } void move_1(){ //прocтoй вaриaнт 2: oткрыли-выключили-зaкрыли //oткрывaeм крышку for(pos = pos1door; pos >= pos2dør; pos -=1) ( doorServo.write(pos); delay(15); ) delay(1000); //løft hånden for(pos = pos1hånd; pos<= pos2hand; pos +=1) { handServo.write(pos); delay(15); } //убирaeм руку for(pos = pos2hand; pos > <= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_2(){ //зaдумчивый вaриaнт 2: приoткрыли-зaкрыли-oткрыли-выключили-зaкрыли //oткрывaeм крышку for(pos = pos1door; pos >= pos2dør+15; pos -=5) ( doorServo.write(pos); delay(15); ) delay(1000); //lukk lokket for(pos = pos2dør+15; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } delay(1000); //oткрывaeм крышку for(pos = pos1door; pos > <= pos2hand+2; pos +=5) { handServo.write(pos); delay(15); } //убирaeм руку for(pos = pos2hand+2; pos >= pos1hånd; pos -=5) ( handServo.write(pos); delay(15); ) //lukk lokket for(pos = pos2dør; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_3(){ //дeргaный вaриaнт: приoткрыли-пoдeргaли - зaкрыли-oткрыли-выключили-зaкрыли //oткрывaeм крышку for(pos = pos1door; pos >= pos2dør+15; pos -=1) ( doorServo.write(pos); delay(50); ) delay(500); //trekk i lokket for(int i=1; i<=8; i ++) { doorServo.write(pos2door+18); delay(80); doorServo.write(pos2door+15); delay(80); static unsigned long previousMillis = 0; if(millis() - previousMillis >INTERVAL) ( forrigeMillis = millis(); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); ) ) delay(500); //lukk lokket for(pos = pos2dør+15; pos<= pos1door; pos +=1) { doorServo.write(pos); delay(50); } delay(1000); //oткрывaeм крышку for(pos = pos1door; pos >= pos2dør; pos -=5) ( doorServo.write(pos); delay(15); ) //raise hånd for(pos = pos1hand; pos<= pos2hand+2; pos +=5) { handServo.write(pos); delay(15); } //убирaeм руку for(pos = pos2hand+2; pos >= pos1hånd; pos -=5) ( handServo.write(pos); delay(15); ) //lukk lokket for(pos = pos2dør; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_4(){ //oткрывaeм крышку delay(2000); for(pos = pos1door; pos >= pos2dør+15; pos -=5) ( doorServo.write(pos); delay(50); ) delay(500); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); delay(2000); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); forsinkelse(500); //lukk lokket for(pos = pos2dør+15; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(50); } delay(1000); //oткрывaeм крышку нe пoлнocтью for(pos = pos1door; pos >= pos2dør+15; pos -=1) ( doorServo.write(pos); delay(50); ) delay(2000); //åpne lokket helt for(pos = pos2dør+15; pos >= pos2dør; pos -=1) ( doorServo.write(pos); delay(15); ) //stikk ut hånden for(pos = pos1hånd; pos<= pos2hand-35; pos +=1) { handServo.write(pos); delay(35); } delay(1000); //выcoвывaeм руку for(pos = pos2hand-35; pos <= pos2hand+3; pos +=4) { handServo.write(pos); delay(15); } //убирaeм руку for(pos = pos2hand+3; pos >= pos1hånd; pos -=7) ( handServo.write(pos); delay(15); ) //lukk lokket for(pos = pos2dør; pos<= pos1door; pos +=7) { doorServo.write(pos); delay(15); } delay(500); //oткрывaeм крышку for(pos = pos1door; pos >= pos2dør+20; pos -=5) ( doorServo.write(pos); delay(50); ) delay(300); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); forsinkelse(500); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); forsinkelse(100); //lukk lokket for(pos = pos2dør+20; pos<= pos1door; pos +=1) { doorServo.write(pos); delay(50); } } void move_5(){ //вoзня for(int i=1; i <=2; i ++) { for(pos = pos1door; pos <= pos1door+45; pos +=5) { doorServo.write(pos); delay(50); } for(pos = pos1door+45; pos >= pos1dør; pos -=5) ( doorServo.write(pos); delay(50); ) delay(100); ) //trekk i lokket for(int i=1; i<=3; i ++) { doorServo.write(pos1door-6); delay(80); doorServo.write(pos1door-3); delay(80); } delay(300); //oткрывaeм крышку digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos1door; pos >= pos2dør+25; pos -=5) ( doorServo.write(pos); delay(50); ) delay(500); //åpne dekselet digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2dør+25; pos >= pos2dør+10; pos -=5) ( doorServo.write(pos); delay(50); ) //open the door digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2dør+10; pos >= pos2dør-5; pos -=2) ( doorServo.write(pos); delay(50); ) //løft hånden for(pos = pos1hånd; pos<= pos2hand-35; pos +=9) { handServo.write(pos); delay(35); } delay(1000); //убирaeм руку for(pos = pos2hand-35; pos >= pos2hånd-70; pos -=1) ( handServo.write(pos); delay(15); ) delay(1000); //løft hånden for(pos = pos2hånd-70; pos<= pos2hand+3; pos +=9) { handServo.write(pos); delay(15); } delay(50); //убирaeм руку for(pos = pos2hand+3; pos >= pos1hånd; pos -=7) ( handServo.write(pos); delay(15); ) //lukk dekselet digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2dør-5; pos<= pos1door+3; pos +=5) { doorServo.write(pos); delay(50); } }

Skissen som ble tilbudt av forfatteren fra lenken i begynnelsen av anmeldelsen startet ikke for meg. Og jeg var ennå ikke den proffen jeg er nå))))))))
Generelt begynte jeg å finne ut av det. Som et resultat, basert på noen andres, laget jeg min egen skisse. Lagt til anti-sprett beskyttelse. Det hadde selvfølgelig vært enklere å installere en motstand med en kondensator, men jeg ville virkelig programmere den.


I prinsippet er opplegget klart av skissen. Men jeg tar det med likevel. Beklager kvaliteten - så godt jeg kunne. Jeg tok et litt annet omformerbrett - jeg fant ikke det jeg trengte i "frontal"-delen.

Det er ingen spesielle forklaringer på skissen. Kanskje øyeblikket for å legge til noen få grader til rotasjonsvinkelen, når hastigheten på servoen er høy. Jeg la merke til at hvis "hånden" hopper skarpt ut, slår den ikke av vippebryteren. Dette skyldes åpenbart den lave kvaliteten på servoene. Derfor må du legge til litt til avgangsvinkelen til "armen". Jeg mistenker at med repetisjon kan disse tilleggsgradene være annerledes for deg. Avhenger av skulderen på "armen".
Og om programmer. Det er seks programmer så langt. Kalt opp gjennom generering av et tilfeldig nummer. Dessuten kalles enkle programmer (0, 1 og 2) oftere enn vanlig. Det virket for alle mine testere at mer sofistikerte programmer burde være en sjelden hyggelig bonus, så dukker det opp noen intriger. Så jeg gjorde det.
For elskere av tall - boksstørrelse: lengde - 150 mm, høyde - 70 mm, bredde - 65 mm.

Youtube har svekket kvaliteten kraftig. Hvis du trenger å se på originalen, last den ned. 21 MB.
Her er det gjort en endring på skissen som gjør at du kan se alle seks programmene etter tur, slik at du har en formening om alt. I livet, som jeg skrev, har de en pseudo-tilfeldig rekkefølge.

Lading skjer via mikro-USB med vanlig lader fra mobiltelefon. Autonomi avhenger i stor grad av bruksfrekvensen. Noen ganger i flere dager, og noen ganger "dreper" jeg på en dag.


Til slutt.
Prosjektet kan imidlertid forbedres og forbedres. Du kan komme opp med nye scenarier. Du kan legge til en diskanthøyttaler og gi lyd fra enheten. La ham for eksempel "brumme", som å bli sint, hvis tiden mellom å slå av og på vippebryteren er veldig kort. Du kan, som i det originale prosjektet, legge til bevegelse av boksen i forskjellige retninger.
Du kan bygge inn en sjekk for saken når "hånden", av en eller annen grunn, ikke slår av vippebryteren (for eksempel når servoen ikke når ønsket vinkel i kulde) og justerer vinkelen på en gang, etter å ha skrevet en slags "nervøs" spesielt for et slikt tilfelle » avslutningsprogram. Du kan installere Nano og programmere den via USB uten å demontere enheten hver gang.

Og generelt kan du gjøre det mer forsiktig. Mye forskjellig er mulig. Egentlig er det akkurat dette jeg foreslår å gjøre til de som er interessert i det.
Kanskje jeg gikk glipp av noe. Anmeldelsen viste seg å være ganske stor for en så enkel enhet. For dette kan jeg beklage.
Nå katten og takk for at du leste til slutten.

Sommerfotosession av en tammuseeter

Omtrent fem skjedde en velkjent ulykke for mange - det var en god venns bursdag. Spørsmålet dukket opp igjen: "hva skal jeg gi?" Med tanke på det faktum at en person ikke liker ubrukelige ting i husholdningen, oppsto ideen om å gi ham en ubrukelig ting. Det er en viss logikk i dette. Selv ville han tross alt aldri skaffe seg en ubrukelig ting. Men av hensyn til universell harmoni må det være minst én av disse i husholdningen. Vel, å være... Alene... Om bare så han kunne si: « Jeg liker ikke ubrukelige ting. Jeg har bare én ubrukelig ting i husholdningen min, og dette er mer enn nok for universell harmoni. Emne lukket."Vel, en bursdagsgave er en god grunn til å hjelpe en person med å lukke dette emnet for alltid og aldri tenke på det igjen :-)

I denne situasjonen var det ikke nok å lage enda en fotoramme eller finne en meningsløs suvenir til hyllen. For de fleste er ubrukeligheten deres lite åpenbar. Det var nødvendig å finne på noe så ubrukelig at unyttigheten av det rett og slett ville sive ut av tingen. Slik at det ville være et slags symbol som personifiserer hele essensen av ubrukeligheten.

Ærlig talt vet jeg ikke mange slike ting. Og blant dem er det en som jeg har ønsket å gjøre i veldig, veldig lang tid. På det engelsktalende internett heter det «The Most Useless Machine Ever» eller «Leave Me Alone Box». På hvilken som helst YouTube, for begge disse spørsmålene, vil du finne mange alternativer for å implementere denne ubrukelige enheten, hvis du vil.

Essensen av en slik enhet er at alt arbeidet er rettet mot å slå seg av. Hvis du slår den på, slår den av seg selv. Det er alt.

Den galeste maskinen jeg noen gang har møtt - Denne. Det som skiller henne fra andre er at hun naturlig kan drives til hysteri med sin utholdenhet. Etter et voldelig angrep vil hun ikke bare slå av, men også skjule bryteren for deg slik at du ikke kommer til bunns i det lenger... Selv om hun, for å være ærlig, med alt dette krenker essensen hennes - hun begynner å underholde. Og følgelig slutter det å være så ubrukelig :-)

Selv bestemte jeg meg for å lage den klassiske versjonen. De vil absolutt ikke kunne ha mye moro. Dessuten var det absolutt ikke tid til alle slags mekaniske triks...

Den generelle oversikten over hva jeg skulle gjøre er dette:

Arbeidsprinsippet er slik:

Lokk. Et strukturelt element i boksen som enheten er satt sammen i. Under drift må den stige for å "slippe" spaken (trinn 2), som setter enheten på revers (trinn 3).

Ramme. Bare en enkel boks med hengslet lokk. På grunn av det faktum at jeg hadde en viss mengde kryssfinerrester, bestemte jeg meg for å lage en boks av den.

Tumblr. Du trenger ikke hvilken som helst vippebryter. Den må tilfredsstille flere betingelser. For det første må det være "dobbelt". De. service ikke én kretslinje, men to. Dette er den typen vippebryter du trenger, med seks kontakter:

For det andre må vippebryteren være "myk". De. Å bytte den bør ikke kreve mye innsats. Mikrobrytere som er vanlige i dag, som på bildet, tilfredsstiller fullt ut denne betingelsen. Selvfølgelig, i prinsippet, er det ingenting som hindrer deg i å bruke en heftig "trolleybus" bryter på størrelse med en fyrstikkeske. Bare det vil kreve en mye kraftigere motor og girkasse, som ikke vil være så lett å finne. For en mikrobryter er nesten alle servodrive egnet, som det er mange av i butikkene med reservedeler til radiostyrte modeller.

"Finn". Dette elementet ble lagt til helt på slutten av ideen. I utgangspunktet var det ikke på diagrammet. Det virket bare for meg som om spaken ikke løftet lokket høyt nok. For å øke... mmm... uttrykksfullhet for hele handlingen er det nødvendig at lokket hever seg mer... helt klart. Selvfølgelig, i teorien, må denne "finnen" umiddelbart legges inn i profilen til spaken slik at de blir en enkelt helhet. Men ideen om å legge den til kom til meg da nesten hele strukturen allerede var montert. Derfor ble "finnen" et eget element limt til spaken.

Spakarm. Tykk plexiglassplate. Tøff nok til å trygt sette vippebryteren (trinn 3). Hovedproblemet er å utvikle profilen på en riktig og nøyaktig måte. Den skal snu seg fritt uten å fange noe underveis, løfte lokket og nøyaktig hvile mot et klikk på vippebryteren.

Batteri. I utgangspunktet hadde jeg tenkt å bruke en vanlig ni-volt. Det er også vist i diagrammet. Det viste seg imidlertid senere at for den funnet motoren med girkasse var ni volt for mye. Enheten fungerte veldig raskt. Spaken spratt ut som et utkasterblad, nesten umerkelig for øyet. Samtidig, selv om enheten fungerte etter hensikten, var det med en slik hastighet ikke mulig å fullt ut nyte nytteløsheten av arbeidet. Etter å ha byttet ut ni-volt med to en og en halv AA (jeg fikk totalt tre volt), bremset jeg kraftig ned driften av mekanismen og alt ble som det skulle - jevnt og konseptuelt :-)

Motor og girkasse.. Bare en motor med bare en girkasse. Jeg valgte den etter rotasjonshastighet (så sakte som mulig), etter kraften som skapes (helst høyere enn beregnet) og etter pris (så lav som mulig). Som et resultat, i henhold til alle disse forholdene, ble en slik motor med girkasse valgt. Billig, kompakt, egnet for spenning, ga lave hastigheter og utviklet ganske imponerende kraft på spaken.


Hvordan regnet jeg ut hvor mye kraft jeg trengte på girkassen? Veldig enkelt. Selv om det er helt klønete. Jeg tok bare den elektroniske vekten, tok vippebryteren, lente den med klikkeren på vektplaten og trykket til den byttet. I øyeblikket jeg byttet tok jeg avlesninger fra skaladisplayet. Selvfølgelig var den resulterende verdien ikke fra serien "hvor mange unser per tomme", men "hvor mange unser per størrelse på skalaplaten", men likevel ga dette tallet en generell omtrentlig idé. Du kan anslå feilen... I mitt tilfelle trengte jeg å se etter en motor med en girkasse som ville gi omtrent 30 gram per tomme til spaken. Vel, gi eller ta... Den valgte mekanismen produserer 50 gram per tomme, som er ganske nok med alle feilene.

Diagrammet ovenfor mangler en annen viktig detalj:
Reversbryter. Det er nødvendig slik at spaken, som går tilbake til sin opprinnelige posisjon etter å ha byttet vippebryteren (trinn 4), kutter av hele systemet og ikke beveger seg lenger (trinn 5). Det virket for meg at en slik bryter var en så primitiv, åpenbar og enkel ting:

... at det er helt uverdig oppmerksomhet på tegningen. Å, så feil jeg tok!!! I hele prosjektet ble denne forbanna breakeren det største eventyret som virkelig ødela nervene mine!

Den elektriske kretsen til enheten ser slik ut:

S1 er den viktigste "doble" vippebryteren. Essensen av driften er at den ganske enkelt bytter polariteten til strømmen som leveres til motoren (M). Følgelig, avhengig av posisjonen til bryteren, roterer stasjonen enten med eller mot klokken.
S2 er den samme reversbryteren som skal åpne kretsen når spaken tar sin opprinnelige posisjon etter å ha byttet vippebryter S1 til revers.

Dette var hele den teoretiske delen. Nå - fra teori til handling.

Problemene startet fra første stund. Butikken jeg linket til ovenfor hadde ikke de nødvendige girkassene på lager. De sverget at de ville kjøpe en ny batch innen en uke og sende den til meg med en gang. De beklaget veldig og tilbød seg å erstatte den med en annen girkasse. Men den var komplett med alle slags gir, festemidler som jeg ikke trengte, og generelt sett så det ut som om det var et slags helikoptersett som ikke passet meg for prisen. På eBay koster de samme girkassene dobbelt så mye av en eller annen grunn. I andre butikker ble det ikke funnet noe passende med en gang heller... Jeg hadde litt tidsreserve og kunne vente. Ifølge mine anslag vil det å samle alt dette ta et par kvelder. Pluss et par dager for porto. En dag i reserve for sikkerhets skyld. Så hvis de sender den til meg minst fem dager før "time X", så vil jeg ha tid til å gi gaven i tide. Vel, hvis de ikke sender det, er det ingenting å gjøre - jeg får det på eBay med ekspresslevering... Men butikken skuffet ikke. Girkassen ble sendt i tide.

Først av alt var det nødvendig å utføre et eksperiment med en spak og en vippebryter. Tross alt, hvis jeg gikk glipp av beregningene, vil ikke girkassen ha nok styrke til å bytte vippebryter, noe som betyr at det trengs en annen girkasse med forskjellige dimensjoner og alle andre beregninger vil også bli annerledes. Før du sager ut spaken og lager en boks, må du forsikre deg om at enheten er teoretisk operativ.

Den første fasen av eksperimentet er å sjekke den elektriske kretsen. I henhold til multimeteravlesningene endret vippebryteren utgangspolariteten:

Den andre fasen av eksperimentet er å koble til en girkasse med en spak og se om den vil bytte vippebryteren. Som spak brukte jeg et stykke plexiglass, det første som kom til min hånd:

Hvis alt er gjort riktig, bør motoren svinge spaken frem og tilbake, og bytte vippebryteren fra den ene siden til den andre:

OK. Eksperimentet var en fullstendig suksess, og det var mulig å sette sammen den endelige enheten basert på denne girkassen.

Som jeg allerede har sagt, begynte jeg å lage dagboksen hans av kryssfiner:

Den eneste subtiliteten her var sammenkoblingen av flyene. Hvis de overlappes, vil endene av arkene være synlige. Det er ikke vakkert. Derfor ble kantene på alle platene arkivert ved 45°:

Nå kan de limes slik at endene ved skjøtene ikke er synlige:

For å fikse girkassen i boksen bøyde jeg denne skumle braketten fra en gammel sporplugg:

Det virket så skummelt for meg at jeg bestemte meg for å male det. For estetikk ... Jeg er imidlertid ikke sikker på at maleriet brakte denne estetikken til produktet:

Hmmm... Det er et sjeldent tilfelle når noe ser enda mer ekkelt ut på et fotografi enn i virkeligheten. Vanligvis skjer det omvendt :-)

Spak... Først ble den trykte malen overført til et stykke plexiglass:

Her måtte jeg være veldig, veldig presis. Selv om enheten var enkel, tillot den bare svært små feil. Ellers vil den enten ikke komme inn i vippebryteren, eller så begynner den å feste seg på boksen... Jeg stakk til og med et friskt, skarpt blad inn i stikksagen for denne anledningen:


Til slutt fungerte alt som det skulle:

Dessverre, i vårt ufullkomne univers, er det et slikt fenomen - treghet. I mitt tilfelle betydde dette at selv etter å ha slått av strømmen til motoren, fortsatte den å svinge spaken ved treghet før den stoppet helt.

Skaperne av denne girkassen mistenkte tilsynelatende også eksistensen av treghet. Derfor ga de en slags sikring i girmekanismen. Hvis spaken hviler på noe, og girene fortsatt fortsetter å rotere, så for at hele girkassen ikke blåser fra hverandre (tross alt er det plast), gjorde de en bryter der. Når den trykkes inn, bytter spaken til revers. Ikke for lenge.

Til slutt fikk jeg det slik: spaken går til tilbakerulling, åpner bryteren, strømmen på motoren er slått av, spaken fortsetter å trykke ytterligere av treghet, sikringen i girkassen går ut, spaken går i andre retningen... bryteren, stubben er klar, gjenoppretter kretsen igjen, motoren slår seg på, spaken går igjen til bryteren, den åpner... treghet, tilbakerulling, kontakt... og så hamrer den i kranen danse til det punktet av nummenhet. Det ser selvfølgelig morsomt ut, men...

Det ser ut til at bryteren må justeres slik at den bryter kjeden litt på forhånd, med tanke på den påfølgende tregheten til spaken. I virkeligheten viste det seg å være ekstremt vanskelig å lage denne endringen. Det var alltid to ytterpunkter: enten ble strømmen kuttet for tidlig og spaken senket seg ikke helt (og derfor lukket ikke lokket på boksen), eller bruddet ble utløst for sent og mekanismen falt inn i " steppdans» som jeg beskrev ovenfor.

Det er mange faktorer som umiddelbart kommer sammen. Inkludert lengden på brytespaken. Jeg har til og med laget min egen lille bryter fra en mikromuseknapp. Det fungerte fortsatt ikke. Og jeg prøvde å lage en bryter i form av to kobberstrimler, som i et relé... Jeg prøvde alt. Jeg ble nesten gal av å prøve å sette opp alt slik det skulle! Det viste seg at vi måtte lage en slags veldig presis trimmemekanisme med mikromating. Slik at avbruddsforsinkelsen kan justeres med mikron presisjon...

Heldigvis var det en enklere måte. Det var nok å bare tenke utenfor boksen og... helt forlate denne typen brytere. Hvem sa at kontakt bare kan avbrytes av en spakdesign? Det er en million måter å løse det på mekanisk, uten å bruke en spak (elektroniske metoder vurderes ikke i dette tilfellet).

Spaken er festet til girkassen med en stor, vakker metallskive. Så du kan bruke den direkte som en av kontaktene. En andre kontaktranke vil krype langs den. Åpning utføres ganske enkelt ved å frata antennen kontakt med vaskemaskinen. Med enkel tape. Som dette:

Justeringen gjøres som følger: først limes isolasjonsbåndet med en stor margin, og deretter, med en skalpell, kuttes små strimler av tykkelsen på et hår, til spaken begynner å stoppe akkurat der den er nødvendig.

Og ingen komplekse design med mikrofôring og alt annet:

Forutse det åpenbare spørsmålet - nei, "slyngen" vil ikke bli tørket av av tapen. Jeg mener, før eller siden vil han tørke det, selvfølgelig - evige materialer eksisterer ikke i verden. Men jeg polerte den på kontaktpunktet, og den trykker ikke så hardt. Deretter påførte jeg tapen i to lag. Generelt vil det ta mange år å slites ut. Løsningen er ganske akseptabel og fungerer som en sjarm:

I videoen ovenfor bytter jeg fortsatt hovedvippebryteren manuelt. Men den omvendte avskjæringen skjer allerede av seg selv, ved å bruke en bryter laget av en skive og tape.

Påliteligheten til designet ble bekreftet av et faktum som ikke var veldig hyggelig for meg... Jeg vet ikke hvordan og hvordan, men da pakken med enheten kom til mottakeren, viste det seg at den skruen som fester skive til girkasseaksen falt ut! Jeg kan ikke forestille meg hva de gjorde med pakken på postkontoret. Men selv med denne aksiale skruen som falt ut, fortsatte boksen å fungere perfekt... Jeg instruerte mottakeren over telefon hvordan denne skruen skulle settes tilbake på plass. Jeg håper han kan takle denne typen reparasjoner. Men en ubehagelig defekt har dukket opp, ja... :-(

På den tiden var de resterende delene av boksen limt sammen og klar. Jeg limte ikke bunnen av boksen, som girkassen og batteripakken er festet til, til veggene. Det viste seg å være tilstrekkelig å sikre det med dekorative metallhjørner:

Graver du forsiktig ut to spiker i hvert hjørne, vil bunnen fritt skille seg fra resten av strukturen.

Hengsler til lokket med stil:

Nå, et sted her skjønte jeg at det ville være fint å øke mengden av løfting av lokket mens du slipper spaken. Jeg tegnet, saget ut og limte en "finne" på spaken, som denne stigningen øker til ønsket høyde:

Litt mer dekor og enheten er helt klar:


I aksjon.




Topp