Presentation on theme: "Intro to NXT Programming"— Presentation transcript:
1Intro to NXT Programming October 16, 2010Joe Long(Special RoboParade edition)<NEXT: Agenda>Brought to you by a generous grant from Tardec
2Agenda Basic Movements Loop, Sensors, Wait, Switches, and line followingProgram BeamsDetermining speedExtra Tips<NEXT: Before we begin…>
3Creating a Program Start the NXT-G program Use meaningful names!!! Upon clicking [Go >>]a programming palette willappear.<NEXT: With that done, let’s see how to work the programming palette>
4Exercise 0: Go Forward For Two Seconds Click on the Move buttonDrag it to the canvas<NEXT: Since our goal is to make the robot move forward for two seconds, how do we modify this block to do that?>
5Exercise 0: Go Forward For Two Seconds Change settings (parameters) for the block:PortDirectionPowerDurationSteeringNext Action<NEXT: Let’s test it!>
6Let’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’ buttonIt’s recommended to always unplug the cable from the bot before running the programNavigate through the NXT’s menu:Turn On > My Files > Software FilesThen select your program and run it!
7Sensors Touch Light Ultrasonic (distance measurement) Sound (microphone: decibel level)Rotation (Embedded in motor)Timer (Internal Sensor)Received Bluetooth MessagesNXT Buttons (two grays and the orange)
8Getting Sensor ValuesNXT-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.
9Light Sensor Percent Mode: Reflected Light Mode: shines a red light 5% = lowest dark100% = very brighReflected Light Mode: shines a red lightThe light can be turned off – detecting ambient light (surrounding light)
10Light Sensor Navigate the NXT’s menu: View > Reflected LightOn 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.
11Light Sensor Readings 50% 45% 40% 35% 30% 30% 35% 40% 45% 50% Based off of sources from: HighTechKids.org
12Attaching a Light Sensor Facing DownGap: around 0.5 to 1 inch off the groundThe default port is port 3, so we’ll use that!
13Exercise 1: Stop at the Edge of the Table Program:
14Commenting Your CodeUse the comment tool ( ) to note the following information:Author, date of creationHow to use the programDescriptionsExpected sensor valuesKnown bugsFunctions to improve uponetc, etc, etc…
15Light Sensor Values on the RoboParade Course Be able to detect white area and the black lineIf necessary, detect the edge of the field so as not to fall off
16What could go wrong? Some robot in front of you might have lights Unintentionally reflected light could blind the light sensorOne end of the track might have more light than the other
17Exercise 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!
18Exercise 2: Infinite Line Following (Intro) Loops and Switches (beep on press):
19Exercise 2: Infinite Line Following The Zig-Zag Method
20Exercise 3: Follow the line until touched For the RoboParade field, the power should be less than 40.Switch
21How to improve in line following Use a three way branchUse two light sensorsUse a dynamic threshold (the program gets the light value before moving, then bases all of it’s decisions off of that value)
24Ultrasonic Sensor Uses the same scientific principle as bats. The NXT can measure in centimeters or in inches0 – 255 cm (0 – inches)Precision: +/- 3cm (1.2 inches)View the sensor information:View > Ultrasonic cm > select port numberBattery Glitch! Don’t go under ½ power!
25Ultrasonic SensorLarge objects with hard surfaces return the best readings.Objects made of fabrics or something curved (like a foil wrapped tennis ball) are difficult to detectTwo or more ultrasonic sensors in the same room interfere with eachother’s readings!
28My Blocks Wrap a complex procedure into a single block. Save what little memory the NXT has and avoid redundancy.Hide complex details.
29Creating My Blocks Start with working code Highlight blocks to include Click the “Create MyBlock” buttonName the MyBlockBuild the icon(s)MyBlock replaces the selected codeIt is also now available in the ‘custom’ menu
31Creating VariablesIn the computer program, go to the Edit menu and select “Define Variables”Enter the variable name and type.Text = “hello world!”Number = 1337Logic = true / falseAlso called boolean
32Editing Variables Open the ‘Complete’ menu Next to the plus sign, select the suitcase block2 modes:Readwrite
33Variables and Dynamic Threshold Part 1 Get the light value of the white spaceSubtract 7Save it to a variable called “Light Threshold”
34Variables and Dynamic Threshold Part 2 Read the current light sensor value and see if it is greater or less than the threshold, act accordingly.
35Editing 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.
36Tips: “Out of Memory” problem: Do not use sound files, or delete the currently existing filesDo not display graphicsMinimize the number of programs on the NXTDelete Unnecessary programs
37Tips: Debugging: Game Details: 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 ballLight sensor on #4 ball
38Something 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.
39Use RCX sensors and motors with the NXT NXT conversion cable3 cables for $10Available through Robofest office, M219.
40Acquiring More PartsYou can purchase spare parts (and a couple recently developed sensors, including a color sensor) at mindstorms.lego.comInterested 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!Lots of 3rd party companies sell sensors and other parts that are available nowhere else!
41That’s it!Questions? Comments? Concerns? Restraining orders? (…hope not…)Feel free to drop me an for any of the above (although any notices for restraining orders can be forwarded to my evil twin).