OmniWorm: en rundstrålande Robot Inchworm (5 / 5 steg)

Steg 5: Program, så njut av din nya Robot!



/*

Nedan är att undvika hinder koden för OmniWorm! Känn dig fri att anpassa det därmed.
------------------------------------------------------------------------------------

Vad du behöver ändra:
------------------------

SERVO kod: Två servon kan visa olika riktningar för varje vinkel
skickas till den. Därför testa varje servo seperatly. Ställa dem den
Max vinkel innan du monterar dem för att säkerställa att roboten kommer att vika in
en låda och att servon inte kommer att driva separat riktningar. Också,
Du kan behöva använda sjätte servo (servoFront2) beroende på den
vikt för din design. Min är endast 3 kg totalt så jag inte behöver det: P

SERVON: 313WP servon går från 20 till 160 grader utan att redigera den
servo bibliotek. 140 grader är bra nog för det här programmet
dock. Om du använder olika servon, kan du få mer eller mindre än
140 grader. Om servo är beräknat för 180 grader och du får en
mycket mindre, antingen använda pwm eller försöka ändra min och max pulsewidths
i servo biblioteket (servo.h). Redigera filen, downoad Notepad ++

MOTORISKA kod: Jag använder en halv-bruten robust motor förare från robusta
kretsar. Stift märkt EM är fastlödda kat2 på skölden som den
normala stift inte ändra riktning. Om du använder samma
sköld, sedan radera EM och bära! Om du använder en h-bron,
känner sedan fri att använda stift 3, 11-13 eller välja din egen. Var försiktig
inte att övermanna kretsen ändå! Nedan finns länkar till tutorials.
Den sista länken är där du kan köpa den sköld som jag använder!

http://ITP.NYU.edu/physcomp/Labs/DCMotorControl

http://www.ECS.UMass.edu/ECE/M5/tutorials/H-Bridge_tutorial.html

http://www.societyofrobots.com/schematics_h-bridgedes.shtml

http://www.ruggedcircuits.com/motor-Control/Rugged-motor-driver

MOTORER: Gör din plånbok en stor tjänst och inte riva sönder namebrand
Parallex servon att köra som DC-motorer (om inte om de var trasiga
som mitt var). Om du gör hacka dem, helt enkelt skruva loss baksidan,
dra tre trådar av, sätt tillbaka skruvarna i att hålla den
växellåda tillsammans (vissa hotglue kan hjälpa), och noggrant löda en
tråd till varje DC motor slutet bara. Överskjutande löda kan Sila setup.
Men jag skulle helt enkelt köpa gul robot hjul/gearboxs på ebay.
Sök för "robot hjul" och de kommer att dyka upp. Alternativt, Använd
360 graders servon som... ja... servon! Du kan lägga till eller
subtrahera vinklar för framåt/bakåt rörelse.

FUNKTIONER: Måste du redigera funktioner (eller spela med sladdar)
för att få det att fungera med din design. Några bra gamla försök och misstag
kommer att göra susen!

Några ord av råd:
----------------------

Om du använder en extern strömkälla för din servon, ansluta
marken till arduino är marken. Också vara försiktig med att koppla in
batteriet i backwords eller kort det ut... det kan lätt döda
servon. Dessutom om du övermanna ett servo kan den dö. Start
servon bort på låg effekt och arbeta dig upp. Min setup är
Pushing den... > :)

Jag skulle föreslå att du hitta (eller göra!) din egen h-bro till contol
din motors. Också, Anslut marken till arduino. Var noga med
inte dominera din setup! Slutligen håller en reset funktion setup
från kortslutning.

Glöm inte att du behöver luta sensorer om du ska stoppa sidan
hjulen från att flytta när du ritar ström!

Känner mig inte begränsad till stift jag använder. Välj din egen digital
Pins!!!

Min kod är anpassade från:
------------------------

http://www.ruggedcircuits.com/Rugged-motor-driver

http://Arduino.cc/en/reference/ServoWrite

http://arduinobasics.blogspot.com/2012/11/arduinobasics-HC-sr04-Ultrasonic-sensor.html

*/

#include < Servo.h >
Inkludera Servo biblioteket så vi behöver inte använda PWM

Servo servoFront;
Servo servoFront2;
Servo servoTail;
Servo servoTail2;
Servo servoBack;
Servo servoBack2;

Detta definierar våra servo namn (servoFront etc.)

Aktivera (PWM) utgångar (robust sköld)
#define EN1_PIN 3
#define EN2_PIN 11

Riktning-utgångar (robust sköld)
#define DIR1_PIN 12
#define DIR2_PIN 13
#define EM 10 //Cause 13 inte vill arbeta. Otur nummer! =/

#define echoPin 8 / / Echo Pin (för ultrasonic sensor)
#define trigPin 9 / / Trigger Pin (för ultrasonic sensor)

int maximumRange = 200. Maximal räckvidd krävs (kan ändras)
int minimumRange = 0; Minsta område behövs (kan ändras)
lång varaktighet, avstånd; Längd används för att beräkna avstånd

