Kontroll robotarm med handskar, Android-telefon och Arduino (4 / 5 steg)
Steg 4: Arduino skiss
Som visas nedan är koden så enkel. Faktiskt, någon även som är ny i att använda Arduino kan få den.
Allt vi har att deklarera stiften för 4 PWM för varje servo och sedan mappa värdet av sensorn från (0 till 180) som är hela regionen servo kan rotera.
#include < OneSheeld.h >
#include < Servo.h >
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
void setup()
{
OneSheeld.begin();
myservo1.attach(3);
myservo1.write(90);
myservo2.attach(5);
myservo2.write(0);
myservo3.attach(6);
myservo3.write(180);
myservo4.attach(9);
myservo4.write(15);
}
void loop() {
om (ToggleButton.getStatus ())
myservo2.write(120);
annat
myservo2.write(0);
IF(OrientationSensor.getZ() > 0 & & abs(OrientationSensor.getZ()) < = 83 & & GravitySensor.getZ() > 0)
myservo1.write(Map(OrientationSensor.getZ(),0,90,90,0));
IF(OrientationSensor.getZ() < 0 & & abs(OrientationSensor.getZ()) < = 83 & & GravitySensor.getZ() > 0)
myservo1.write(Map(ABS(OrientationSensor.getZ()),90,0,180,90));
IF(OrientationSensor.getY() < 0 & & OrientationSensor.getY() > = -90 & & abs(GravitySensor.getZ()) > = 2,5)
myservo4.write(Map(ABS(OrientationSensor.getY()),0,90,15,105));
IF(OrientationSensor.getY() > 0 & & OrientationSensor.getY() < = 50 & & abs(GravitySensor.getZ()) > = 2,5)
myservo4.write(Map(ABS(OrientationSensor.getY()),0,50,15,0));
IF(OrientationSensor.getX() > 0 & & OrientationSensor.getX() < = 180 & & abs(GravitySensor.getZ()) > = 2,5)
myservo3.write(Map(ABS(OrientationSensor.getX()),0,180,180,0));
}