Bygga en 5-axlig robotarm med Arduino och DynamixShield (18 / 19 steg)

Steg 18: Program armen.

Du kan hitta den skiss som styr robotarm i github databasen under DynamixShield/skisser/RobotArm. Jag kommer att kortfattat förklara de viktigaste delarna av skiss.

1. först måste du inkludera klassen DynamixSerial. Denna klass är vad du använder för att kommunicera med Dynamixel servon.

#include

2. nästa har vi vissa variabler att tilldela stiften för joystick och tryck sensorer, och hålla koll på servo rörelser.

#define SERVO_COUNT 5

#define AXIS_COUNT 4

Dessa konstanter ändras inte. De är vana att ge namn

till stift används:

CONST int x1Pin = A0;

CONST int y1Pin = A1;

CONST int x2Pin = A2;

CONST int y2Pin = A3;

CONST int pressurePin = A11;

Index för AxisPos matrisen som styr gripdon öppna/stäng

CONST int gripperCloseIdx = 1;

CONST int gripperOpenIdx = 3;

CONST int gripperIdx = 4;

int servoPos [SERVO_COUNT];

int servoDir [SERVO_COUNT];

int servoAdd [SERVO_COUNT];

int axisID [AXIS_COUNT];

int axisPos [AXIS_COUNT];

int gripPressure = 0;

3. sedan deklarerar vi klassen DynamixelSerial. Denna klass förutsätter att det använder Serial1 för kommunikation till Dynamixel servon. Dock om du passerar i hårdvara seriella portar här kan du åsidosätta den. Detta är så att programvaran kan användas på egna projekt som inte använder DynamixShield.

DynamixelSerial Dynamixel;

4. nästa viktigaste del är setup. Vi startar vår felsöka seriell anslutning och sedan börja klassen DynamixelSerial. Standardinställningen är en 1 Mbaud kommunikation hastighet och PIN-koden som används för att styra den halv duplex Dynamixel protokollet anges baserat på tavlan du använder. Så på en vederbörlig det är stift 22, men noll är det stift 2. Dock har du också möjlighet att ange dessa parametrar i anropet till metoden begin att åsidosätta vad som används för egna projekt.

#ifdef ENABLE_DEBUG

Serial.BEGIN(57600);

tag (!. Seriell);

Serial.println ("starta installationsprogrammet");

#endif

Dynamixel.BEGIN (); eller Dynamixel.begin (1000000, 22);

5. installationsprogrammet har sedan lite kod för att återställa alla servon till deras standardposition redo för rörelse. Det återställer också alla variabler till sina standardtillstånd.

6. den huvudsakliga behandlingen loopen är ganska enkel. Det kräver bara processJoysticks() och sedan förseningar 20 millisekunder.

Ogiltig loop () {

processJoysticks();

fördröjning (20);

}

7. processmetod styrspaken har en loop som går igenom varje joystick axel och läser det analoga värdet från joysticken.

