intro to nxt programming october 16, 2010 joe long [email protected] (special roboparade edition)...

41
Intro to NXT Programming October 16, 2010 Joe Long [email protected] (Special RoboParade edition) Brought to you by a generous grant from Tardec

Upload: maria-daly

Post on 27-Mar-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

Intro toNXT Programming

October 16, 2010Joe Long

[email protected]

(Special RoboParade edition)

Brought to you by a generous grant from Tardec

Page 2: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

2

Agenda

Basic Movements Loop, Sensors, Wait, Switches, and line

following Program Beams Determining speed Extra Tips

Page 3: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

3

Creating a Program

Start the NXT-G program

Use meaningful names!!!

Upon clicking [Go >>]

a programming palette will

appear.

Page 4: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

4

Exercise 0:Go Forward For Two Seconds

Click on the Move button Drag it to the canvas

Page 5: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

5

Exercise 0:Go Forward For Two Seconds Change settings (parameters) for the block:

• Port

• Direction

• Power

• Duration

• Steering

• Next Action

Page 6: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

6

Let’s test it!!!

Connect the NXT to the laptop (if this is the first time, then a “Found New Hardware” message will appear)

Click on the ‘Download’ button It’s recommended to always unplug the cable

from the bot before running the program Navigate through the NXT’s menu:

• Turn On > My Files > Software Files

• Then select your program and run it!

Page 7: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

7

Sensors

Touch Light Ultrasonic (distance measurement) Sound (microphone: decibel level) Rotation (Embedded in motor) Timer (Internal Sensor) Received Bluetooth Messages NXT Buttons (two grays and the orange)

Page 8: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

8

Getting Sensor Values

NXT-G offers a Live Update feature that lets you see what your robot is seeing, through the computer.

When you click on a block that uses the light sensor (and the NXT is plugged into the computer and turned on), you can view the light sensor value.

Page 9: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

9

Light Sensor

Percent Mode:• 5% = lowest dark

• 100% = very brigh

Reflected Light Mode: shines a red light The light can be turned off – detecting

ambient light (surrounding light)

Page 10: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

10

Light Sensor

Navigate the NXT’s menu:• View > Reflected Light

• On White Area: 55% - 65%

• On black area:43% - 48%

If the Live Update value is VERY different from the view value, then odds are a calibration was set up and it is skewing the results. Calibrations can be created / edited / deleted in the Tools Menu of the computer program.

Page 11: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

11

Light Sensor Readings

50%45%

40%

45%40%

30%35%

30%35%

50%

Based off of sources from: HighTechKids.org

Page 12: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

12

Attaching a Light Sensor

Facing Down Gap: around 0.5 to 1 inch off the ground The default port is port 3, so we’ll use

that!

Page 13: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

13

Exercise 1:Stop at the Edge of the Table

Program:

Page 14: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

14

Commenting Your Code

Use the comment tool ( ) to note the following information:• Author, date of creation

• How to use the program

• Descriptions

• Expected sensor values

• Known bugs

• Functions to improve upon

• etc, etc, etc…

Page 15: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

15

Light Sensor Valueson the RoboParade Course

Be able to detect white area and the black line

If necessary, detect the edge of the field so as not to fall off

Page 16: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

16

What could go wrong?

Some robot in front of you might have lights

Unintentionally reflected light could blind the light sensor

One end of the track might have more light than the other

Page 17: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

17

Exercise 2:Infinite Line Following (touch)

The NXT default for the touch sensor is port 1, so we’ll go with that.

Possible outputs:• PRESSED or NOT PRESSED!

Page 18: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

Exercise 2:Infinite Line Following (Intro)

Loops and Switches (beep on press):

18

Page 19: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

19

Exercise 2: Infinite Line Following

The Zig-Zag Method

Page 20: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

20

Exercise 3:Follow the line until touched

Switch For the RoboParade field, the power should be less than 40.

Page 21: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

21

How to improve in line following

Use a three way branch Use two light sensors Use a dynamic threshold (the program

gets the light value before moving, then bases all of it’s decisions off of that value)

Page 22: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

