Fly Swatter
Basic example to show how three sevos, driven by sensor data are used to control a fly swatter.
/* fly swatter
*
* based on the example "Servo Controller"
*
* uses three servos, driven by sensor data (e.g. potis) to control a fly swatter
*
* uses modified servo library, http://www.arduino.cc/playground/ComponentLib/Servo
*
* SensorAktor Workshop
* Lab3 2008
* Kunsthochschule fuer Medien Koeln
* Academy of Media Arts Cologne
* http://interface.khm.de
* pin mapping SensorAktor Shield
* import SensorAktor.h to get already defined mapping
*
* analog inputs: analog0 = pin0, analog1 = pin1, analog2 = pin2,
* analog3 = pin3, analog4 = pin4, analog5 = pin5
* built-in poti: poti = pin5
* amplified input: mic = pin0
* switches: switch1 = pin1, switch2 = pin2, switch3 = pin3
* leds: led1 = pin3, led2 = pin5, led3 = pin6
* power outs: out1 = pin3, out2 = pin5, out3 = pin6
* motor outs: motor1_1 = pin8, motor1_2 = pin13, motor2_1 = pin11, motor2_2 = pin12
* motor pwms: pwmMotor1 = pin10, pwmMotor2 = pin9
* servo outs: servo1 = pin2, servo2 = pin4, servo3 = pin7
*/
// import sensor aktor library for pin mapping
#include <SensorAktor.h>
// import servo library
#include <SoftwareServo.h>
// servo
SoftwareServo myServo1;
SoftwareServo myServo2;
SoftwareServo myServo3;
// sensor values
int value1 = 0;
int value2 = 0;
int value3 = 0;
// this block is executed one time when programm starts
void setup(){
// set pin modes
pinMode(servo1,OUTPUT);
// attaches the servo on the servo pin
myServo1.attach(servo1);
myServo2.attach(servo2);
myServo3.attach(servo3);
}
// this block is executed in a loop after setup is called one time
void loop(){
// read sensor values (value is between 0 and 1023)
value1 = analogRead(analog1);
value2 = analogRead(analog2);
value3 = analogRead(analog3);
// scale sensor value to use it with the verso (value between 0 and 179)
value1 = map(value1, 0, 1023, 0, 179);
value2 = map(value2, 0, 1023, 0, 179);
value3 = map(value3, 0, 1023, 0, 179);
// sets the servo positions according to the scaled sensor values
myServo1.write(value1);
myServo2.write(value2);
myServo3.write(value3);
// refresh always needed to drive servo
SoftwareServo::refresh();
}
Files needed
Since Arduino 0015 there are some problems with the old “SensorAktor.h” file.
Use this one instead.