void processJoysticks() {

String servoPosReport = "", servoAddReport = "", axisReport = "";

Läs analogt värde:

för (int jag = 0; jag

axisPos [i] = analogRead(axisID[i]);

8. det skalar sedan värdet från joysticken mellan 255 och 755 till ett värde mellan -5 och 5. Om värdet är större än 1020 då innebär det att vi trycker ner på joysticken till nära gripdon käftar, så vi kommer att låta processen gripdon metoden hantera detta.

Om det är större än 1020 är knappen trycks.

om (axisPos [i] < 1020) {

servoAdd [i] = karta (axisPos [i], 255, 755, -5, 5);

}

annat {

servoAdd [i] = 0;

}

9. lägger vi rörelse värdet till servon position.

om ((servoPos [i] + servoAdd[i]) > = 0 & & (servoPos [i] + servoAdd [i] < 1024)) {

servoPos [i] += (servoDir [i] * servoAdd[i]);

}

10. om vi hade rörelsen på denna axel Ange vi den nya positionen för servo.

om (servoAdd [i]! = 0) {

Dynamixel.moveSpeed (jag + 1, servoPos [i], 150); Delay(10);

}

11. Slutligen appeller det processGripper. Att börjar metoder genom att läsa den analoga signalen för trycksensorn.

void processGripper (sträng & servoPosReport, sträng & servoAddReport) {

gripPressure = analogRead(pressurePin);

12. pressar på de högra joystick stänger girpper, samtidigt som du trycker på vänster styrspak öppnas den. Metoden som kontrollerar detta genom att se om axelpositionen för nära eller öppen gripare position är lika med 1023. Detta är värdet läsa från styrspaken när du trycker ner på den. Om det är ner då vi lägga till servo för att vara plus eller minus 10. Annars lägger det till noll.

om (axisPos [gripperCloseIdx] == 1023) {

om (gripPressure < 850) {

servoAdd [gripperIdx] = -10;

}

}

annars om (axisPos [gripperOpenIdx] == 1023) {

servoAdd [gripperIdx] = 10;

}

annat {

servoAdd [gripperIdx] = 0;

}

13. då vi sätta servo positionen så länge det är inom 0 och 512. Griparen flytta inte mer än detta.

om ((servoPos [gripperIdx] + servoAdd[gripperIdx]) > = 0
& & (servoPos [gripperIdx] + servoAdd [gripperIdx] < = 512)) {

servoPos [gripperIdx] += (servoDir [gripperIdx] * servoAdd[gripperIdx]);

}

14. Slutligen, om vi lagt till position måste vi ställa den servo placeringen av griparen.

om (servoAdd [gripperIdx]! = 0) {

Dynamixel.moveSpeed (gripperIdx + 1, servoPos [gripperIdx], 150);

}

Och det är det. Det finns vissa andra saker i skissen jag inte diskutera här, men det är främst för felsökning ändamål. Du kan aktivera felsökning av uncommenting //#define ENABLE_DEBUG 1 linje överst. Detta kommer att skriva ut vad som händer när du kör skissen. Använda Arduino IDE för att programmet du skissen till din microcontroller och sedan kan köra våra nya robotarm!

Se Steg
Relaterade Ämnen

Bygga en XBMC/KODI remote med Arduino, IR-Sensor sköld och VB.NET

Bygga en XBMC/KODI remote med Arduino och en IR-Sensor sköld, som kommer att arbeta med någon fjärrkontroll.Jag ville styra min XBMC/Kodi dator från min satellitdekoder avlägsen, eftersom jag antingen titta på filmer på XMBC/Kodi eller satellit-TV, s...

Multiplexering med Arduino och 74HC595

74HC595 är en lätt och billig (på cirka 60 cent styck) sätt att öka antalet digitala ut stiften på din Arduino. I denna tutorial ska jag visa dig hur man kör upp till 16 lysdioder med en 74HC595 med hjälp av en teknik som kallas multiplexing. I slutä...

Roligt spel med arduino och bearbetning

Denna tutorial ska show dig hur man gör en första person FPS-shooter i bearbetning med hjälp av en arduino. Detta projekt lämnades till oss som en avslutande tentamen i en teknisk specialkurs, (gymnasieskolan).Video av projektet! :) (Svårt att spela...

Styra din Tv, Dvd och ljud system med Arduino och Android

Hej alla, detta är min andra instructable och min första på engelska, så, ledsen för misstag.Jag vill dela detta projekt det handlar om hur du kan styra din Tv, DVD och ljudanläggningen med Arduino och en app för Android med app inventor.Om du gillar...

Kapacitans mätare med arduino och 555 timer

KAPACITANS MÄTARE MED ARDUINO OCH 555 TIMER CHIPDetta projekt syftar till att bygga en enkel kapacitans mätare, en enhet för att mäta kapacitans i nanoFarads och microFarad, med en räckvidd på ca 1 nanoFarad till hundratals microFarads.Detta projekt,...

Spela upp ljud på dator med arduino och progduino

Idag kommer jag visa dig hur lätt det är att bygga en enkel spelare och kör det på datorn med arduino och progduino.Läs mer om progduino: http://www.progduino.comSteg 1: Arduino kod - spelaren på din dator.Kopiera koden till din arduino redaktör.void...

Mugg musik: Förvandla vatten till ett Instrument med Arduino och ChucK

Vad händer om du slå alla ledande yta till ett instrument? Gillar, säga... en mugg vatten? Bäst av allt, är det billigt; du behöver bara $1 värt extra elektriska komponenter (inte inklusive Arduino).För detta projekt, min vän skörd och jag kombinerad...

Säkerhetssystem och tillgång kontroll med Arduino och RFID-

säkerhetssystem och tillgång kontroll med Arduino och RFIDDetta projekt är en evolotuin av mitt första projekt kallat "Arduino - Security System och Access Control"Som ni kan se på bloggen http://arduinobymyself.blogspot.com.br/2012/03/arduino-s...

Hur använder gamla Stepper Motors med Arduino och A4988 Driver

Jag har varit med stegmotorer ett tag nu, och de är fantastiska för alla typer av robotic projekt.Idag kommer jag att dela de saker jag har lärt mig hittills om återanvända gamla stegmotorer bärgades från skrivare. Identifiera stegmotorerStegmotorer...

Power övervakning med Arduino och logga in i Google blad

Sedan senaste veckorna tänkte jag på att göra ett projekt som kan hjälpa mig att hålla ett spår på min dagliga energi användningsområden. I detta projekt använder jag en 30A övervakning styrelse. denna styrelse har 6 strömsensor som kan läsa upp till...

Kontroll av en DC motor med Arduino och Visual Basic

Hej vänner detta är mitt första inlägg i instructables.com där jag kommer att försöka ge mer nyhet des ofta.Idag är temat med Arduino och Visual Basic.Det projekt som vi ser idag är controller en dc-motor med Arduino och Visual Basic.För att styra en...

Rörelseaktiverade ljus med Arduino och HC-SR04 sensor

Jag gjorde detta projekt för länge sedan att tända upp i köket när jag öppnar bakdörren.Tanken var när jag öppnar bakdörren, detta ljus som tänds under 15 sekunder och som ger mig tillräckligt med tid att nå strömbrytaren på den motsatta väggen. Före...

Kontrollera en LED med arduino och Wifly sköld

För att visa hur du kan styra enheter via wifi med hjälp av arduino wifly shield, kommer jag slå på och av en LED genom att skicka en http-begäran från webbläsaren till wifly sköld.Krav:1. Arduino uno2. Wifly sköld3. ledde4. 220 ohm motstånd5. ett pa...

Hur man styr motorer med Arduino och RC mottagare i 10 minuter

Detta är min andra handledning på att kontrollera saker med Arduino och R/C-mottagare. Om du inte har tittat på min första tutorial jag föreslår att du tittar på det första, här: i den här guiden kommer vi att titta på hur man styr motorer också anvä...

Styra DC Motors(PC Fans) med Arduino och Relay board

I detta instructable kommer vi att se utan att gå in i detalj, hur man använder 12V DC motorer (PC Fans) med Arduino och relay board eBlockSteg 1: Konfigurera maskinvara och programvara För att göra det behöver vi viss maskinvara kan du hitta på Inte...

Kontrollerar ledde med Arduino och C#

Hej vänner detta är min första Arduino Tutorial på att kontrollera ett LED med Arduino och C#-program.Du behöverArduinoen1K ResistorLEDProgramvaraArduino programvara - www.arduino.ccMicrosoft visual C# / Visual StudioLED är ansluten till Pin 13.Titta...

Kontrollera en RGB ledde med Arduino och bearbetning

detta instructable (min första inte mindre) visar hur man styr en RGB ledde med bearbetning och arduino.Den viktiga funktionen att vara färg markeras genom att klicka på en bild, RGB-värdet för den pixel du klickar på bearbetas och skickas till den a...

Bygga din Internet kontrollerad Video-Streaming Robot med Arduino och Raspberry Pi

< the Instructable och koden är redo. Njut! Lämna en kommentar med du feedback! >Jag är (aka LiquidCrystalDisplay / Itay), en 14 år gammal student från Israel lärande i Max Shein Junior High School för avancerad vetenskap och matematik. Jag gör dett...

Styra en robotarm med Arduino, 1Sheeld och en Android Smart Phone

I denna artikel vi visar dig hur du använder smart 1Sheeld och din Android phone sensorer (orientering & närhet sensorer) till kontroll en Robotic beväpna trådlöst.Kort om 1Sheeld:http://1sheeld.com/Steg 1: Våra verktyg 1 - robotarm (bilda din egen d...