Hoe het bouwen van een andere nutteloze machine: gemakkelijk om te maken, en moeilijk om te gebruiken! (8 / 9 stap)

Stap 8: De code

Om het schrijven van code voor arduino, moet je de arduino IDE (download het hier)

Mij ben using de voorstelling 1.0.5, maar zorg ervoor om te Selecteer de juiste COM-poort (windows) en type uit binnen de IDE aan boord, en gebruik vervolgens de onderstaande code en klap uploaden.

Opmerking: De waarden die ik in de code instellen van de maximale uitwijking van de servo's gebruikt worden gemaakt precies voor dit vak in aanmerking nemen van de servo's positionering, as en hoeken. Ik heb dit proces. Zo moet u ontwerpen van uw eigen waarden volgens uw vak en servo plaatsing.

Ter referentie plaatsvinden onder de min/max-waarden die ik voor elke servo gebruikte zoals u dat ze zien zult in de code:

De deur:
80 verbergen, open 155 volledig

De hand:
0 verbergen, 129 duwen op switch

Hier is de code (beter te downloaden van het bestand gekoppeld aan deze stap in plaats van kopiëren/plakken uit de onderstaande lijst):

#include < Servo.h >
Servo doorServo;
Servo handServo;

int switch_pin = 2;               set schakelaar op pin 2

motor variabelen
int motorThrottle = 11;
int motorDirection = 13;
int motorrem = 8;

int pos = 0;
int selectedMove = 0;             verplaatsen van selector
int Testmove = 0;                 test modus: ingesteld op het nummer voor het testen van slechts één geselecteerde beweging verplaatsen
(ingesteld op nul te lopen normaal dwz: roundrobbin op amm beweegt)

VOID Setup
{
Serial.begin(9600);
pinMode (switch_pin, INPUT);
doorServo.attach(9);           deur servo ingesteld op Pin 9 pwm
handServo.attach(10);          hand servo ingesteld op Pin 10 pwm
doorServo.write(80);           set deur verstopt positie
handServo.write(0);            set hand standpunt verstopt

Kanaal B, Setup (omdat kanaal A is voorbehouden door de deur en hand servo's en kan niet ber gebruikt op hetzelfde moment)
pinMode (motorDirection, OUTPUT); Ingewijden Motor kanaal B pin
pinMode (motorrem, OUTPUT); Ingewijden rem kanaal B pin

}

void loop
{
Als (Testmove! = 0) {}
selectedMove = Testmove;
}

Als de schakelaar ingeschakeld is, dan deur en hand uit te schakelen het verplaatsen...
if(digitalRead(switch_pin) == HIGH)
{

Als (selectedMove > 10) {selectedMove = 0;} //when alle bewegingen worden gespeeld, herhaal de bewegingen vanaf begin
Hieronder staan alle "bewegingen" Ik heb tot nu toe ontworpen, elk is een functie die is geschreven onder in de code, execuse de namen, abit vreemd? Ja zoals sommigen zijn geschreven in arabic
Als (selectedMove == 0) {switchoff();}
else if (selectedMove == 1) {switchoff();}
else if (selectedMove == 2) {switchoffbitaraddod();}
else if (selectedMove == 3) {crazydoor();}
else if (selectedMove == 4) {crazyslow();}
else if (selectedMove == 5) {m7anika7anika();}
else if (selectedMove == 6) {m3alla2();}
else if (selectedMove == 7) {switchoff();}
else if (selectedMove == 8) {matrix();}
else if (selectedMove == 9) {sneak();}
else if (selectedMove == 10) {zee7();}

Als (Testmove == 0) {}
selectedMove ++;         Swith naar volgende stap, zo niet in testmodus
}

}
}

Bibliotheek van bewegingen

elementaire beweging
VOID switchoff()
{
Bewegende deur
voor (pos = 80; pos < 155; pos = 3)
{
doorServo.write(pos);
delay(15);
}

Bewegende hand
voor (pos = 0; pos < 129; pos = 4)
{

handServo.write(pos);
delay(15);
}

verbergen van de hand
voor (pos = 129; pos > = 0; pos-= 4)
{
handServo.write(pos);
delay(15);
}

verbergen van deur
voor (pos = 155; pos > = 80; pos-= 3)
{
doorServo.write(pos);
delay(15);
}
}

verplaatsen van 3: open en wacht, dan verplaatsen van hand en wacht, dan schakelen van en verbergen
VOID switchoffbitaraddod()
{
Bewegende deur
voor (pos = 80; pos < 155; pos = 3)
{
doorServo.write(pos);
delay(15);
}
delay(800);
Bewegende hand
voor (pos = 0; pos < 100; pos = 4)
{
handServo.write(pos);
delay(15);
}
delay(1000);
voor (pos = 100; pos < 129; pos = 4)
{
handServo.write(pos);
delay(15);
}

verbergen van de hand
voor (pos = 129; pos > = 0; pos-= 5)
{
handServo.write(pos);
delay(15);
}

verbergen van deur
voor (pos = 155; pos > = 80; pos-= 3)
{
doorServo.write(pos);
delay(15);


}

}