Dual Light Sensors

Bounce along the line!

22

Page 23: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

Dual Light Sensors

23

Page 24: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

24

Ultrasonic Sensor

Uses the same scientific principle as bats.

The NXT can measure in centimeters or in inches• 0 – 255 cm (0 – 100.4 inches)

Precision: +/- 3cm (1.2 inches) View the sensor information:

• View > Ultrasonic cm > select port number Battery Glitch! Don’t go under ½ power!

Page 25: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

25

Ultrasonic Sensor

Large objects with hard surfaces return the best readings.

Objects made of fabrics or something curved (like a foil wrapped tennis ball) are difficult to detect

Two or more ultrasonic sensors in the same room interfere with eachother’s readings!

Page 26: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

26

Exercise 4:Ultrasonic Distance

Page 27: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

Exercise 5:Move until ultrasonic detection

27

Page 28: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

28

My Blocks

Wrap a complex procedure into a single block.

Save what little memory the NXT has and avoid redundancy.

Hide complex details.

Page 29: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

29

Creating My Blocks

Start with working code Highlight blocks to include Click the “Create MyBlock” button Name the MyBlock Build the icon(s) MyBlock replaces the selected code It is also now available in the ‘custom’ menu

Page 30: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

Program Beams

Multi-tasking, NXT style!

30

Page 31: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

31

Creating Variables

In the computer program, go to the Edit menu and select “Define Variables”

Enter the variable name and type.• Text = “hello world!”

• Number = 1337

• Logic = true / false• Also called boolean

Page 32: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

32

Editing Variables

1) Open the ‘Complete’ menu

2) Next to the plus sign, select the suitcase block

• 2 modes:

• Read

• write

Page 33: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

33

Variables and Dynamic ThresholdPart 1

Get the light value of the white space Subtract 7 Save it to a variable called “Light

Threshold”

Page 34: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

34

Variables and Dynamic ThresholdPart 2

Read the current light sensor value and see if it is greater or less than the threshold, act accordingly.

Page 35: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

35

Editing the Memory

A utility called the NXT Window

will be your best friend for this! When the window pops up, click on the

‘Memory’ tab, select a file type from the chart on the left. This window can also upload and download files to / from the NXT.

NOTE: No system files are shown! This means that you can delete at random and the NXT will still work without a hitch.

Page 36: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

36

Tips:

“Out of Memory” problem:• Do not use sound files, or delete the currently

existing files

• Do not display graphics

• Minimize the number of programs on the NXT

• Delete Unnecessary programs

Page 37: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

37

Tips:

Debugging:• Code gradually, not all at once.

• Beeps help, make the robot beep whenever it thinks that it sees a line and your coding gets a LOT easier. Displaying values helps too!

Game Details:• Ultrasonic sensor on #3 ball

• Light sensor on #4 ball

Page 38: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

38

Something Cool:Getting rid of the startup sound

If you open the ‘Memory’ window (shown three slides ago) and navigate to the Sound files, you can delete the startup sound.

Now the NXT will turn on WITHOUT THE MUSIC!!!

If you want to reload it, it’s one of the sound effects available to the sound block. Just make a program that uses that sound and it will be saved again, even if you delete the program.

Page 39: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

39

Use RCX sensors and motors with the NXT

NXT conversion cable• 3 cables for $10

Available through Robofest office, M219.

Page 40: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

40

Acquiring More Parts

You can purchase spare parts (and a couple recently developed sensors, including a color sensor) at mindstorms.lego.com

Interested in buying pieces? Bricklink allows people to sell and buy lego bricks, many a rare part can be found there, and the prices are EXCELLENT! www.bricklink.com

Lots of 3rd party companies sell sensors and other parts that are available nowhere else!

Page 41: Intro to NXT Programming October 16, 2010 Joe Long jlong@ltu.edu (Special RoboParade edition) Brought to you by a generous grant from Tardec

41

That’s it!

Questions? Comments? Concerns? Restraining orders? (…hope not…)• Feel free to drop me an email for any of the

above (although any notices for restraining orders can be forwarded to my evil twin).

Email: [email protected]