void setup() {

servoFront.attach(6);
servoTail.attach(1);
servoTail2.attach(2);
servoBack.attach(4);
servoBack2.attach(5);

pinMode (EN1_PIN, OUTPUT);
digitalWrite (EN1_PIN, låg);
pinMode (EN2_PIN, OUTPUT);
digitalWrite (EN2_PIN, låg);
pinMode (DIR1_PIN, OUTPUT);
digitalWrite (DIR1_PIN, låg);
pinMode (DIR2_PIN, OUTPUT);
digitalWrite (DIR2_PIN, låg);

pinMode (trigPin, produktionen);
pinMode (echoPin, ingång);

Ställa in/utgångar för motorer/servon/sensor

Closed();
fördröjning (1000);

Håller roboten lagt innan loopen börjar.
}

void loop() {
Nollställ;
Delay(50);
Closed();
Scan(); mäter distans via ultrasonic sensor
Delay(90);

om (avstånd < = 20 & & avstånd > = 0) {//if avståndet är mindre än 15 cm
Opened();
Delay(1000);
Reset();
Delay(50);
spin_right();
Opened();
Delay(1500);
Closed();
Delay(1000);
Scan();
Delay(800);
om (avstånd < = 15 & & avstånd > = 0) {
Opened();
Delay(1000);
Reset();
Delay(50);
spin_left();
Opened();
Delay(2200);
}
annat {
Reset();
Delay(50);
inch();
inch();
inch();
inch();
inch();
}
}

annat {//if avståndet är större än 15 cm
Reset();
Delay(50);
Closed();
Forward();
Delay(1000);
}
}

/*
Nedan finns funktioner som vi kallar genom ut våra loop. Det gör livet mycket
enklare, eftersom du kan styra flera stift och servon på en gång!
*/

void closed() {
servoFront.write(20);
servoTail.write(20);
servoTail2.write(160);
servoBack.write(20);
servoBack2.write(160);
}

void opened() {
servoFront.write(140);
servoTail.write(20);
servoTail2.write(160);
servoBack.write(100);
servoBack2.write(80);
}

void inch() {
Closed();
Delay(1000);
servoTail.write(160);
servoTail2.write(20);
Delay(1000);
servoTail.write(160);
servoTail2.write(20);
servoBack.write(160);
servoBack2.write(20);
Delay(1000);
servoTail.write(20);
servoTail2.write(160);
servoBack.write(160);
servoBack2.write(20);
Delay(1000);
servoFront.write(140);
Delay(1000);
}

void spin_right() {
digitalWrite (DIR1_PIN, hög);
analogWrite (EN1_PIN, 255);
digitalWrite (DIR2_PIN, hög);
analogWrite (EN2_PIN, 255);
digitalWrite (EM, hög);
}

void spin_left() {
digitalWrite (DIR1_PIN, låg);
analogWrite (EN1_PIN, 255);
digitalWrite (DIR2_PIN, hög);
analogWrite (EN2_PIN, 255);
digitalWrite (EM, låg);
}

void backward() {
digitalWrite (DIR1_PIN, hög);
analogWrite (EN1_PIN, 255);
digitalWrite (DIR2_PIN, låg);
digitalWrite (EM, hög);
analogWrite (EN2_PIN, 255);
}

void forward() {
digitalWrite (DIR2_PIN, hög);
analogWrite (EN2_PIN, 255);
digitalWrite (DIR1_PIN, låg);
analogWrite (EN1_PIN, 255);
digitalWrite (EM, hög);
}

void reset() {
analogWrite (EN2_PIN, 0);
analogWrite (EN1_PIN, 0);
Delay(15);
}

void scan() {
digitalWrite (trigPin, låg);
delayMicroseconds(2);

digitalWrite (trigPin, hög);
delayMicroseconds(10);

digitalWrite (trigPin, låg);
längd = pulseIn (echoPin, hög);

Beräkna avståndet (i cm) baserat på ljudets hastighet.
avståndet = varaktighet/58,2;

Delay(50);
}

Se Steg
Relaterade Ämnen

Rundstrålande & Mecanum hjul

Rundstrålande hjulen är speciella hjul som tillåter rörelser i alla riktningar.På dessa hjul finns valsar runt deras omkrets, dessa särskilda rullarna har axeln som är vinkelrät mot en av hjulet och de kan rotera fritt och detta kännetecken gör att h...

5 GHz Coax rundstrålande antenn

5GHz coax dipol, rundstrålande antenn. Dessa antenner är normalt gjorda helt av koax. Min metod ersätter dock den yttre flätad koppartråden med belägga med metall rör skära till rätt våglängd. Denna metod är mycket enklare att bygga och få våglängd k...

Rundstrålande Biquad antenn för 5 8 GHz FPV

Rundstrålande Biquad antenn för 5,8 GHz FPVRiktantenner har sina styrkor såsom makt över avstånd men ibland kan du behöva använda en bra rundstrålande antenn för att producera 360 grader av täckning över ett mindre område. Så det här är en annorlunda...

Rundstrålande Biquad antenn för 2 4GHz