verplaatsen van 4: open deur dan sluit het vele malen, wachten, dan snel reoprn een nd-schakelaar uit en verbergen.

VOID crazydoor()
{

Bewegende deur
voor (pos = 80; pos < 125; pos = 3)
{
doorServo.write(pos);
delay(15);
}

verbergen van deur
voor (pos = 125; pos > = 80; pos-= 5)
{
doorServo.write(pos);
delay(15);
}
Bewegende deur
voor (pos = 80; pos < 110; pos = 3)
{
doorServo.write(pos);
delay(15);
}

verbergen van deur
voor (pos = 110; pos > = 80; pos-= 15)
{
doorServo.write(pos);
delay(15);
}
delay(700);
Bewegende deur
voor (pos = 80; pos < 125; pos = 3)
{
doorServo.write(pos);
delay(15);
}
delay(700);
verbergen van deur
voor (pos = 125; pos > = 80; pos-= 5)
{
doorServo.write(pos);
delay(15);
}

---voor de switch van---/ /
Bewegende deur
voor (pos = 80; pos < 155; pos = 8)
{
doorServo.write(pos);
delay(15);
}

Bewegende hand
voor (pos = 0; pos < 129; pos = 3)
{
handServo.write(pos);
delay(15);
}

verbergen van de hand
voor (pos = 129; pos > = 0; pos-= 3)
{
handServo.write(pos);
delay(15);
}

verbergen van deur
voor (pos = 155; pos > = 80; pos-= 15)
{
doorServo.write(pos);
delay(15);
}

}

verplaatsen van 5: open deur, verplaats hand heel langzaam vooruit en terug naar verbergen heel langzaam, dan snel de deur dicht
VOID crazyslow()
{

Bewegende deur
voor (pos = 80; pos < 155; pos = 1)
{
doorServo.write(pos);
delay(30);
}

Bewegende hand
voor (pos = 0; pos < 129; pos = 1)
{
handServo.write(pos);
delay(30);
}

verbergen van de hand
voor (pos = 129; pos > = 0; pos-= 1)
{
handServo.write(pos);
delay(30);
}

verbergen van deur
voor (pos = 155; pos > = 125; pos-= 1)
{
doorServo.write(pos);
delay(30);
}
delay(100);
voor (pos = 125; pos > = 80; pos-= 4)
{
doorServo.write(pos);
delay(15);
}

}

6 verplaatsen:

ongeldig m7anika7anika() {}

Bewegende deur
voor (pos = 80; pos < 155; pos = 3)
{
doorServo.write(pos);
delay(15);
}

Bewegende hand
voor (pos = 0; pos < 70; pos = 1)
{
handServo.write(pos);
delay(15);
}
delay(800);


verbergen van deur
voor (pos = 155; pos > 130; = pos-= 3)
{
doorServo.write(pos);
delay(15);
}

verbergen van deur
voor (pos = 130 pos < 155; pos = 3)
{
doorServo.write(pos);
delay(15);
}
verbergen van deur
voor (pos = 155; pos > 130; = pos-= 3)
{
doorServo.write(pos);
delay(15);
}
verbergen van deur
voor (pos = 130 pos < 155; pos = 3)
{
doorServo.write(pos);
delay(15);
}

handServo.write(40);
delay(1000);

Bewegende hand
voor (pos = 40 pos < 129; pos = 4)
{
handServo.write(pos);
delay(15);
}

verbergen van de hand
voor (pos = 129; pos > = 0; pos-= 4)
{
handServo.write(pos);
delay(15);
}


voor (pos = 120; pos > = 80; pos-= 1)
{
doorServo.write(pos);
delay(15);
}



}

ongeldig m3alla2() {}
Bewegende deur
voor (pos = 80; pos < 155; pos = 3)
{
doorServo.write(pos);
delay(15);
}

Bewegende hand
voor (pos = 0; pos < 127; pos = 4)
{
handServo.write(pos);
delay(15);
}
verbergen van deur
voor (pos = 155; pos > 130; = pos-= 3)
{
doorServo.write(pos);
delay(15);
}
delay(2000);

voor (pos = 130 pos < 155; pos = 3)
{
doorServo.write(pos);
delay(15);
}

voor (pos = 155; pos > = 140; pos-= 3)
{
doorServo.write(pos);
delay(15);
}
voor (pos = 140 pos < 155; pos = 3)
{
doorServo.write(pos);
delay(15);
}
delay(500);
verbergen van de hand
voor (pos = 127; pos > = 0; pos-= 4)
{
handServo.write(pos);
delay(15);
}

