Reparera Design möbel

Robotmanipulator mekanisk arm. Billig robotarm, programmerbar på Arduino: gör-det-själv robotarm. Styrprogram och förklaringar till det

Detta projekt är en modulär uppgift på flera nivåer. Det första steget i projektet är monteringen av robotarmsmodulen, som levereras som ett kit med delar. Det andra steget i uppgiften kommer att vara att montera IBM PC-gränssnittet också från en uppsättning delar. Slutligen är det tredje steget av uppgiften skapandet av röststyrningsmodulen.

Robotarmen kan manövreras manuellt med handkontrollen som ingår i satsen. Robotarmen kan också styras antingen genom ett monterat IBM PC-gränssnitt eller med hjälp av en röststyrningsmodul. IBM PC-gränssnittssatsen låter dig styra och programmera robotens handlingar genom en IBM PC-arbetsdator. Röststyrningsenheten låter dig styra robotens arm med hjälp av röstkommandon.

Alla dessa moduler bildar tillsammans en funktionell enhet som gör att du kan utföra experiment och programmera automatiserade sekvenser av åtgärder eller till och med "animera" en helt "trådbunden" manipulatorarm.

PC-gränssnittet låter dig programmera manipulatorarmen för en kedja av automatiska åtgärder med hjälp av en persondator eller för att "återuppliva" den. Det finns också ett alternativ där du kan styra handen interaktivt med antingen handkontrollen eller ett Windows 95/98-program. Handens "animation" är "underhållningen" i kedjan av programmerade automatiserade åtgärder. Om du till exempel sätter en babyhandskedocka på en manipulatorarm och programmerar enheten att visa en liten show, så kommer du att programmera den elektroniska dockan att "animera". Programmering av automatiserade åtgärder finner bred tillämpning inom industrin och underhållningsindustrin.

Den mest använda roboten i industrin är robotarmen. Robotarmen är ett extremt flexibelt verktyg, om så bara för att ändsegmentet på armmanipulatorn kan vara det lämpliga verktyget som krävs för en viss uppgift eller produktion. Till exempel kan en ledad svetsarm användas till punktsvetsning, spraymunstycket kan användas för att måla olika delar och sammansättningar, och griparen kan användas för att klämma fast och hålla föremål, bara för att nämna några.

Så, som vi kan se, utför robotarmen många användbara funktioner och kan fungera som perfekt verktyg att studera olika processer. Men att bygga en robotarm från grunden är en utmaning. Det är mycket lättare att montera en hand från detaljerna i den färdiga uppsättningen. OWI säljer ganska bra manipulatorarmssatser som finns tillgängliga från många distributörer. elektroniska apparater(se reservdelslistan i slutet av detta kapitel). Med hjälp av gränssnittet kan du ansluta den monterade manipulatorarmen till skrivarporten på en fungerande dator. Du kan använda en IBM PC-serie eller kompatibel maskin som stöder DOS eller Windows 95/98 som din arbetsdator.

När den väl är ansluten till datorns skrivarport kan robotarmen styras interaktivt eller programmatiskt från datorn. Handkontroll i interaktivt läge är mycket enkel. För att göra detta klickar du bara på en av funktionstangenterna för att skicka ett kommando till roboten att utföra en viss rörelse. Genom att trycka på knappen en andra gång avslutas kommandot.

Att programmera en kedja av automatiserade åtgärder är inte heller svårt. Klicka först på knappen Program för att gå in i programläget. I denna mod fungerar handen exakt som beskrivits ovan, men dessutom är varje funktion och tidpunkten för dess åtgärd fixerad i skriptfilen. En skriptfil kan innehålla upp till 99 olika funktioner, inklusive pauser. Själva skriptfilen kan spelas upp 99 gånger. Genom att spela in olika skriptfiler kan du experimentera med en datorstyrd sekvens av automatiserade åtgärder och "återuppliva" handen. Att arbeta med programmet under Windows 95/98 beskrivs mer i detalj nedan. Windows-programmet ingår i robotarmgränssnittet eller kan laddas ner gratis från Internet http://www.imagesco.com.

Förutom Windows-programmet kan handen styras med hjälp av BASIC eller QBASIC. DOS-nivåprogrammet finns på disketterna som medföljer gränssnittssatsen. DOS-programmet tillåter dock endast interaktiv styrning med tangentbordet (se utskrift av BASIC-programmet på en av disketterna). Programmet på DOS-nivå tillåter dig inte att skapa skriptfiler. Men om du har GRUNDLÄGGANDE programmeringserfarenhet, kan sekvensen av rörelser för manipulatorarmen programmeras på samma sätt som skriptfilen som används i Windows-programmet. Rörelsesekvensen kan upprepas, som man gör i många "animerade" robotar.

Robotarm

Manipulatorarmen (se bild 15.1) har tre rörelsefrihetsgrader. Armbågsleden kan röra sig vertikalt upp och ner i en båge på cirka 135°. Axel "leden" för greppet fram och tillbaka i en båge på cirka 120°. Armen kan roteras på basen medurs eller moturs i en vinkel på cirka 350°. Robotarmsgriparen kan plocka upp och hålla föremål upp till 5 cm i diameter och rotera runt vid handledsleden ca 340°.

Ris. 15.1. Kinematiskt schema robotarmens rörelser och vändningar


OWI Robotic Arm Trainer använde fem miniatyrmotorer för att driva armen. likström. Motorer ger handkontroll med kablar. Denna "trådbundna" kontroll innebär att varje funktion av robotens rörelse (d.v.s. driften av motsvarande motor) styrs av separata ledningar (påläggande av spänning). Var och en av de fem DC-motorerna styr sin egen armrörelse. Trådbunden styrning låter dig göra en handkontrollenhet som direkt reagerar på elektriska signaler. Detta förenklar layouten av robotarmsgränssnittet som ansluts till skrivarporten.

