Hello,
For command #7 I want to have a led strobe. How would I do that?
Thanks.
#include <MOVIShield.h>
#include <Servo.h>
//Pins where positive wire of LED connects. (4=Chest Armour Led 7=Eye LED 8=Shield LED)
int led1=4;
int led2=7;
int led3=8;
Servo myservo;
//Define Servo
Servo servo1; //Torso
Servo servo2; //R-Shoulder
Servo servo3; //R-Bicep
Servo servo4; //L-Shoulder
int servoPos = 0; //Servo position in degrees
int servo1Pos=90;
int servo2Pos=0;
int servo3Pos=0;
int servo4Pos=180;
MOVI recognizer (true); //Get a MOVI object, true enables serial monitor interface, rx and tx for alternate communication pins on AVR architecture boards
void setup()
{
//Define LED pins as outputs
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
//Define servo pins
servo1.attach(3); //attach servo 1 to pin 3
servo2.attach(5);//attach servo 2 to pin 5
servo3.attach(6);//attach servo 3 to pin 6
servo4.attach(9);//attach servo 4 to pin 9
recognizer.init();
recognizer.callSign(F(“Sergey”)); //Train callsign (may take 20 seconds)
recognizer.addSentence(F(“Activate display mode”)); //1 (Turns on lights)
recognizer.addSentence(F(“Activate stealth mode”)); //2 (Turns off lights)
recognizer.addSentence(F(“Shutdown”)); //3 (Turn off all LEDs and puts servos to rest position)
recognizer.addSentence(F(“At ease”)); //4 (Servos go to home postion but LEDs stay on)
recognizer.addSentence(F(“Activate Shield”)); //5 (Turns on LED for Riot Shield)
recognizer.addSentence(F(“Pose”)); //6 (SERGEY strikes a pose)
recognizer.addSentence(F(“Defensive Mode”)); //7 (Shield Strobes)
recognizer.train();
}
void loop() {
int res = recognizer.poll();
if (res == 1) {
recognizer.say(“Display mode activated”);
digitalWrite(led1, HIGH); //Turns on LED connected to pin 4
digitalWrite(led2, HIGH); //Turns on LED connected to pin 7
recognizer.ask();
}
if (res == 2) {
recognizer.say(“Stealth mode activatedn”);
//Turns off all LEDs
digitalWrite(led1, LOW); //Turns off LED connected to pin 4
digitalWrite(led2, LOW); //Turns off LED connected to pin 7
digitalWrite(led3, LOW); //Turns off LED connected to pin 8
}
if (res == 3) {
recognizer.say(“Deactivating”);
//Turns off all LEDs
digitalWrite(led1, LOW); //Turns off LED connected to pin 4
digitalWrite(led2, LOW); //Turns off LED connected to pin 7
digitalWrite(led3, LOW); //Turns off LED connected to pin 8
servo1.write(90);// set torso to home/rest position
servo2.write(0);// set R-Shoulder to home/rest position
servo3.write(0);// set R-Bicep to home/rest position
servo4.write(180);//set L-Shoulder to home/rest position
}
if (res ==4) {
recognizer.say(“Yes, commander”);
//Turns off all LEDs
digitalWrite(led1,HIGH); //Turns on LED connected to pin 4
digitalWrite(led2, HIGH); //Turns on LED connected to pin 7
digitalWrite(led3, HIGH); //Turns on LED connected to pin 8
servo1.write(90);// set torso to home/rest position
servo2.write(0);// set R-Shoulder to home/rest position
servo3.write(0);// set R-Bicep to home/rest position
servo4.write(180);//set L-Shoulder to home/rest position
}
if (res ==5) {
recognizer.say(“Sheild activated”);
digitalWrite(led3, HIGH); //Turns on Shield LED
}
if (res ==6) {
recognizer.say(“Pose initiated”);
//Test code
for (servoPos = 90; servoPos <= 90; servoPos += 1) //Goes from 90 degrees to 90 degrees
servo1.write(servoPos); //We are controlling Torso
delay(2000);// waits 2sec for the servo to reach the position
for (servoPos = 0; servoPos <= 90; servoPos += 1) //Goes from 0 degrees to 90 degrees
servo2.write(servoPos); //We are controlling R-Shoulder
delay(8000);// waits 8sec for the servo to reach the position
for (servoPos = 0; servoPos <= 90; servoPos += 1) //Goes from 0 degrees to 90 degrees
servo3.write(servoPos); //We are controlling R-Bicep
delay(10000);// waits 10sec for the servo to reach the position
for (servoPos = 180; servoPos <= 90; servoPos += 1) //Goes from 180 degrees to 90 degrees
servo4.write(servoPos); //We are controlling R-Shoulder
delay(8000);// waits 8sec for the servo to reach the position
//End of test code
}
if (res ==7) {
recognizer.say(“Get Back!”);
digitalWrite(led3, HIGH); //Turns on Shield LED
delay(500);
digitalWrite(led3, LOW);
}
}