NXT Curriculum

Download Report

Transcript NXT Curriculum

ROBOT

C

for VEX

On-Site Professional Development

Troubleshooting

• Student: My robot won’t stop turning.

Troubleshooting

• Student: I used the auto straightening code, and it compiles, it isn’t working, it’s just being weird.

Troubleshooting

• Student: One of my encoders is counting down even though it’s spinning forward.

• Student: My code won’t compile.

Troubleshooting

Radio Control

Radio Control

• An out-of-box VEX Microcontroller comes with basic built-in Radio Control functionality – The Radio Control Transmitter can be configured to allow some customization of that built-in functionality – Still very limited customizability and usefulness!

• The ROBOTC firmware enables full customization of how the Radio Control Transmitter signals controls the VEX – By default ROBOTC turns off reception from the transmitter to save battery life during autonomous programming – One line of code turns it back on

Radio Control

• One Transmitter continuously sends out 6 separate values over 6 separate channels – Values range from -127 to 127 – Doesn’t something else have values that range from -127 to 127?

• The “crystal” number must match on the transmitter and receiver – The crystal is what controls the frequency of the transmission – One transmitter can control multiple robots, so be careful in your classrooms – 13 different crystals/frequencies are available

Radio Control Reset

• Since the Radio Control Transmitter can be configured, there’s the possibility that it’s configured inappropriately for our purposes.

– Watch the Radio Control Setup and Values and Axes (Part 1) Videos in TRC4V, found in Radio Control > Control Mapping – Be sure to follow along with the Radio Control Setup Video!

Radio Control Signals

Radio Control

• Direct Value Mapping – Values from the transmitter are directly used to control the motors (1:1 ratio) • Program Flow Tracing – Radio Control with Wait States – Radio Control with a Loop (real-time control) • Indirect Value Mapping – Values from the transmitter are modified before being used to control motors – Can make the robot easier to control – Appropriate in situations that require more “delicate” movements – Notice: the robot reads the right side of the equal sign first

Advanced Radio Control

• Attach the Arm!

• Use the Transmitter buttons to control the arm – The Transmitter buttons send values of -127, 0, or 127 – Would direct mapping or indirect mapping be most appropriate for controlling the arm? Why?

• More loop control please?

– Is remote controlling the robot forever always appropriate?

– Question: Where would the wait statement go if we wanted the robot to be remote controlled for a controlled amount of time?

– Answer: Nowhere! We need something else.

• Solution: Timers – Can be thought of as internal stopwatches (4 available) – Like encoders, timers should be “cleared” anytime before they are used • Watch where you clear them!

Advanced Radio Control

• Wasting Time? – The time it takes to turn on the VEX and start Radio Control is wasted time.

– Could we make the robot wait to start it’s timer until we were ready? Any ideas?

• Wait for a Transmitter Button press – The robot won’t start the timer until we say so – The robot also can’t move until we says so – Program Flow Trace – Could this idea also be used to make a “more friendly” start button on a non-radio controlled robot?

• Other ideas of how to improve radio control?

– Use the buttons to initiate common actions • Turn 90 degrees, move straight forward, ect

Advanced Radio Control

• Assigning a function to a button press – Auto pickup

Radio Control Challenges

• TRC4V Videos (recommended) – Watch remaining Control Mapping videos 3-5 • Race to the Finish – Remember to Journal – Remember to Pseudocode • Shut off your transmitter when it’s not in use!

– Drastically saves the battery life (and your ears) • The transmitter is always transmitting, even if the robot isn’t on

Advanced Radio Control Challenges

• TRC4V Videos (recommended) – Watch remaining Radio Control Videos (Control Mapping, Timers, Buttons sections) • Minefield Level 1 Challenge – Remember to Pseudocode – Remember to Journal • RoboDunk – First try it Tele-Operated, then Autonomously

Competition Templates

• VEX Competitions have a “Field Management System” in place – Manages when robots are enabled/disabled – Determines whether the robots are in autonomous/tele-operated mode • A Competition Template is available that can be programmed in to work with the Field Management System – Contains autonomous and tele-operated sections – Found in the Sample Programs > Competition folder

Troubleshooting

• Student: My loop should only be running for 1 minute, but it never stops.

Touch Sensors

• Touch Sensor Check – Front sensor plugged into A/D 1 – Rear Sensor plugged into A/D 4 • How they work – Digital sensor - Pressed or Released – Watch out for “bouncing” • Two Types – Limit Switches – on Squarebot 3.0

– Bumper Switches • Setting them up – ROBOTC Motors and Sensors Setup window • Using them – The

SensorValue[]

command

Touch Sensors

• Start Button – Remember back to how we used the Transmitter button to start the timer portion of the program. How would we implement the same thing with the limit switch?

• Fine-tuned arm control – Using the limit switches to tell the robot when it has reached it’s minimum and maximum points

Touch Sensor Challenges

• Quick-tap Challenge – Incorporating Sensors, Variables, Loops, If Statements, Timers, Boolean Logic, Pseudocoding, and

FUN

all into one activity • Addition & Subtraction – Everything you just learned, but with another twist

The Ultrasonic Rangefinder

• Ultrasonic Rangefinder Check – Input wire plugged into A/D Port 5 – Output wire plugged into INT Port 1 • How they work – Similar to how bats and submarines work – Digital sensor – but returns distance values between 0 & 255 • (Can also return values of -1 or -2 if used improperly) – Resolution is in inches (a value of 5 = 5 inches away) • Setting them up – ROBOTC Motors and Sensors Setup window • Using them – Be careful not to use them immediately as your program starts – they take time to initialize and will return negative values – The

SensorValue[]

command

The Ultrasonic Rangefinder

• Forward until Near – Move forward until the robot is “near” an object, then stop – Thresholds • Automatic Pick-up – Forward until Near + picking up the mine – Assign to a button

Sensor Challenges

• TRC4V Videos (recommended) – Watch Remaining Sensing Section Videos • Minefield Level 2 Challenge – Remember to Pseudocode – Remember to Journal – The two are not mutually exclusive!

• The Speed of Sound • Sonic Scanner Level 2 (Start)

Potentiometers

• Potentiometer Check – Sensor plugged into A/D 1 • How they work – Analog sensor – Measures rotation of a shaft between 0 and ~265 degrees – Returns values 0 – ~1023 – Internal mechanical stop • Setting them up – ROBOTC Motors and Sensors Setup window – Using Analog and Digital Sensors • Using them – The

SensorValue[]

command

Potentiometers

• Variable Speed Program – Use the rotation of the potentiometer to control how fast the robots motors spin • Arm Control – Instead of using the limit switches, use the potentiometer to control how far the arm is allowed to swing up and down

Servo Motors

• Very similar in appearance to the normal motor • Very different in operation – Rotates between 0 and 120 degrees – Where the motor is set to a “power value” the servo is set to a “position value” – -127 = 0 degrees, 0 = 60 degrees, 127 = 120 degrees, ect – Servo motors are programmed exactly the same way as normal motors in ROBOTC, so the programmer must know the hardware and intent

Pneumatics

Pneumatics

• Solenoids operate as Digital Outputs • Are plugged into Analog/Digital Ports – Are set to open by setting them to 1 – Are set to close by setting them back to 0 • Demo in ROBOTC

End of Day Challenge

• Minefield Level 2 – Incorporate an autonomous scoring behavior before your tele-operated code begins – One “mine” should always be in the same place, near the goal