Armen är gjord av lättviktsplast. De flesta delarna som bär huvudlasten är också gjorda av plast. DC-motorerna som används i armkonstruktionen är miniatyrmotorer med hög hastighet och lågt vridmoment. För att öka vridmomentet är varje motor kopplad till en växellåda. Motorerna tillsammans med växellådorna är installerade inuti manipulatorarmens struktur. Även om växellådan ökar vridmomentet kan robotarmen inte lyfta eller bära tillräckligt tunga föremål. Den rekommenderade högsta tillåtna lyftvikten är 130 g.

Robotarmsatsen och dess komponenter visas i figurerna 15.2 och 15.3.


Ris. 15.2. Robotarmssats



Ris. 15.3. Växellåda före montering

Motorstyrningsprincip

För att förstå hur styrning med tråd fungerar, låt oss titta på hur en digital signal styr driften av en enda DC-motor. Två komplementära transistorer krävs för att styra motorn. En transistor har ledningsförmåga av PNP-typ, den andra har ledningsförmåga av NPN-typ. Varje transistor fungerar som en elektronisk omkopplare, som styr strömflödet genom DC-motorn. Riktningarna för strömflödet som styrs av var och en av transistorerna är motsatta. Strömmens riktning bestämmer motorns rotationsriktning medurs respektive moturs. På fig. Figur 15.4 visar en testkrets som du kan montera innan du gör ett gränssnitt. Observera att när båda transistorerna är avstängda är motorn avstängd. Endast en transistor ska vara på åt gången. Om båda transistorerna vid något tillfälle slås på av misstag, kommer detta att leda till en kortslutning. Varje motor drivs av två gränssnittstransistorer som fungerar på liknande sätt.


Ris. 15.4. Checker Diagram

PC-gränssnittsdesign

PC-gränssnittsdiagrammet visas i fig. 15.5. Uppsättningen av PC-gränssnittsdelar inkluderar ett tryckt kretskort, vars placering visas i fig. 15.6.


Ris. 15.5. kretsschema PC-gränssnitt



Ris. 15.6. Layout av PC-gränssnittsdelar


Först och främst måste du bestämma sidan av det tryckta kretskortet. På monteringssidan är vita linjer ritade för att representera motstånd, transistorer, dioder, IC:er och en DB25-kontakt. Alla delar sätts in i skivan från monteringssidan.

Allmän anmärkning: Efter lödning av delen till PCB-ledarna, ta bort alltför långa ledningar från utskriftssidan. Det är mycket bekvämt att följa en viss sekvens vid montering av delar. Montera först 100 kΩ-motstånden (färgade ringar: brun, svart, gul, guld eller silver), som är märkta R1-R10. Montera sedan 5 dioder D1-D5 och se till att den svarta remsan på dioderna ligger mot DB25-kontakten som visas av de vita linjerna markerade på monteringssidan av kretskortet. Montera sedan 15 kΩ-motstånden (färgkodade brun, grön, orange, guld eller silver) märkta R11 och R13. Vid position R12, löd en röd lysdiod till kortet. Lysdiodens anod motsvarar hålet för R12, markerat med ett +-tecken. Montera sedan 14- och 20-stiftsuttagen under U1 och U2 IC:erna. Montera och löd vinkelkontakten typ DB25. Försök inte trycka in kontaktstiften i kortet med för mycket kraft, här krävs bara precision. Om det behövs, skaka försiktigt kontakten, var noga med att inte böja stiftbenen. Fäst skjutomkopplaren och spänningsregulator av typ 7805. Klipp fyra stycken tråd till önskad längd och löd till toppen av strömbrytaren. Behåll ledningsarrangemanget enligt bilden. Sätt i och löd transistorerna TIP 120 och TIP 125. Löd slutligen 8-stiftssockeln och 75 mm anslutningskabel. Basen är monterad så att de längsta terminalerna tittar upp. Sätt i två IC:er - 74LS373 och 74LS164 - i sina respektive uttag. Se till att nyckelpositionen för IC på dess lock matchar nyckeln som är markerad med vita linjer på kretskortet. Du kanske har märkt att det finns platser kvar på tavlan för ytterligare detaljer. Denna plats är för nätverksadaptern. På fig. 15.7 visar ett fotografi av det färdiga gränssnittet från monteringssidan.


Ris. 15.7. PC-gränssnitt monterat. Utsikt från ovan

Hur gränssnittet fungerar

Manipulatorarmen har fem likströmsmotorer. Följaktligen behöver vi 10 ingångs-/utgångsbussar för att styra varje motor, inklusive rotationsriktningen. Den parallella (skrivare) porten på IBM PC och kompatibla maskiner innehåller endast åtta I/O-bussar. För att öka antalet styrbussar i robotarmsgränssnittet används IC 74LS164, som är en seriell-till-parallell (SIPO) omvandlare. Genom att endast använda två parallellportsbussar D0 och D1, som skickar seriekoden till IC:n, kan vi få åtta ytterligare I/O-bussar. Som nämnts kan åtta I/O-bussar skapas, men detta gränssnitt använder fem av dem.

När en seriell kod matas in till 74LS164 IC, visas motsvarande parallellkod vid utgången av IC. Om utgångarna på 74LS164 var direkt anslutna till ingångarna på kontrolltransistorerna, skulle manipulatorarmens individuella funktioner slås på och av i tid med sändningen av seriekoden. Uppenbarligen är denna situation oacceptabel. För att undvika detta införs en andra IC 74LS373 i gränssnittskretsen - en kontrollerad åtta-kanals elektronisk nyckel.

74LS373 åtta-kanals switcher har åtta ingångs- och åtta utgångsbussar. Den binära informationen som finns på ingångsbussarna sänds till motsvarande utgångar på IC endast om aktiveringssignalen tillförs IC. Efter att aktiveringssignalen stängts av sparas (kom ihåg) det aktuella tillståndet för utgångsbussarna. I detta tillstånd har signalerna vid ingången till IC:en ingen effekt på utgångsbussarnas tillstånd.

