Example #1
0
const rl = require('readline-sync');

const TJBot = require('tjbot');

var tj = new TJBot(['servo'], {log: {level: 'debug'}}, {});

tj.armBack();
var answer = rl.question('Is TJBot\'s arm in the BACKWARD position? Y/N > ');
if (answer.toLowerCase() != 'y') {
    throw new Error('expected arm to be in backward position, please check servo wiring.');
}

tj.raiseArm();
answer = rl.question('Is TJBot\'s arm in the RAISED position? Y/N > ');
if (answer.toLowerCase() != 'y') {
    throw new Error('expected arm to be in raised position, please check servo wiring.');
}

tj.lowerArm();
answer = rl.question('Is TJBot\'s arm in the LOWERED position? Y/N > ');
if (answer.toLowerCase() != 'y') {
    throw new Error('expected arm to be in lowered position, please check servo wiring.');
}

tj.wave();
answer = rl.question('Did TJBot wave? Y/N > ');
if (answer.toLowerCase() != 'y') {
    throw new Error('expected tj to wave, please check servo wiring.');
}
Example #2
0
 tj.converse(WORKSPACEID, utterance, function(response) {
     var spoken = false;
     
     // check if an intent to control the bot was found
     if (response.object.intents != undefined) {
         var intent = response.object.intents[0];
         if (intent != undefined && intent.intent != undefined) {
             switch (intent.intent) {
                 case "lower-arm":
                     tj.speak(response.description);
                     tj.lowerArm();
                     spoken = true;
                     break;
                 case "raise-arm":
                     tj.speak(response.description);
                     tj.raiseArm();
                     spoken = true;
                     break;
                 case "wave":
                     tj.speak(response.description);
                     tj.wave();
                     spoken = true;
                     break;
                 case "greeting":
                     tj.speak(response.description);
                     tj.wave();
                     spoken = true;
                     break;
                 case "shine":
                     var misunderstood = false;
                     if (response.object.entities != undefined) {
                         var entity = response.object.entities[0];
                         if (entity != undefined && entity.value != undefined) {
                             var color = entity.value;
                             tj.speak(response.description);
                             tj.shine(color);
                             spoken = true;
                         } else {
                             misunderstood = true;
                         }
                     } else {
                         misunderstood = true;
                     }
                     
                     if (misunderstood == true) {
                         tj.speak("I'm sorry, I didn't understand your color");
                         spoken = true;
                     }
                     break;
                 case "see":
                     if (config.hasCamera == false) {
                         tj.speak("I'm sorry, I don't have a camera so I can't see anything");
                         spoken = true;
                     } else {
                         tj.speak(response.description);
                         tj.see().then(function(objects) {
                             if (objects.length == 0) {
                                 tj.speak("I'm not sure I see anything");
                             } else if (objects.length == 1) {
                                 var object = objects[0].class;
                                 tj.speak("I see " + object);
                             } else if (objects.length == 2) {
                                 var objects = objects[0].class + " and " + objects[1].class;
                                 tj.speak("I'm looking at " + objects);
                             } else {
                                 var objects = objects[0].class + ", " + objects[1].class + ", and " + objects[2].class + ", and a few other things too";
                                 tj.speak("I'm looking at " + objects);
                             }
                         });
                         spoken = true;
                     }
                     break;
                 }
             }
         }
     
         // if we didn't speak a response yet, speak it now
         if (spoken == false) {
             tj.speak(response.description);
         }
 });