verbergen van deur
voor (pos = 155; pos > = 80; pos-= 3)
{
doorServo.write(pos);
delay(15);
}

}

VOID matrix()
{

Bewegende deur
voor (pos = 80; pos < 155; pos = 3)
{
doorServo.write(pos);
delay(15);
}

Bewegende hand
voor (pos = 0; pos < 80; pos = 4)
{
handServo.write(pos);
delay(15);
}

voor (pos = 80; pos < 129; pos = 1)
{
handServo.write(pos);
delay(30);
}
delay(300);

voor (pos = 129; pos > = 0; pos-= 4)
{
handServo.write(pos);
delay(10);
}

verbergen van deur
voor (pos = 155; pos > = 80; pos-= 3)
{
doorServo.write(pos);
delay(15);
}

}

VOID sneak()
{
Bewegende deur
voor (pos = 80; pos < 130; pos = 1)
{
doorServo.write(pos);
delay(30);
}
delay(2000);

Bewegende hand
voor (pos = 0; pos < 40 pos = 1)
{
handServo.write(pos);
delay(30);
}

delay(500);

voor (pos = 130 pos < 155; pos = 4)
{
doorServo.write(pos);
delay(15);
}
delay(100);

voor (pos = 40 pos < 90; pos = 4)
{
handServo.write(pos);
delay(15);
}
delay(500);
verbergen van de hand
voor (pos = 90; pos > = 70; pos-= 4)
{
handServo.write(pos);
delay(15);
}
delay(100);
voor (pos = 70 pos < 90; pos = 4)
{

handServo.write(pos);
delay(15);
}
delay(100);
voor (pos = 90; pos > = 70; pos-= 4)
{
handServo.write(pos);
delay(15);
}
delay(100);

voor (pos = 70 pos < 129; pos = 4)
{

handServo.write(pos);
delay(15);
}

voor (pos = 129; pos > = 0; pos-= 4)
{
handServo.write(pos);
delay(15);
}
verbergen van deur
voor (pos = 155; pos > = 80; pos-= 3)
{
doorServo.write(pos);
delay(15);
}
}


VOID zee7()
{
Bewegende deur
voor (pos = 80; pos < 155; pos = 3)
{
doorServo.write(pos);
delay(15);
}
delay(2000);
@ halve snelheid naar links doorsturen
digitalWrite (motorDirection, laag); Bepaalt de richting van kanaal B
digitalWrite (motorrem, laag);      Losraken van de rem voor kanaal B
analogWrite (motorThrottle, 100);    Draait de motor op Channel B op volle snelheid
delay(300);
digitalWrite (motorrem, hoge); Eengage de rem voor kanaal B
delay(2000);

achterwaartse @ halve snelheid naar rechts
digitalWrite (motorDirection, hoge); Stelt LINKSAF richting van kanaal B
digitalWrite (motorrem, laag);   Losraken van de rem voor kanaal B
analogWrite (motorThrottle, 100);   Draait de motor op Channel B op halve snelheid
delay(300);
digitalWrite (motorrem, hoge); Eengage de rem voor kanaal B
delay(1000);

Bewegende hand
voor (pos = 0; pos < 129; pos = 4)
{
handServo.write(pos);
delay(15);
}

verbergen van de hand
voor (pos = 129; pos > = 0; pos-= 4)
{
handServo.write(pos);
delay(15);
}

verbergen van deur
voor (pos = 155; pos > = 80; pos-= 3)
{
doorServo.write(pos);
delay(15);
}
}

Gerelateerde Artikelen

PT. 1 hoe het bouwen van een wiel van de pottenbakkers met een loopband motor!

PT. 1 hoe het bouwen van een wiel van de pottenbakkers met een loopband motor!

Deze tutorial is pt 1.  de snelle versie van hoe het bouwen van een pottenbakkers wiel met behulp van onderdelen uit de stapel van schroot en delen van een loopband van $10.  Ik heb gezocht hoog en laag op het web naar informatie over dit onderwerp,
Hoe het bouwen van een aangepaste "bed of nails" tester voor uw 3D-printer elektronica

Hoe het bouwen van een aangepaste "bed of nails" tester voor uw 3D-printer elektronica

Als u een heleboel PCB (Printed Circuit Board) zijn productie, wil je een soort van QA-om ervoor te zorgen dat uw planken zijn functioneel en zonder gebreken. De meest populaire methode voor het testen van in-circuit is het gebruik van een bed van sp
Scout Project: Hoe het bouwen van een Trebuchet

Scout Project: Hoe het bouwen van een Trebuchet