Efter att det seriella informationspaketet har skickats till 74LS164 skickar D2-stiftet på parallellporten en aktiveringssignal till 74LS373. Detta gör att du kan överföra information redan i parallellkod från ingången på IC 74LS174 till dess utgångsbussar. Tillståndet för utgångsbussarna styrs av TIP 120-transistorerna, som i sin tur styr manipulatorarmens funktioner. Processen upprepas med varje nytt kommando som ges till manipulatorarmen. Parallellportsbussarna D3-D7 driver TIP 125-transistorerna direkt.

Anslutning av gränssnittet till manipulatorarmen

Robotarmen drivs av en 6 V strömkälla som består av fyra D-element placerade vid basen av strukturen. PC-gränssnittet drivs också av denna 6V-försörjning. Strömförsörjningen är bipolär och ger ±3V-spänningar. Ström tillförs gränssnittet genom en åttastifts Molex-kontakt som är ansluten till manipulatorns bas.

Anslut gränssnittet till manipulatorarmen med en 75 mm åttatrådig Molex-kabel. Molex-kabeln ansluts till kontakten som sitter vid basen av manipulatorn (se figur 15.8). Kontrollera att kontakten sitter korrekt och säkert. För att ansluta gränssnittskortet till datorn används en 180 cm lång DB25-kabel som ingår i satsen. Ena änden av kabeln ansluts till skrivarporten. Den andra änden ansluts till DB25-kontakten på gränssnittskortet.


Ris. 15.8. Anslutning av PC-gränssnittet till robotarmen


I de flesta fall är en skrivare normalt ansluten till skrivarporten. För att slippa krånglet med att koppla in och lossa kontakter varje gång du vill använda paddeln, är det en bra idé att köpa en A/B Printer Bus On/Off Switch Box (DB25). Anslut manipulatorns gränssnittskontakt till ingång A och skrivaren till ingång B. Nu kan du använda omkopplaren för att ansluta datorn till antingen skrivaren eller gränssnittet.

Installera programmet under Windows 95

Sätt i en 3,5" diskett märkt "Disc 1" i diskettenheten och kör installationsprogrammet (setup.exe). Installationsprogrammet skapar en katalog med namnet "Images" på din hårddisk och kopierar de nödvändiga filerna till denna katalog. Start Ikonen Bilder kommer att visas i menyn För att starta programmet, klicka på ikonen Bilder i startmenyn.

Arbeta med programmet under Windows 95

Anslut gränssnittet till datorns skrivarport med en 180 cm lång kabel DB 25. Anslut gränssnittet till basen på manipulatorarmen. Håll gränssnittet i avstängt läge fram till en viss tid. Om gränssnittet är påslaget vid denna tidpunkt kan informationen som lagras i skrivarporten orsaka rörelser i manipulatorarmen.

Genom att dubbelklicka på ikonen Bilder i startmenyn, starta programmet. Programfönstret visas i fig. 15.9. När programmet körs ska den röda lysdioden på gränssnittskortet blinka. Notera: gränssnittet behöver inte vara påslaget för att lysdioden ska börja blinka. Lysdiodens blinkningshastighet bestäms av hastigheten på din dators processor. Lysdiodens flimmer kan vara mycket svagt; för att upptäcka detta kan du behöva dämpa ljuset i rummet och vika ihop handflatorna för att observera lysdioden. Om lysdioden inte blinkar kan programmet komma åt fel portadress (LPT-port). För att byta gränssnittet till en annan portadress (LPT-port), gå till rutan Printer Port Options i det övre högra hörnet av skärmen. Välj ett annat alternativ. Korrekt installation portadress gör att lysdioden blinkar.


Ris. 15.9. Skärmdump av PC-gränssnittsprogrammet under Windows


När lysdioden blinkar, klicka på Puuse-ikonen och slå sedan på gränssnittet. Om du klickar på motsvarande funktionstangent kommer manipulatorarmens svarsrörelse att göras. Om du klickar igen stoppas rörelsen. Att använda funktionstangenterna för att styra handen anropas interaktiv modekontroll.

Skapa en skriptfil

Skriptfiler används för att programmera rörelser och automatiserade handlingssekvenser för manipulatorarmen. Skriptfilen innehåller en lista över tillfälliga kommandon som styr manipulatorarmens rörelser. Det är väldigt enkelt att skapa en skriptfil. För att skapa en fil, klicka på programskärmstangenten. Denna operation låter dig gå in på sättet att "programmera" skriptfilen. Genom att trycka på funktionstangenterna kommer vi att kontrollera handens rörelser, som vi redan gjorde, men informationen om kommandona kommer att registreras i den gula skripttabellen som finns i det nedre vänstra hörnet av skärmen. Stegnumret, från ett, kommer att anges i den vänstra kolumnen, och för varje nytt kommando kommer det att öka med ett. Typen av rörelse (funktion) anges i mittenkolumnen. När funktionstangenten klickas igen stoppas rörelsen och den tredje kolumnen visar rörelsens varaktighet från dess början till dess slut. Utförandetiden för rörelsen anges med en noggrannhet på en kvarts sekund. Om man fortsätter på samma sätt kan användaren programmera upp till 99 rörelser i skriptfilen, inklusive pauser i tid. Sedan kan skriptfilen sparas och senare laddas från valfri katalog. Utförandet av skriptfilkommandon kan upprepas upp till 99 gånger, för vilka du måste ange antalet repetitioner i fönstret Upprepa och klicka på Start. För att avsluta skrivningen till skriptfilen, tryck på den interaktiva tangenten. Detta kommando kommer att föra tillbaka datorn till interaktivt läge.

"Återupplivande" av föremål

Skriptfiler kan användas för datorautomatisering av åtgärder eller för "animering" av objekt. När det gäller "animering" av objekt är det kontrollerade robotmekaniska "skelettet" vanligtvis täckt med ett yttre skal och är inte i sig självt synligt. Kommer du ihåg handskdockan som beskrivs i början av kapitlet? Det yttre skalet kan ta formen av en person (delvis eller helt), en utomjording, ett djur, en växt, en sten och allt annat.

