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