import lejos.nxt.addon.*; import lejos.nxt.*; /** * Example designed to test Mindsensors NXT Servo * * @author Juan Antonio Brenha Moral * */ public class NXTServoTest{ private static String appName = "NXTServo Test"; private static String appVersion = "v0.3"; private static MSC msc; public static void main(String[] args){ LCD.drawString(appName, 0, 0); LCD.drawString("#################", 0, 2); LCD.drawString("#################", 0, 6); msc = new MSC(SensorPort.S1); //Set to initial angle msc.servo1.setAngle(90); int angle = 0; int pulse = 0; int NXTServoBattery = 0; while(!Button.ESCAPE.isPressed()){ NXTServoBattery = msc.getBattery(); if (Button.LEFT.isPressed()){ angle = 0; msc.servo1.setAngle(angle); } if (Button.ENTER.isPressed()){ angle = 90; msc.servo1.setAngle(angle); } if (Button.RIGHT.isPressed()){ angle = 180; msc.servo1.setAngle(angle); } clearRows(); LCD.drawString("Battery: " + NXTServoBattery, 0, 3); LCD.drawString("Pulse: " + msc.servo1.getPulse(), 0, 4); LCD.drawString("Angle: " + msc.servo1.getAngle(), 0, 5); LCD.refresh(); } //Set to initial angle msc.servo1.setAngle(90); LCD.drawString("Test finished",0,7); LCD.refresh(); try {Thread.sleep(1000);} catch (Exception e) {} credits(3); System.exit(0); } /** * Internal method used to clear some rows in User Interface */ private static void clearRows(){ LCD.drawString(" ", 0, 3); LCD.drawString(" ", 0, 4); LCD.drawString(" ", 0, 5); } /** * Final Message * * @param seconds */ private static void credits(int seconds){ LCD.clear(); LCD.drawString("LEGO Mindstorms",0,1); LCD.drawString("NXT Robots ",0,2); LCD.drawString("run better with",0,3); LCD.drawString("Java leJOS",0,4); LCD.drawString("www.lejos.org",0,6); LCD.refresh(); try {Thread.sleep(seconds*1000);} catch (Exception e) {} } }