Ansökningsgränser

Om du vill uppnå en professionell nivå av att utföra automatiserade handlingar eller "animera" objekt, så att så att säga, för att behålla varumärket, bör positioneringsnoggrannheten när du utför rörelser vid varje given tidpunkt vara nära 100%.

Du kanske märker att när sekvensen av åtgärder som registrerats i skriptfilen upprepas, kommer manipulatorarmens position (rörelsemönster) att skilja sig från den ursprungliga. Detta händer av flera anledningar. När armströmförsörjningsbatterierna laddas ur, resulterar minskningen i effekt som tillförs likströmsmotorerna i en minskning av motorernas vridmoment och hastighet. Således kommer manipulatorns rörelselängd och höjden på den lyfta lasten under samma tidsperiod att skilja sig för döda och "färska" batterier. Men anledningen är inte bara detta. Även med en stabiliserad strömförsörjning kommer motoraxelns varvtal att fluktuera eftersom det inte finns någon motorhastighetsregulator. För varje fast tidslängd kommer antalet varv att vara något olika varje gång. Detta kommer att leda till det faktum att varje gång manipulatorarmens position också kommer att skilja sig. Till råga på det finns ett visst glapp i växellådans växlar, vilket inte heller tas med i beräkningen. Under påverkan av alla dessa faktorer, som vi har undersökt i detalj här, när en cykel av upprepade kommandon av en skriptfil utförs, kommer manipulatorarmens position att vara något annorlunda varje gång.

Hempositionssökning

Du kan förbättra enhetens funktion genom att lägga till en återkopplingskrets som övervakar manipulatorarmens position. Denna information kan matas in i en dator för att bestämma manipulatorns absoluta position. Med ett sådant lägesåterkopplingssystem är det möjligt att ställa in positionen för manipulatorarmen till samma punkt i början av exekveringen av varje sekvens av kommandon som registrerats i skriptfilen.

Det finns många möjligheter till detta. I en av huvudmetoderna tillhandahålls inte positionskontroll vid varje punkt. Istället används en uppsättning gränslägesbrytare som motsvarar det ursprungliga "start"-läget. Gränslägesbrytare bestämmer bara en position - när manipulatorn når "start"-läget. För att göra detta måste du ställa in sekvensen av gränslägesbrytare (knappar) på ett sådant sätt att de stänger när manipulatorn når ytterläget i en eller annan riktning. Till exempel kan en gränslägesbrytare installeras på basen av manipulatorn. Omkopplaren ska endast fungera när armen når sitt ändläge när den vrids medurs. Andra gränslägesbrytare måste installeras på axel- och armbågslederna. De ska aktiveras när motsvarande led är helt utdraget. Ytterligare en strömbrytare är installerad på borsten och aktiveras när borsten vrids hela vägen medurs. Den sista gränslägesbrytaren är installerad på greppet och stänger när den är helt öppen. För att återställa manipulatorn, utförs varje möjlig rörelse av manipulatorn i den riktning som krävs för att stänga motsvarande gränslägesbrytare tills denna brytare stängs. Efter att den initiala positionen för varje rörelse har nåtts kommer datorn exakt att "känna" till manipulatorarmens verkliga position.

Efter att ha nått den initiala positionen kan vi starta om programmet skrivet i skriptfilen, baserat på antagandet att positioneringsfelet under exekveringen av varje cykel kommer att ackumuleras tillräckligt långsamt för att det inte kommer att leda till för stora avvikelser i manipulatorns position från den önskade. Efter att skriptfilen har körts, sätts handen till sin ursprungliga position, och skriptfilens cykel upprepas.

I vissa sekvenser räcker det inte att bara känna till startpositionen, till exempel när man lyfter ett ägg utan att riskera att krossa skalet. I sådana fall behövs ett mer komplext och exakt lägesåterkopplingssystem. Signalerna från sensorerna kan bearbetas med hjälp av ADC. De mottagna signalerna kan användas för att bestämma värdena för parametrar som position, tryck, hastighet och vridmoment. Följande enkla exempel kan tjäna som en illustration. Föreställ dig att du har anslutit ett litet linjärt variabelt motstånd till infångningsnoden. Det variabla motståndet är inställt på ett sådant sätt att rörelsen av dess skjutreglage fram och tillbaka är förknippad med öppning och stängning av greppet. Således, beroende på graden av öppning av greppet, ändras motståndet hos det variabla motståndet. Efter kalibrering, genom att mäta strömresistansen för det variabla motståndet, kan du exakt ställa in öppningsvinkeln för gripklämmorna.

Att skapa ett sådant återkopplingssystem introducerar en annan komplexitetsnivå i enheten och leder följaktligen till att den stiger i pris. Därför mer enkelt alternativär införandet av systemet manuell kontroll för att korrigera manipulatorarmens position och rörelser under körningen av skriptprogrammet.

Manuellt gränssnittskontrollsystem

När du har verifierat att gränssnittet fungerar korrekt kan du använda den 8-poliga platta kontakten för att ansluta den manuella styrenheten till den. Kontrollera anslutningspositionen för den 8-poliga Molex-kontakten till kontakthuvudet på gränssnittskortet som visas i fig. 15.10. Sätt försiktigt i kontakten tills den är ordentligt ansluten. Därefter kan manipulatorarmen styras från handkontrollen när som helst. Det spelar ingen roll om gränssnittet är anslutet till en dator eller inte.


Ris. 15.10. Anslutning av manuell styrning

DOS-tangentbordskontrollprogram

Det finns ett DOS-program som låter dig styra driften av manipulatorarmen från datorns tangentbord i interaktivt läge. Listan över nycklar som motsvarar exekveringen av en viss funktion ges i tabellen.

