Egor V.1 Animatronic: grundläggande, autonoma, låg kostnad konstgjorda karaktär. (10 / 11 steg)
Steg 10: Arduino uppsättning upp och programmering.
OK kan ta en titt på vår Arduino och V1 Servo sköld, sköld bara slots i toppen av arduino och avslutar i de angränsande krukorna. Sedan måste vi ta den USB-kabel som medföljer din version av arduino styrelsen och plus den in i din laptop. Måste vi installera Arduino från Arduino.cc och bearbetning från bearbetning, org om vi inte redan har gjort båda är helt gratis att använda... Yay! Sedan måste vi ladda upp vår kod. Här är två koduppsättningar. Men innan dess måste vi infoga servon i rätt portar på servo skölden. Vi kommer att använda de analoga servo hamnar i slutet av styrelsen. A0 = MUN. A1 = ÖGON UPP / NED; A2 = ÖGON VÄNSTER OCH HÖGER. (10.1)
Ill också inkludera filer i steget att spara du gör kopia och pasta. När du har laddat upp arduino koden kommer du behöver öppna bearbetning med bearbeta koden för muskontroll att arbeta se video (A).
Arduino.
#include
Servo myservo; skapa objekt för att styra en servo servo / / maximalt åtta servo objekt kan skapas Servo myservo1; Servo myservo2; int targ = 0; int pos = 0; variabel att lagra servo position int pos1 = 0; int pos2 = 0; void setup() {Serial.begin(9600); pinMode(A0,OUTPUT); pinMode(A1,OUTPUT); pinMode(A2,OUTPUT); myservo.attach(A0); / / fäster servo på stift 9 till servo objekt myservo1.attach(A1); myservo2.attach(A2);} void loop() {while(Serial.available() > 0) {targ=Serial.read(); //this läser data i från bearbetning (mousePos) under användning} myservo.write(targ); för (pos = 0; pos < = 180, pos + = 1) {/ / går från 0 grader till 180 grader / / i steg om 1 grad myservo.write(pos); / / tala servo gå för att placera i variabel "pos" / / väntar 15 MS för servo att nå ställning} för (pos = 180, pos > = 0; pos-= 1) {/ / går från 180 grader till 0 grader myservo.write(pos); / / tala servo gå för att placera i variabel "pos"
för (pos1 = 0; pos1 < = 180, pos1 += 1) {/ / går från 0 grader till 180 grader / / i steg om 1 grad myservo1.write(pos1); / / tala servo gå för att placera i variabel "pos" / / väntar 15 MS för servo att nå ställning} för (pos1 = 180, pos1 > = 0; pos1-= 1) {/ / går från 180 grader till 0 grader myservo1.write(pos1); / / tala servo gå för att placera i variabel "pos"
för (pos2 = 0; pos2 < = 180, pos2 += 1) {/ / går från 0 grader till 180 grader / / i steg om 1 grad myservo2.write(pos2); / / tala servo gå för att placera i variabel "pos" / / väntar 15 MS för servo att nå ställning} för (pos2 = 180, pos2 > = 0; pos2-= 1) {/ / går från 180 grader till 0 grader myservo2.write(pos2); / / tala servo gå till position i variabel "pos' delay(5);}} } }
Bearbetning:
import processing.serial.*;
Seriella myport;
int targ = 0; int currentpos = 0; int actualPosition = 0; void setup() {size(400,400); println(Serial.list()); myport = ny Serial(this,Serial.list()[4],9600), //connect till denna duk (postnummer), ansluta till enhet 0 i den seriella lista //speak på 9600 baud... måste matcha på Arduino while(myport.available() > 0) {actualPosition=myport.read();}}
Annullera draw() {background(255,255,255); fill(0,0,0); line(200,200,mouseX,mouseY); targ=int(mouseX/2.2); //scale skärmen till 0-23 / / targ=int(90+random(20)-random(20)); myport.write(targ); println(targ); while(myport.available() > 0) {actualPosition=myport.read();} / / ellips (actualPosition * 17, 200,10,10); / / println(actualPosition); delay(20); / / println(targ); / / / println(actualPosition);}