dus voor welke reden dan ook, de voorpagina van mijn Instructable is leeg... na mij schrijven (in mijn mening) een vrij koele opening... Damnation! Nou... laten we proberen dit weer hè?Nou... Welkom bij de tweede aflevering van mijn Scout projecten..
Hoe het bouwen van een pergola: awesome maken van de grond af.

Hoe het bouwen van een pergola: awesome maken van de grond af.

Als je hebt grote achtertuin landscaping ideeën, dan hoe het bouwen van een pergola - die rotsen - moet worden op uw lijst. Deze pergola is een één-van-een-kinder met een multifunctionele ruimte voor zithoek en serveren. Wij hopen dat u love it zo ve
Hoe het bouwen van een figuurframe

Hoe het bouwen van een figuurframe

hoe het bouwen van een high-end houten fotolijst aangepast aan een grote olieverf op doek. Awesome art door Emily Keyishian.Stap 1: Controleer of het verwerven van kunst Iets briljant maken, of iemand die heeft en is bereid om het te verkopen aan u v
Hoe het bouwen van een stevige werkbank goedkoop

Hoe het bouwen van een stevige werkbank goedkoop

Denk snel. Wat is de meest gebruikte hulpmiddel in uw werkplaats? Welk hulpmiddel gebruik je elke dag en voor elk project? Hebt u uw werkbank gezegd? Goed hebt. Dank erover. Een goede, solide workbench is het belangrijkste kenmerk van een goed uitger
Hoe het bouwen van een goedkope werkbank voor houtbewerking met behulp van een mal van Kreg HD, met VIDEO tutorial

Hoe het bouwen van een goedkope werkbank voor houtbewerking met behulp van een mal van Kreg HD, met VIDEO tutorial

Gratis plannen zijn ook hierna beschikbaar in Imperial en Metric.Stap 1: Zie volledige Video Tutorial Video hier.Warren uit één hout Tools toont hoe het bouwen van een goedkope en makkelijke eiland houtbewerking werkbank met hond gaatjes, gewrichten
Hoe het bouwen van een eenvoudige water raket

Hoe het bouwen van een eenvoudige water raket

Welkom bij dit instructable!Voor een schoolproject of gewoon voor de lol, is bouwen en lanceren van uw eigen water rocket een uitdagende maar geweldige ervaring. In deze tutorial laten we u hoe te beginnen en hoe te bouwen van je eigen, eenvoudige wa
Hoe het bouwen van een 1 deel gebonden zand schimmel

Hoe het bouwen van een 1 deel gebonden zand schimmel

dit is hoe het bouwen van een gekleefde 1 deel zand mal voor het gieten van metaal. Ik maakte dit op Techshop. www.techshop.WSStap 1: Stap 1: Maak een patroon Eerste stap in het creëren van een gekleefde zand schimmel is het creëren van een patroon t
Hoe het bouwen van een Rocket Mass Heater

Hoe het bouwen van een Rocket Mass Heater

er zijn twee belangrijke factoren die een Rocket Mass Heater (RMH) van een gewone houtkachel onderscheiden. Een is dat de verbranding die plaatsvindt in een RMH, als gevolg van de toegenomen ontwerp en geïsoleerde branden kamer veel vollediger. Een R
Hoe het bouwen van een oproep van de Turkije wingbone

Hoe het bouwen van een oproep van de Turkije wingbone

dit instructable zullen een beschrijving van hoe het bouwen van een wingbone Turkije oproep. Deze oproep is gemakkelijk op te bouwen, maar moeilijk te beheersen. Bellen in een Turkije met een oproep die u zelf uit een ander Turkije gemaakt is echter
Hoe het bouwen van een vrachtwagen hotrod in 3 gemakkelijke stappen

Hoe het bouwen van een vrachtwagen hotrod in 3 gemakkelijke stappen

In dit instructable I 'm gonna u kennismaken met het programma knippen. Volg mee als we een hotrod van start bouwen tot finish. We hadden wat hulp van beroemdheid en vele, vele mensen die vrijwillig dit idee tot leven te brengen. De bovenstaande foto
Hoe het bouwen van een computer

Hoe het bouwen van een computer

In dit Instructable zal ik uitleggen hoe het bouwen van een computer. Voor een normale computer (een die niet watergekoelde is) zal u deze onderdelen nodig:Zaak moederbordCompatibel met moederbord CPUHeatsink voor CPURAM compatibel met moederbordHard
Hoe het bouwen van een zachte lucht-cursus

Hoe het bouwen van een zachte lucht-cursus

dit is hoe het bouwen van een zachte luchtmachtbasis die een aanvallende kant en een verdedigende kant heeft.Stap 1: Belangrijkste verdediger muur Dit is waar de verdediger van start.1. vind 6 stevige logboeken ongeveer 6 ft lange.2. graven 6 gaten o