Vid röststyrning av manipulatorarmen används en taligenkänningsuppsättning (SCR), vilket beskrevs i kap. 7. I det här kapitlet kommer vi att göra ett gränssnitt som kopplar URR till manipulatorarmen. Detta gränssnitt är också tillgängligt som ett kit från Images SI, Inc.

Gränssnittsdiagrammet för RRR visas i fig. 15.11. Gränssnittet använder en 16F84 mikrokontroller. Programmet för mikrokontrollern ser ut så här:


'URR-gränssnittsprogram

Symbol Port A = 5

Symbol TRISA = 133

Symbol Port B = 6

Symbol TRISB = 134

Om bit4 = 0, utlös "Om skrivning till trigger är aktiverat, läs schemat

Gå till start 'Upprepa

paus 500 'Vänta 0,5s

Peek PortB, B0 'Läs BCD-kod

Om bit5 = 1 skicka sedan 'Utdatakod

måste starta 'Repetera

peek PortA, b0 'Läs port A

om bit4 = 1 så är elva 'Är talet 11?

peta PortB, b0 'Utmatningskod

måste starta 'Repetera

om bit0 = 0 så tio

måste starta 'Repetera

måste starta 'Repetera



Ris. 15.11. Schema för URR-styrenheten för en robotarm


Programuppdatering under 16F84 kan laddas ner gratis från http://www.imagesco.com

URR-gränssnittsprogrammering

Programmeringen av RRS-gränssnittet liknar programmeringen av RRS från den uppsättning som beskrivs i kap. 7. För korrekt funktion arm måste du programmera kommandoorden enligt siffrorna som motsvarar manipulatorns specifika rörelse. I tabell. 15.1 visar exempel på kommandoord som styr manipulatorarmens funktion. Du kan välja kommandoord efter eget tycke.

Tabell 15.1

Delarlista för PC-gränssnitt

(5) NPN TIP120 transistor

(5) Transistor PNP TIP 125

(1) IC 74164 kodomvandlare

(1) IC 74LS373 åtta nycklar

(1) LED röd

(5) Diod 1N914

(1) 8-stifts Molex-kontaktuttag

(1) Molex-kabel 8-ledare, 75 mm lång

(1) DIP-omkopplare

(1) DB25 vinkelkontakt

(1) 1,8 m DB 25-kabel med två kontakter av M-typ.

(1) Tryckt kretskort

(3) Motstånd 15kΩ, 0,25W


Alla listade föremål ingår i satsen.

Delarlista för taligenkänningsgränssnitt

(5) NPN TIP 120 transistor

(5) Transistor PNP TIP 125

(1) IC 4011 NOR-grind

(1) IC 4049 - 6 buffertar

(1) IC 741 operationsförstärkare

(1) Motstånd 5,6 kΩ, 0,25 W

(1) Motstånd 15 kΩ, 0,25 W

(1) 8-stifts Molex-kontakthuvud

(1) Molex kabel 8 ledare, längd 75 mm

(10) Motstånd 100 kΩ, 0,25 W

(1) Motstånd 4,7 kΩ, 0,25 W

(1) 7805 spänningsregulator IC

(1) IC PIC 16F84 mikrokontroller

(1) 4,0 MHz kvartskristall

Robotarmgränssnittssats

OWI manipulatorarmssats

Taligenkänningsgränssnitt för manipulatorarm

Taligenkänningsenhet set


Delar kan beställas från:

Images, S.I., Inc.


Förbindelse:

Om du har monterat manipulatorns delar i enlighet med instruktionerna kan du fortsätta med monteringen elektrisk krets. Vi föreslår att du ansluter manipulatorservona till Arduino UNO via Trerma-Power Shield och styr servon med Trema-potentiometrar.

  • Om du vrider på knappen på den första Trema-krukan kommer basen att vridas.
  • Om du vrider på vredet på den andra Trema-potentiometern kommer den vänstra axeln att vridas.
  • Om du vrider på vredet på den tredje Trema-potentiometern kommer den högra axeln att vridas.
  • Om du vrider på vredet på den fjärde Trema-potentiometern flyttas griparen.

Programkoden (skissen) ger skydd för servon, vilket består i att deras rotationsområde begränsas av intervallet (två vinklar) för fritt spel. Minsta och maximala rotationsvinkel anges som de två sista argumenten för map()-funktionen för varje servo. Och värdet på dessa vinklar bestäms under kalibreringsprocessen, som måste utföras innan arbetet påbörjas med manipulatorn.

Programkod:

Om du sätter på ström före kalibrering kan manipulatorn börja röra sig otillräckligt! Slutför alla kalibreringssteg först.

