- Komponenter krävs
- Konstruktion av robotarm
- Kretsschema och arbetsförklaring:
- Hur man använder robotarm:
I den här handledningen ska vi utforma en Arduino Uno-baserad robotarm från vissa kartonger och servomotorer. Hela byggprocessen har förklarats i detalj nedan. Här i detta projekt är Arduino Uno programmerad för att styra servomotorer som fungerar som fogar till robotarmen. Denna inställning ser också ut som en robotkran eller så kan vi konvertera den till en kran genom att göra några enkla justeringar. Detta projekt kommer att vara till hjälp för nybörjare som vill lära sig att utveckla en enkel robot till låg kostnad eller bara vill lära sig att arbeta med Arduino och servomotorer.
Denna Arduino robotarm kan styras av fyra potentiometer som är anslutna till den, varje potentiometer används för att styra varje servo. Du kan flytta dessa servor genom att rotera krukorna för att plocka något objekt, med lite övning kan du enkelt plocka och flytta objektet från en plats till en annan. Vi har använt servor med lågt vridmoment här men du kan använda kraftfullare servor för att plocka tunga föremål. Hela processen har visats väl i videon i slutet. Kolla även våra andra robotprojekt här.
Komponenter krävs
- Arduino Uno
- 1000uF kondensator (4 delar)
- 100nF kondensator (4 delar)
- Servomotor (SG 90 - fyra delar)
- 10K pott - variabelt motstånd (4 delar)
- Strömförsörjning (5v - helst två)
Servomotor
Först pratar vi lite om Servo Motors. Servomotorer används främst när det finns behov av exakt axelrörelse eller position. Dessa föreslås inte för höghastighetsapplikationer. Servomotorer föreslås för lågt varvtal, medelt vridmoment och korrekt positionstillämpning. Så dessa motorer är bäst för design av robotarm.
Servomotorer finns i olika former och storlekar. Vi ska använda små servomotorer, här använder vi fyra SG90-servor. En servomotor kommer huvudsakligen att ha ledningar, en är för positiv spänning en annan är för mark och den sista är för lägesinställning. Den RÖDA ledningen är ansluten till ström, den svarta ledningen är ansluten till jord och den Gula ledningen är ansluten till signalen. Gå igenom den här guiden för att styra servomotor med Arduino för att lära dig mer om det. I Arduino har vi fördefinierade bibliotek för att styra Servo, så det är väldigt enkelt att styra servo, vilket du kommer att lära dig tillsammans med denna handledning.
Konstruktion av robotarm
Ta en plan och stabil yta, som ett bord eller ett hårt kort. Sätt sedan en servomotor i mitten och lim den på plats. Se till att rotationsgraden ligger i det område som visas i figuren. Denna servo fungerar som bas av armen.
Lägg en liten bit kartong ovanpå den första servon och placera sedan den andra servon på den här biten och lim den på plats. Servorotationen måste matcha diagrammet.
Ta några kartonger och skär dem i bitar på 3 cm x 11 cm. Se till att biten inte är mjukad. Skär ett rektangulärt hål i ena änden (lämna 0,8 cm från botten) precis tillräckligt för att passa en annan servo och i en annan ände montera servoutrustningen tätt med skruvar eller med lim. Montera sedan den tredje servon i det första hålet.
Klipp nu ytterligare en kartongbit med längderna som visas i figuren nedan och lim en annan växel längst ner på denna bit.
Limma nu den fjärde och sista servon vid kanten av det andra stycket som bilden visar.
Med detta ser två delar ut tillsammans.
När vi fäster denna inställning på basen ska den se ut,
Det är nästan klart. Vi behöver bara göra kroken för att ta tag i och plocka föremålet som en robothand. För krok, skär ytterligare två bitar av kortkort med längderna 1cmx7cm & 4cmx5cm. Limma ihop dem som visas i figuren och fäst den sista växeln längst ner.
Montera den här biten ovanpå och med detta har vi byggt vår robotarm.
Med detta slutfördes vår grundläggande robotarmdesign och det är så vi har byggt vår billiga robotarm. Anslut nu kretsen i panelen enligt kretsschemat.
Kretsschema och arbetsförklaring:
Kretsanslutningen för Arduino Uno Robotic Arm visas nedan.
Spänningen över variabla motstånd är inte helt linjär; det blir en högljudd. Så för att filtrera bort detta brus placeras kondensatorer över varje motstånd som visas i figuren.
Nu matar vi spänningen som tillhandahålls av dessa variabla motstånd (spänning som representerar positionskontroll) i ADC-kanaler i Arduino. Vi ska använda fyra ADC-kanaler för UNO från A0 till A3 för detta. Efter ADC-initialiseringen kommer vi att ha det digitala värdet av krukor som representerar den position som användaren behöver. Vi tar detta värde och matchar det med servoposition.
Arduino har sex ADC-kanaler. Vi har använt fyra för vår robotarm. UNO ADC har 10 bitars upplösning så heltalsvärdena sträcker sig från 0-1023 (2 ^ 10 = 1024 värden). Detta betyder att den kommer att mappa ingångsspänningar mellan 0 och 5 volt i helvärden mellan 0 och 1023. Så för varje (5/1024 = 4,9 mV) per enhet. Lär dig mer om att kartlägga spänningsnivåerna med hjälp av ADC-kanaler i Arduino här.
Nu, för att UNO ska konvertera analog signal till digital signal, måste vi använda ADC Channel of Arduino Uno, med hjälp av nedanstående funktioner:
1. analogRead (pin); 2. analog referens (); 3. analogReadResolution (bitar);
Arduino ADC-kanaler har ett standardreferensvärde på 5V. Det betyder att vi kan ge en maximal ingångsspänning på 5V för ADC-omvandling vid vilken ingångskanal som helst. Eftersom vissa sensorer ger spänningar från 0-2,5V, så med en 5V-referens får vi mindre noggrannhet, så vi har en instruktion som gör att vi kan ändra detta referensvärde. Så för att ändra referensvärdet har vi "analogReference ();"
Som standard får vi den maximala ADC-upplösningen som är 10 bitar, denna upplösning kan ändras med instruktioner (“analogReadResolution (bits);”).
I vår robothandkrets har vi lämnat denna referensspänning till standard, så att vi kan läsa värdet från ADC-kanalen genom att direkt kalla funktionen "analogRead (pin);", här "pin" representerar stift där vi kopplade den analoga signalen, säg vi vill läsa "A0". Värdet från ADC kan lagras i ett heltal som int SENSORVALUE0 = analogRead (A0); .
Nu ska vi tala om SERVO har Arduino Uno en funktion som gör det möjligt för oss att kontrollera servoläge genom att bara ge graden värdet. Säg om vi vill att servon ska vara 30, kan vi direkt representera värdet i programmet. SERVO-rubrikfilen ( Servo.h ) tar hand om alla beräkningar av arbetsförhållandet internt.
#omfatta
Här representerar första uttalandet rubrikfilen för styrning av SERVO MOTOR. Andra uttalandet är namngivning av servon; vi lämnar det som servo0 som vi ska använda fyra. Tredje uttalandet anger var servosignalstiftet är anslutet; detta måste vara en PWM-stift. Här använder vi PIN3 för första servo. Fjärde uttalandet ger kommandon för placering av servomotor i grader. Om det ges 30, roterar servomotorn 30 grader.
Nu har vi SG90-servoposition från 0 till 180 och ADC-värdena är från 0-1023. Vi använder en speciell funktion som matchar båda värdena automatiskt.
sensorvalue0 = karta (sensorvalue0, 0, 1023, 0, 180);
Detta uttalande mappar båda värdena automatiskt och lagrar resultatet i heltal 'servovalue0' .
Så här har vi kontrollerat Servos i vårt robotarmsprojekt med Arduino. Kontrollera hela koden nedan.
Hur man använder robotarm:
Det finns fyra krukor som tillhandahålls till användaren. Och genom att rotera dessa fyra krukor tillhandahåller vi variabel spänning vid ADO-kanalerna i UNO. Så de digitala värdena för Arduino är under kontroll av användaren. Dessa digitala värden kartläggs för att justera servomotorns läge, varför servoläget kontrollerar användaren och genom att rotera dessa krukor kan användaren flytta lederna på robotarmen och kan plocka eller ta tag i något föremål.