Pubblicato il

Progetto Sensore di Flessione Arduino Muovere Servo Tramite Sensor Flex – Lezione 4

Premessa:

In questo tuorial mostreremo come muovere un servo tramite un sensore di flessione. Il progetto è molto interessante perchè con questa guida potrete cominciare a controllare delle articolazioni robotiche, o altre mille piccole applicazioni che vi vengono in mente. Noi di Critics abbiamo pensato di trasformare il nostro Agol nella versione 1.1 in un Rover molto più “intelligente”, permettendogli così di ottenere una posizione di riposo quando il robot si trova in stand by e una di movimento quando compie delle azioni. Con i sensor flex pilotiamo 4 servi che gli permettono di compiere queste azioni e decidere La sua posizione.

LISTA DEI MATERIALI:

Dopo questa piccola premessa vi mostreremo come cominciare a controllare un servo con il vostro Sensore di flessione:

Hardware e Software

arduinolezione4

Lo schema è molto semplice collegheremo il nostro sensor flex hai 5 volt e alla GND dell’arduino. Nella GND del sensor flex applicheremo una resistenza da 22 kohm e tra la resistenza e il sensore di flessione faremo partire un jumper che va al pin A0 dell arduino. Questi collegamenti ci permetterano di leggere i valori che vengono dal sensore, mentre il servo andrà alimentato come nelle lezioni precedenti dai 5 volt portati alla GND e il pin giallo del servo andrà collegato al PIN 9 PWM dell’arduino.

Librerie:

  • Servo LGPL: arduino.cc/reference/en/libraries/servo/
#include <Servo.h>

Servo myservo;
int pos = 170;
int pos1 = 20;

int flexSensorPin = A0; //analog pin 0

void setup(){
  Serial.begin(9600);
  myservo.attach(9);
}

void loop(){
  int flexSensorReading = analogRead(flexSensorPin); 
  
  // qui potete vedere da monitor seriale i valori e decidere il grado 
  // del servo tramite la variabile pos e pos1

  if(flexSensorReading < 80){
  myservo.write(pos); // tell servo to go to position in variable 'pos' 
  delay(15);
  }
  if(flexSensorReading > 110){
  myservo.write(pos1); // tell servo to go to position in variable 'pos' 
  delay(15);
  }

  Serial.println(flexSensorReading);


  int flex0to100 = map(flexSensorReading, 512, 614, 0, 100);
  Serial.println(flex0to100);

  //delay(250); //just here to slow down the output for easier reading
}

Creando uno script molto più articolato con maggiori controlli, si possono fare delle applicazioni robotiche molto futuristiche in base alla vostra ispirazione, innovazione ed esperienza da Maker.

Buon Progetto Critics