#omfatta // Anslut Servo-biblioteket för att arbeta med servoenheter Servo servo1; // Deklarera att ett servo1-objekt fungerar med basservot Servo servo2; // Deklarera att ett servo2-objekt fungerar med vänsterarmsservot Servo servo3; // Deklarera att ett servo3-objekt fungerar med högerarmsservot Servo servo4; // Deklarera att ett servo4-objekt fungerar med infångningsservot int valR1, valR2, valR3, valR4; // Deklarera variabler för att lagra potentiometervärden // Tilldela stift: const uint8_t pinR1 = A2; // Definiera en konstant med utgångsnumret för styrpotentiometern. baskonst uint8_t pinR2 = A3; // Definiera en konstant med utgångsnumret för styrpotentiometern. vänster axel const uint8_t pinR3 = A4; // Definiera en konstant med utgångsnumret för styrpotentiometern. höger axel const uint8_t pinR4 = A5; // Definiera en konstant med utgångsnumret för styrpotentiometern. capture const uint8_t pinS1 = 10; // Definiera en konstant med basservotappen # const uint8_t pinS2 = 9; // Definiera en konstant med antalet utsignaler från vänsterarmens servo const uint8_t pinS3 = 8; // Definiera en konstant med den högra armens servostift # const uint8_t pinS4 = 7; // Definiera en konstant med pinnumret för infångningsservot void setup()( // Inställningsfunktionskoden exekveras en gång: Serial.begin(9600); // Initiera dataöverföring till serieportens monitor servo1.attach(pinS1) ); // Tilldela servo1 till objektkontrollservo 1 servo2.attach(pinS2); // Tilldela servo2 objektkontrollservo 2 servo3.attach(pinS3); // Tilldela servo3 objektkontrollservo 3 servo4.attach(pinS4); / / Tilldela servo4-objektkontrollservo 4 ) void loop()( // Loopfunktionskoden exekveras konstant: valR1=map(analogRead(pinR1), 0, 1024, 10, 170); servo1.write(valR1); // Rotera basen Vinklarna som anges på denna rad: 10 och 170 kan behöva ändras (kalibreras) valR2=map(analogRead(pinR2), 0, 1024, 80, 170); servo2.write(valR2); // Styr vänster skuldra Vinklarna som anges på denna rad: 80 och 170 kan behöva ändras (kalibreras ) valR3=map(analogRead(pinR3), 0, 1024, 60, 170);servo3.write(valR3) ; // Styr den högra axeln Vinklarna som anges i denna rad: 60 och 170 kan behöva ändras (kalibreras) valR4=map(analogRead(pinR4), 0, 1024, 40, 70); servo4.write(valR4); // Styra infångningen Vinklarna som anges på denna rad: 40 och 70 kan behöva ändras (kalibreras) Serial.println((String) "A1 = "+valR1+",\t A2 = "+valR2+", \t A3 = "+valR3+ ", \t A4 = "+valR4); // Visningsvinklar på monitorn)

Kalibrering:

Innan du börjar arbeta med manipulatorn måste du kalibrera den!

    Kalibrering består i att specificera extremvärdena för rotationsvinkeln för varje servo, så att delarna inte stör deras rörelser.
  • Koppla bort alla servon från Trema-Power Shield, ladda upp skissen och anslut strömmen igen.
  • Öppna serieportens monitor.
  • Monitorn visar rotationsvinklarna för varje servo (i grader).
  • Anslut den första servo (som styr basens rotation) till stift D10.
  • Om du vrider på vredet på den första Trema-potentiometern (stift A2) vrids den första servo (stift D10), och värdet på den aktuella vinkeln för denna servo kommer att ändras i monitorn (värde: A1 = ...). Den första servos ytterlägen kommer att ligga i intervallet från 10 till 170 grader (som skrivet i den första raden i loopkoden). Detta intervall kan ändras genom att ersätta värdena för de två sista argumenten i map()-funktionen i den första raden i loopkoden med nya. Om du till exempel ändrar 170 till 180 kommer servos ändläge att öka i den riktningen. Och genom att ersätta 10 med 20 kommer du att minska det andra ytterläget för samma servo.
  • Om du ändrade värdena måste du ladda om skissen. Nu kommer servo att rotera inom de nya gränserna du ställer in.
  • Anslut den andra servo (som styr rotationen av vänster arm) till stift D9.
  • Om du vrider på vredet på den andra Trema-potentiometern (stift A3) vrids den andra servo (stift D9), och det aktuella vinkelvärdet för denna servo kommer att ändras i monitorn (värde: A2 = ...). Den andra servos ytterlägen kommer att ligga i intervallet från 80 till 170 grader (som skrivet på den andra raden i skissens loopkod). Detta område ändras på samma sätt som för den första servo.
  • Om du ändrade värdena måste du ladda om skissen.
  • Anslut den tredje servo (som styr rotationen av höger arm) till stift D8. och kalibrera den på samma sätt.
  • Anslut den fjärde servo (som styr griparen) till stift D7. och kalibrera den på samma sätt.

Kalibrering räcker för att utföra 1 gång, efter montering av manipulatorn. Ändringarna du gjorde (värdena för gränsvinklarna) kommer att sparas i skissfilen.

Den här artikeln är en introduktionsguide för nybörjare för att skapa robotarmar som är programmerade med Arduino. Konceptet är att robotarmsprojektet ska vara billigt och lätt att bygga. Vi kommer att montera en enkel prototyp med kod som kan och bör optimeras, detta blir en bra start för dig inom robotik. Arduinos robotarm styrs av en hackad joystick och kan programmeras att upprepa sekvensen av åtgärder du anger. Om du inte är bra på programmering så kan du ta projektet som en utbildning för att bygga hårdvara, ladda upp min kod till den och få grundläggande kunskaper utifrån den. Återigen är projektet ganska enkelt.

På videon - en demo med min robot.

Steg 1: Lista över material



Vi kommer att behöva:

  1. Arduino-bräda. Jag använde Uno, men vilken sort som helst kommer att göra jobbet lika bra.
  2. Servos, de 4 billigaste du hittar.
  3. Bostadsmaterial efter eget val. Lämpligt trä, plast, metall, kartong. Mitt projekt är byggt från en gammal anteckningsbok.
  4. Om du inte vill krångla till kretskortet behöver du en brödbräda. Lämplig bräda liten storlek, leta efter alternativ med byglar och en strömförsörjning - de är ganska billiga.
  5. Något för armens bas - jag använde en kaffeburk, det är inte det bästa alternativet, men det är allt jag kunde hitta i lägenheten.
  6. Fin tråd för handens mekanism och en nål för att göra hål.
  7. Limma och tejp för att hålla ihop allt. Det finns inget som inte kan hållas ihop med tejp och varmt lim.
  8. Tre 10K motstånd. Om du inte har motstånd finns det dock en lösning i koden för sådana fall det bästa alternativet kommer att köpa motstånd.

Steg 2: Hur det hela fungerar



Den bifogade bilden visar handens princip. Jag kommer också att förklara allt i ord. De två delarna av handen är förbundna med en tunn tråd. Mitten av tråden är kopplad till handservot. När servo drar i tråden trycks handen ihop. Jag försåg armen med en kulspetsfjäder, men har du ett smidigare material kan du använda det.

Steg 3: Ändra joysticken

