Wiichuck Turret

Wiichuck Controlled Laser and Dual ServoMotor Turret

By: Ryan Goyette and Nick Ferrara

Our project is a wiichuck controlling a servo(vertical) and another servo (horizontal) and a laser at the same time.

The objective of this is to control it with percision.

#include <Wire.h>

#include "nunchuck_funcs.h"

#include <Servo.h>

int loop_cnt=0;

int aveAngle;

byte accx,accy,zbut,cbut,joyx,joyy;

int ledPin = 7;

int angle=90;

Servo myservo2;

Servo myservo;

int pos=0;

int angley=90;

void setup()

{

myservo.attach(5);

Serial.begin(19200);

nunchuck_setpowerpins();

nunchuck_init(); // send the initilization handshake

pinMode(7, OUTPUT);

Serial.print("WiiChuckDemo ready\n");

pinMode(5, OUTPUT);

myservo2.attach(6);

Serial.begin(19200);

nunchuck_setpowerpins();

nunchuck_init(); // send the initilization handshake

pinMode(6, OUTPUT);

Serial.print("WiiChuckDemo ready\n");

}

void loop()

{

if( loop_cnt > 100 ) { // every 100 msecs get new data

loop_cnt = 0;

nunchuck_get_data();

Serial.print("joyx: "); Serial.print((byte)joyx,DEC); // print variable values

Serial.print("\tjoyy: "); Serial.print((byte)joyy,DEC);

joyx = nunchuck_joyx(); // get data from wii chuck

joyy = nunchuck_joyy();

accx = nunchuck_accelx(); // ranges from approx 70 - 182

accy = nunchuck_accely(); // ranges from approx 65 - 173

zbut = nunchuck_zbutton();

cbut = nunchuck_cbutton();

Serial.print("accx: "); Serial.print((byte)accx,DEC);

Serial.print("\taccy: "); Serial.print((byte)accy,DEC);

Serial.print("\tzbut: "); Serial.print((byte)zbut,DEC);

Serial.print("\tcbut: "); Serial.println((byte)cbut,DEC);

if(joyx>130&&angle>0)

{

angle=angle+1;

}

if(joyx<120&&angle<180)

{

angle=angle-1;

}

if(joyy>135&&angley>0)

{

angley=angley-1;

}

if(joyy<120&&angley<180)

{

angley=angley+1;

}

}

myservo.write(angle);

if (zbut==1)

{digitalWrite(7, HIGH); // this turns the laser on by pressing "z"

}

else

{

digitalWrite(7, LOW);

}

myservo2.write(angley);

loop_cnt++;

}

We encountered problems with the servos twitching. We resolved that by increasing the

Range of joyx and joyy to +-5.

If we had more time/resources we would want to hook up a speaker to make laser noises

And also add another laser.