Riktantenner har sina styrkor såsom makt över avstånd men ibland kan du behöva använda en bra rundstrålande antenn för att producera 360 grader av täckning över ett mindre område.Så det här är en annorlunda syn på den traditionella biquad antennen oc...

DIY rundstrålande löpband med Wiimotes

För några månader sedan, försökte ett par vänner och jag själv göra en rundstrålande löpband för en maker faire som kom till vårt område. Vår plan var att skapa ett löpband till billigaste möjliga pris med de resurser vi hade runt oss. Slutligen gjor...

Trådlös - rundstrålande antenn Plus + 10Db - Antena Omni Potencializar

Antena Wireless omnidirecional para potencializar sinal de roteadorTrådlös - rundstrålande antenn Plus + 10Db - Antena Omni PotencializarMATERIAL:TUBO DE LATÃO, USADO EM ANTENASCABO koaxial DE 50 Omhskoaxial 50 Omhs-kabelAdaptador FEME ou antena padr...

Rundstrålande DisCone HDTV antenn

Jag ville prova att göra en rundstrålande antenn. Det är lika bra somkommersiella inomhus antenner och får WSBTV, FOX5, ION och de flesta andra lokala kanaler klart.Delar:Creamer behållareAluminiumfolieSkrot ledningarTerminal-kontaktSilvertejpSteg 1:...

Hur man skapar en rundstrålande sol spis!

Hej! Om du har kommit hit sedan undrar du hur man skapar en sol spis. Det finns en massa olika Solköken ute och vår design är en av många. Vår är centrerad kring en design som fångar solen från alla håll och inte har till vara vände hela dagen. Hoppa...

Dålig Piggies rundstrålande helikopter

denna helikopter kan gå uppåt, nedåt, vänster och höger.Det har också en unik förmåga att sväva på plats på grund av en perfekt vikt och botten propellrar.Steg 1: Ramen Bygga 3 kolumner från termisk torg 3 kvarter hög. Space dem 1 kvarter ifrån varan...

Rundstrålande signalering med EL Wire

Syftet med detta Instructable är att skapa en EL Wire beacon / indikator. EL Wire eller Electroluminescent wire är en tunn koppartråd belagda i en fosfor som lyser när AC nuvarande tillämpas på den.Verktyg som krävs för-Tång-Kniv eller sax-flexibel p...

Rundstrålande Blixtspridare

ibland du kan hitta användbart låt din blixt stilla på en plats och ta dina bilder runt. Detta är ganska sant om du gör en 360° Panorama foto. Du flytta inte din ljuskälla från ett skott till den andra i församlingen processen ser du skillnaderna i s...

Android kontrollerade Robot för nybörjare (A till Z)

Gillar du robotar? Är du ny i robotteknik? Har du tänker bygga en Robot från grunden? Om ja, är detta instructables för dig. I detta instructables jag visar dig hur du kan bygga en robot från början, jag också visa dig hur du kan kontrollera du robot...

Hur man gör en boll balansera Robot

förra året, jag har gjort denna boll balansera robot. Det kan stå på en stabil boll av systemets balans av sig själv.Det finns bara en ansluta mellan roboten och marken, så det är mer flexibelt än traditionellt hjulförsedda roboten. Det kan flytta ti...

Hur man gör en Mecanum Robot med fjädring

Mecanum hjul används ofta för att bygga en robot konkurrens, vilket kan göra rundstrålande rörelse. När antalet mecanum hjul är större än 3, kan hjulen vara icke-plana. Att varför suspensionssystemet uppfinns. Detta instructables visar dig hur man by...

ATTiny USI I2C inledning - en kraftfull, snabb och bekväm kommunikationsgränssnitt för ATTiny projekt!

I2C, det är en standard som har funnits i runt 20 år och har hittat användningsområden i nästan varje hörn av elektronik universum. Det är en otroligt användbar teknik för oss microcontroller hobby men kan verka skrämmande för nya användare. Denna ha...

24V Motor Controller för $24, RC & Arduino

Som många människor, har jag velat använda basen på en elrullstol för fjärrkontrollen projekt. Dock rätt motor styrenheter är dyra, och jag tänkte att det måste finnas en billigare lösning. Jag ursprungligen köpte borstad råden (elektronisk Hastighet...

Arduino mikro Quadcopter

(Pågående projekt, just nu behöva löda kretsen)Detta är Arduino baserat, 3D tryckta mikro Quadcopter projekt för 8,5 mm diameter DC motorer. Men om du har lite erfarenhet (eller bara har en timme fri tid) kan du anpassa utformningen för att passa til...

Styra iRobot skapa genom att använda MSP430fr6989

Detta är vår första instructables handledning genom Mohsine Taarji, Anvesh Loka, Avinash Singh. Vårt projekt är om kontrollerande iRobot skapa med MSP430fr6989 mikrokontroller. IRobot är egentligen en ny programmerbar enhet. Du kan göra alla robotic...

SOMA projektet

The SOMA projektet var en projektkurs skapad av sex universitetsstuderande som älskar att spendera hela natten i lab bygga robotar. En helt självständiga svärm utformades och byggdes för att användas som en plattform för framtida svärm program. Fyra...