Förutsatt att du redan har monterat ihop armmekanismen går jag vidare till joystickdelen.

En gammal joystick användes för projektet, men i princip duger vilken enhet som helst med knappar. Analoga knappar (svampar) används för att styra servon, eftersom de i huvudsak bara är potentiometrar. Om du inte har en joystick kan du använda tre vanliga potentiometrar, men om du är som jag och modifierar en gammal joystick med dina egna händer, så här är vad du behöver göra.

Jag kopplade potentiometrarna till brödbrädan, var och en av dem har tre terminaler. En av dem måste anslutas till GND, den andra till +5V på Arduino, och den mellersta till ingången, som vi kommer att definiera senare. Vi kommer inte att använda Y-axeln på vänster potentiometer, så vi behöver bara potentiometern ovanför joysticken.

När det gäller switcharna, anslut +5V till ena änden av den, och ledningen som går till den andra Arduino-ingången till den andra änden. Min joystick har en +5V linje gemensam för alla switchar. Jag kopplade bara in 2 knappar, men kopplade sedan ihop en till när det blev nödvändigt.

Det är också viktigt att skära av ledningarna som går till chippet (svart cirkel på joysticken). När du är klar med allt ovan kan du börja koppla.

Steg 4: Anslut vår enhet

Bilden visar enhetens elektriska ledningar. Potentiometrar är spakar på en joystick. Armbåge är den högra Y-axeln, Basen är den högra X-axeln, Axeln är den vänstra X-axeln. Om du vill ändra riktningen på servon, byt bara +5V och GND-ledningarna på lämplig potentiometer.

Steg 5: Ladda ner koden

Vid det här laget måste vi ladda ner den bifogade koden till datorn och sedan ladda upp den till Arduino.

Obs: om du har laddat upp kod till Arduino tidigare, hoppa över det här steget - du kommer inte att lära dig något nytt.

  1. Öppna Arduino IDE och klistra in koden i den
  2. Välj din bräda i Verktyg/Tavla
  3. I Verktyg/Serial Port väljer du porten som ditt kort är anslutet till. Troligtvis kommer valet att bestå av ett föremål.
  4. Klicka på knappen Ladda upp.

Du kan ändra intervallet för servon, i koden lämnade jag anteckningar om hur man gör detta. Mest troligt kommer koden att fungera utan problem, du behöver bara ändra armservoparametern. Den här inställningen beror på hur du sätter upp tråden, så jag rekommenderar att du gör rätt.

Om du inte använder motstånd, måste du ändra koden på den plats där jag lämnade anteckningar om detta.

Filer

Steg 6: Starta projektet

Roboten styrs av rörelser på joysticken, handen komprimeras och frigörs med hjälp av handknappen. Videon visar hur allt fungerar i verkligheten.

Här är ett sätt att programmera en hand:

  1. Öppna Serial Monitor i Arduino IDE, detta gör det lättare att följa processen.
  2. Spara startpositionen genom att klicka på Spara.
  3. Flytta bara en servo åt gången, till exempel, axeln uppåt och tryck på spara.
  4. Aktivera handen också endast vid dess steg, och spara sedan genom att trycka på spara. Avaktivering utförs också i ett separat steg följt av att spara.
  5. När du är klar med kommandosekvensen trycker du på play-knappen, roboten går till startpositionen och börjar sedan röra sig.
  6. Om du vill stoppa det, koppla ur kabeln eller tryck på återställningsknappen på Arduino-kortet.

Om du gjorde allt rätt kommer resultatet att bli liknande det här!

Jag hoppas att lektionen var användbar för dig!

En av de huvudsakliga drivande krafter automatisering av modern produktion är industriella robotar-manipulatorer. Deras utveckling och implementering gjorde det möjligt för företag att nå en ny vetenskaplig och teknisk nivå av uppgiftsutförande, omfördela ansvar mellan utrustning och människor och öka produktiviteten. Vi kommer att prata om typerna av robotassistenter, deras funktionalitet och priser i artikeln.

Assistent nr 1 - robotarm

Industrin är grunden för de flesta av världens ekonomier. Intäkterna för inte bara individuell produktion, utan också statsbudgeten beror på kvaliteten på de varor som erbjuds, volymer och prissättning.

I ljuset av det aktiva införandet av automatiserade linjer och den utbredda användningen av smart teknik ökar kraven på de levererade produkterna. Idag är det nästan omöjligt att konkurrera utan användning av automatiserade linjer eller industriella robotarmar.

Hur en industrirobot fungerar

Robotarmen ser ut som en enorm automatiserad "hand" som styrs av ett elektriskt styrsystem. Det finns ingen pneumatik eller hydraulik i designen av enheterna, allt bygger på elektromekanik. Detta gjorde det möjligt att minska kostnaderna för robotar och öka deras hållbarhet.

Industrirobotar kan vara 4-axliga (används för stapling och packning) och 6-axliga (för andra typer av arbeten). Dessutom skiljer sig robotar också beroende på graden av frihet: från 2 till 6. Ju högre den är, desto mer exakt återskapar manipulatorn rörelsen av den mänskliga handen: rotation, rörelse, kompression / frigöring, tilt, och så vidare.
Funktionsprincipen för enheten beror på dess programvara och utrustning, och om huvudmålet i början av utvecklingen var att släppa arbetare från tungt och farligt arbete, har antalet utförda uppgifter i dag ökat avsevärt.

Användningen av robotassistenter gör att du kan klara av flera uppgifter samtidigt:

  • minskning av arbetsutrymme och frigivning av specialister (deras erfarenhet och kunskap kan användas inom ett annat område);
  • ökning av produktionsvolymer;
  • förbättra produktkvaliteten;
  • på grund av kontinuiteten i processen förkortas produktionscykeln.

