Listing 1
package com.trexlabs.worf.robot;
import com.trexlabs.worf.sv203.*;
import com.trexlabs.worf.ir.*;
import com.trexlabs.worf.servo.*;
import waba.ui.*;
import waba.fx.*;
import waba.io.*;
/**
* An example program using WORF to make your robot dance while it
* plays a catchy tune.
*
* @author James Caple Copyright (C) 2001, All Rights Reserved
*/
public class WORFHatDance extends MainWindow {
private Button begin;
private SV203 board;
private PPRKServo servos;
public WORFHatDance() {
begin = new Button("Let's Dance!");
begin.setRect(50, 85, 59, 20);
add(begin);
// WORF Setup
board = new SV203();
servos = new PPRKServo(board);
}
/**
* Draw about Strings.
* @param Graphics
* @return void
*/
public void onPaint( Graphics g ) {
g.setColor(0, 0, 0);
g.drawText("WORF Hat Dance Example", 0, 0);
g.drawText("Copyright (C) 2001, James Caple", 0, 10);
g.drawText("http://worf.sourceforge.net", 0, 20);
}
public void onEvent(Event evt) {
if (evt.type == ControlEvent.PRESSED && evt.target == begin) {
getYourGrooveOn();
}
}
private void getYourGrooveOn() {
// Swing to your right
servos.turnRight((byte)3);
Sound.tone(3000, 500);
Sound.tone(2900, 200);
Sound.tone(3000, 200);
Sound.tone(2600, 200);
Sound.tone(2500, 200);
Sound.tone(2600, 200);
Sound.tone(2100, 200);
Sound.tone(2000, 200);
Sound.tone(2100, 200);
Sound.tone(1500, 500);
// Swing to your left
servos.turnLeft((byte)3);
Sound.tone(1300, 200);
Sound.tone(1400, 200);
Sound.tone(1500, 200);
Sound.tone(1700, 200);
Sound.tone(1900, 200);
Sound.tone(2000, 200);
Sound.tone(2300, 200);
Sound.tone(2500, 200);
Sound.tone(2700, 200);
Sound.tone(2300, 500);
// Swing to your right
servos.turnRight((byte)3);
Sound.tone(2700, 200);
Sound.tone(2600, 200);
Sound.tone(2700, 200);
Sound.tone(2300, 200);
Sound.tone(2200, 200);
Sound.tone(2300, 200);
Sound.tone(1900, 200);
Sound.tone(1800, 200);
Sound.tone(1900, 200);
Sound.tone(1500, 500);
// Swing to your right
servos.turnLeft((byte)3);
Sound.tone(3000, 200);
Sound.tone(3000, 200);
Sound.tone(3000, 200);
Sound.tone(3300, 200);
Sound.tone(3000, 200);
Sound.tone(2700, 200);
Sound.tone(2500, 200);
Sound.tone(2200, 200);
Sound.tone(2000, 500);
Sound.tone(4000, 100);
// Cha cha cha!
servos.stop();
servos.turnRight((byte)3);
servos.turnLeft((byte)3);
servos.turnRight((byte)3);
servos.stop();
}
}