Download presentation
Presentation is loading. Please wait.
Published byEmma Lane Modified over 9 years ago
1
Decisions, Looping, and input sensors Mindstorms, Eclipse and Java
2
Decisions and Looping So far, we can only execute a sequence of lines of code. Decision control structures Vary which lines of code to execute if something is true or false. The IF statement Looping control structures Repeat code over and over again some number of times. The WHILE loop
3
IF Statement The Java: if(condition){ // java code }
4
But what can the condition be? Relational operators: ==equal to !=not equal to >greater than <less than >=greater than or equal to <=less than or equal to truealways true falsealways false
5
Example: int x = 5; if (x > 10){ LCD.drawString(“Hi”, 0, 0); } if(x <= 10){ LCD.drawString(“Bye”, 0, 0); } What is displayed on the LCD?
6
While The Java: while(condition){ // java code }
7
Example int y = 1; while (y <= 3){ LCD.drawString(“Hi”, 0, y); y = y + 1; } What is displayed on the LCD?
8
Using Input Sensors The Mindstorms input sensors can return data that you can use in a condition to make a decision. Buttons The Button class has four instances, accessed by static fields: Button.ENTER Button.ESCAPE Button.LEFT Button.RIGHT
9
Methods waitForPress() Returns an integer corresponding a button ENTER: 1 LEFT:2 RIGHT:4 ESCAPE:8 waitForPressAndRelease() Can be applied to any button Example: Button.ENTER. waitForPressAndRelease(); isPressed() Can be applied to any button Returns true or false
10
Example Button Code while (true) { LCD.clear(); if (Button.ENTER.isPressed()) LCD.drawString("ENTER", 0, 0); if (Button.ESCAPE.isPressed()) LCD.drawString("ESCAPE", 0, 0); if (Button.LEFT.isPressed()) LCD.drawString("LEFT", 0, 0); if (Button.RIGHT.isPressed()) LCD.drawString("RIGHT", 0, 0); }
11
Sensing Touch TouchSensor isPressed() Returns true if the button is pressed. Needs to be plugged into one of the Sensor ports. In your code, you will need to declare a new touch sensor, indicating which port it is plugged into: TouchSensor t = new TouchSensor(SensorPort.S1); Give it a name Indicate the port number
12
Sensor port 1 Example: Plug the touch senor in the port 1
13
Try this code: What is displayed on the LCD?
14
Sound Sensor SoundSensor Readvalue() Returns a value in the range [0-100] corresponding to how much noise it hears. Like the touch sensor it needs to be plugged into a sensor port and initialized
15
Try out this code What is displayed on the LCD?
16
This code uses sound to trigger a motor to rotate
17
The Ultra Sonic Distance Sensor UltrasonicSensor getDistance() Returns the distance to an object in CM. A value of 255 means no distance was detected Maximum is about 170 Example Code:
18
Light Sensor LightSensor Sensor how much light in around the Mindstorm readValue() Returns the raw value readNormalizedValue() Returns a value in between 0 to 1023 setFloodLight(boolean) Turn flood light on or off.
19
Light Sensor Example Code
20
Wrapping up… Sound Object Make the Mindstorm beep beep() twoBeeps() beepSequence() beepSequenceUp() playTone(int aFrequency, int aDuration) playSample(File aWAVfile) playSample(File aWAVfile, int volume) playNote(int[] inst,int freq, int len)
21
Wrapping up… Battery getVoltageMilliVolt() getVoltage() LCD setPixel(int pixelValue, int x, int y); Can be used to draw a single pixel (dot) on the LCD
22
Drawing a Parabola on LCD
23
Plot sound waves over a 2 second period. VERY COOL!!!!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.