I Japan, Kina, USA, Tyskland sysselsätter företagen ett minimum av anställda vars uppgift endast är att kontrollera driften av manipulatorer och kvaliteten på tillverkade produkter. Det är värt att notera industrirobot-manipulator är inte bara en funktionell assistent inom maskinteknik eller svetsning. Automatiserade enheter presenteras i ett brett utbud och används inom metallurgi, ljus och Livsmedelsindustrin. Beroende på företagets behov kan du välja en manipulator som matchar det funktionella ansvaret och budgeten.

Typer av industriella robotarmar

Hittills finns det cirka 30 typer av robothänder: från universella modeller till högt specialiserade assistenter. Beroende på de utförda funktionerna kan manipulatorernas mekanismer skilja sig: till exempel kan det vara svetsning, skärning, borrning, bockning, sortering, stapling och packning av varor.

Till skillnad från den befintliga stereotypen om den höga kostnaden för robotutrustning, kommer alla, även ett litet företag, att kunna köpa en sådan mekanism. Små universella robotmanipulatorer med en liten nyttolast (upp till 5 kg) från ABB och FANUC kommer att kosta från 2 till 4 tusen dollar.
Trots enheternas kompakthet kan de öka hastigheten och kvaliteten på bearbetningsprodukter. En unik mjukvara kommer att skrivas för varje robot, som exakt koordinerar driften av enheten.

Mycket specialiserade modeller

Svetsrobotar har funnit sin största användning inom maskinteknik. På grund av det faktum att enheterna kan svetsa inte bara jämna delar utan också effektivt utföra svetsarbeten i en vinkel, i svåråtkomliga platser installera hela automatiserade linjer.

Ett transportörsystem lanseras, där varje robot gör sin del av arbetet under en viss tid, och sedan börjar linjen gå till nästa steg. Det är ganska svårt att organisera ett sådant system med människor: ingen av arbetarna bör vara frånvarande ens för en sekund, annars kommer hela produktionsprocessen att gå vilse, eller äktenskap kommer att dyka upp.

Svetsare
De vanligaste alternativen är svetsrobotar. Deras produktivitet och noggrannhet är 8 gånger högre än en människas. Sådana modeller kan utföra flera typer av svetsning: båge eller punkt (beroende på programvara).

Kuka industrirobotarmar anses vara ledande inom detta område. Kostnaden är från 5 till 300 tusen dollar (beroende på bärförmåga och funktioner).

Samlare, flyttare och packare
tung och skadlig för människokropp arbetskraft var orsaken till framväxten av automatiserade assistenter i denna bransch. Packningsrobotar förbereder varorna för leverans på några minuter. Kostnaden för sådana robotar är upp till 4 tusen dollar.

Tillverkarna ABB, KUKA och Epson erbjuder lyftanordningar för tunga laster över 1 ton och transport från lager till lastställe.

Tillverkare av industriella robotmanipulatorer

De obestridda ledarna inom denna bransch är Japan och Tyskland. De står för mer än 50 % av all robotteknik. Att konkurrera med jättarna är dock inte lätt, och i OSS-länderna dyker gradvis upp egna tillverkare och nystartade företag.

KNN Systems. Det ukrainska företaget är partner till tyska Kuka och utvecklar projekt för robotisering av svets-, fräsnings-, plasmaskärnings- och palleteringsprocesser. Tack vare deras mjukvara kan en industrirobot konfigureras om för att passa den nya sorten uppgifter på bara en dag.

Rozum Robotics (Vitryssland). Företagets specialister har utvecklat en industriell robotarm PULSE, som kännetecknas av sin lätthet och användarvänlighet. Enheten är lämplig för montering, packning, limning och omarrangering av delar. Priset på roboten är cirka 500 dollar.

"ARKODIM-Pro" (Ryssland). Det är engagerat i produktionen av linjära robotmanipulatorer (som rör sig längs linjära axlar) som används för formsprutning av plast. Dessutom kan ARKODIM-robotar fungera som en del av ett transportörsystem och utföra funktionerna som en svetsare eller packare.

Av funktionerna hos denna robot på Arduino-plattformen kan man notera komplexiteten i dess design. Roboarm består av många spakar som gör att den kan röra sig i alla axlar, greppa och flytta olika saker med bara 4 servomotorer. Att ha samlat med mina egna händer en sådan robot kommer du definitivt att kunna överraska dina vänner och nära och kära med möjligheterna och det trevliga utseendet denna apparat! Kom ihåg att du alltid kan använda vår RobotON Studio grafiska miljö för programmering!

Har du frågor eller synpunkter så är vi alltid i kontakt! Skapa och dela dina resultat!

Egenskaper:

För att montera en DIY-robotarm behöver du en hel del komponenter. Huvuddelen är upptagen av 3D-utskrivna delar, det finns cirka 18 av dem (det är inte nödvändigt att skriva ut en bild). Om du har laddat ner och skrivit ut allt du behöver behöver du bultar, muttrar och elektronik:

  • 5 bultar M4 20 mm, 1 x 40 mm och matchande antirotationsmuttrar
  • 6 bultar M3 10mm, 1 x 20mm och matchande muttrar
  • Breadboard med anslutningsledningar eller skärm
  • Arduino Nano
  • 4 servomotorer SG 90

Efter montering av höljet är det VIKTIGT att se till att det kan röra sig fritt. Om nyckelkomponenterna i Roboarm rör sig med svårighet kan det hända att servomotorerna inte kan hantera belastningen. Vid montering av elektronik måste man komma ihåg att det är bättre att ansluta kretsen till ström efter en fullständig kontroll av anslutningarna. För att undvika skador på servon SG 90 behöver du inte vrida själva motorn för hand, om det inte behövs. Om du behöver utveckla SG 90 måste du smidigt flytta motoraxeln i olika riktningar.

Egenskaper:
  • Enkel programmering på grund av närvaron av ett litet antal motorer, och av samma typ
  • Förekomsten av döda zoner för vissa servon
  • Stor användbarhet av roboten i det dagliga livet
  • Intressant ingenjörsarbete
  • Behovet av att använda en 3D-skrivare