Kontrollera uArm metall med ultrasonic sensor (4 / 4 steg)
Steg 4: Ladda upp koden till uArm
Använda Arduino IDE att ladda upp följande kod till din uArm, och skicka "e" i följetong monitor till uArm att använda detta ultrasonic sensor. Vad denna kod dos är när sensorn känner något innan det, uArm kommer att försöka flytta något från höger sida till vänster sida. Denna kod är endast ett exempel att låta dig veta hur du använder sensorn, kan du ändra det till vad du vill.
< p > < br > #include #include
#include
#include < /p >< p > UF_uArm uarm; < /p >< p > const int TrigPin = 8;
CONST int EchoPin = 9;
CONST int StopperBtn = 2;
float cm; < /p >< p > void setup() {
Wire.BEGIN(); gå med i2c bussen (adress valfritt för master)
Serial.BEGIN(9600); Starta serieport på 9600 bps
pinMode(StopperBtn,INPUT);
pinMode (TrigPin, OUTPUT);
pinMode (EchoPin, indata);
uarm.init(); < /p >< p >}
int buttonState = 1; < /p >< p > dubbel des_x = -20;
Double des_y = -3;
Double des_z = 9.25; < /p >< p > int time_travel = 2; < /p >< p > dubbel final_x = 20;
Double final_y = -15;
Double final_z = 23. < /p >< p > dubbel home_x = 0;
Double home_y = -15;
Double home_z = 12; < /p >< p > int värde;
void loop() {
char readSerial = "e";
Serial.println(readSerial); < /p >< p > om (readSerial == "a") {
uarm.attachAll();
uarm.moveTo(des_x,des_y,des_z);
Delay(1000);
}
om (readSerial == "b") {
uarm.moveTo(home_x,home_y,home_z);
Delay(1000);
}
om (readSerial == "c") {
uarm.detachAll();
} < /p >< p > om (readSerial == hade ") {
} < /p >< p > om (readSerial == "e") {
int stat = 1;
int haveSentT = 0;
int numberCount = 0;
medan (stat)
{
IF(Serial.available() > 0) {
stat = 0;
}
annat {
digitalWrite (TrigPin, låg);
delayMicroseconds(2);
digitalWrite (TrigPin, hög);
delayMicroseconds(10);
digitalWrite (TrigPin, låg);
cm = pulseIn (EchoPin, hög) / 58,0;
cm = (int(cm * 100.0)) / 100,0;
om ((cm<10) || (cm>70)) {
numberCount = 0;
haveSentT = 0;
}
annat {
numberCount = numberCount + 1.
om (numberCount > 3) {
om (haveSentT == 0) {
buttonState = 1;
uarm.moveTo(des_x,des_y,des_z,0,2,0); < /p >< p > samtidigt (buttonState)
{
buttonState = digitalRead(StopperBtn);
IF(buttonState == High)
{
uarm.moveTo(0,0,-2,1,1,0);
}
Delay(200);
}
digitalWrite(6,HIGH);
Delay(1000);
uarm.moveTo(des_x,des_y,des_z+4,0,2,0);
Delay(300);
uarm.moveTo(final_x,final_y,final_z,0,time_travel,-10);
Delay(500);
digitalWrite(6,LOW);
digitalWrite(5,HIGH);
Delay(4000);
digitalWrite(5,LOW);
haveSentT = 1;
uarm.moveTo(home_x,home_y,home_z);
}
}
Delay(200);
}
}
}
} < /p >< p > om (readSerial == "h") {
Serial.Print ("den aktuella platsen är");
Serial.Print(uarm.getCalX());
Serial.Print (",");
Serial.Print(uarm.getCalY());
Serial.Print (",");
Serial.Print(uarm.getCalZ());
Serial.println();
Delay(1000);
} < /p >< p > om (readSerial == "u") {< /p >< p > int buttonState = 1;
uarm.moveTo(-9.2,-12,9.23);
samtidigt (buttonState)
{
buttonState = digitalRead(2);
IF(buttonState == High) {
uarm.moveTo(0,0,-2,1,1);}
Delay(200);
} < /p >< p > digitalWrite(6,HIGH);
Delay(1000);
uarm.moveTo(-9.2,-12,12);
Delay(300);
uarm.moveTo(0,-15,12);
Delay(300);
digitalWrite(6,LOW);
{} < /p >< p > delay(500); < /p >< p >} < /p >