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.