Indice
Descrizione
In questo video vedremo come usare la scheda di Arduino nell'ambito della robotica.
Dopo aver creato il circuito e approfondito lo sketch, vedremo come comandare un braccio meccanico tramite dei joystick.
#include <Adafruit_PWMServoDriver.h> #define JOYSTICK1_X_PIN A1#define JOYSTICK1_Y_PIN A0#define JOYSTICK2_X_PIN A3#define JOYSTICK2_Y_PIN A2#define THRESHOLD 30#define SERVO_MIN 150#define SERVO_MAX 600 Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(); float positions[4] = {60, 140, 85, 100}; // RIGHT, TOP, BOTTOM, LEFT void setup() { pwm.begin(); pwm.setPWMFreq(60);} void loop() { moveServo(0, analogRead(JOYSTICK2_X_PIN), true); moveServo(1, analogRead(JOYSTICK2_Y_PIN), false); moveServo(2, analogRead(JOYSTICK1_Y_PIN), false); moveServo(3, analogRead(JOYSTICK1_X_PIN), true); delay(50);} void moveServo(int index, int value, bool reverse) { if (abs(value - 512) > THRESHOLD) { float delta = (float) (value - 512) / 100; if (reverse) { positions[index] -= delta; } else { positions[index] += delta; } positions[index] = constrain(positions[index], 0, 179); } int pulse = map(positions[index], 0, 179, SERVO_MIN, SERVO_MAX); pwm.setPWM(index, 0, pulse);}In qualità di Affiliato Amazon riceviamo un guadagno dagli acquisti idonei