Line Tracking Basic Lesson
|
|
|
- Buck Russell
- 9 years ago
- Views:
Transcription
1 Line Tracking Basic Lesson Now that you re familiar with a few of the key NXT sensors, let s do something a little more interesting with them. This lesson will show you how to use the Light Sensor to track a line. The trick to getting the robot to move along the line is to always aim toward the edge of the line. For this example, we ll use the left edge. Track the left side The Light Sensor will be positioned and programmed to track the left side of the black line. Put yourself in the robot s position. If the only dark surface is the line, then seeing dark means you are on top of it, and the edge would be to your left. So you move toward it by going forward and left by performing a Swing Turn. Light Sensor sees dark The robot is over the dark surface. The left edge of the line must be to the robot s left. Swing turn left Therefore, turn left toward the edge of the line. Line Tracking
2 Line Tracking Basic (cont.) The only time we should see Light is when we ve driven off the line to the left. If we need to get to the left edge, it s always a right turn to get back to line. Make the forward-right turn as long as you re seeing Light, and eventually, you re back to seeing Dark! Light Sensor sees light The robot is now over the light surface. The left edge of the line must be to the robot s right. Swing turn right Therefore, turn right toward the edge of the line. Put those two behaviors in a loop, and you will see that the robot will bounce back and forth between the light and dark areas. The robot will eventually bobble its way down the line. Track the line: The robot will perform the line track behavior to the end of the line Line Tracking
3 Line Tracking Basic (cont.) In this lesson you will learn how to use the light sensor to follow a line, using behaviors similar to the Wait for Dark (and Wait for Light) behaviors you have already worked with. 1. Start with a new, clean program. 1. Create new program Select File > New to create a blank new program.. The first step is to configure the Light Sensor. Go to the Motors and Sensors Setup menu. Click Robot then choose the Motors and Sensors Setup.. Open Motors and Sensors Setup Select Robot > Motors and Sensors Setup to open the Motors and Sensors Setup menu. Line Tracking
4 Line Tracking Basic (cont.). Configure an Active Light Sensor named lightsensor on Port1. a. Open A/D Sensors Tab Click the A/D Sensors tab b. Name the sensor Name the Light Sensor on port S1 lightsensor. c. Set Sensor Type Identify the Sensor Type as a Light Active sensor.. Press OK, and you will be prompted to save the changes you have just made. Press Yes to save.. Select Yes Save your program when prompted.. Save this program as LineTrack1. a. Name the program Give this program the name LineTrack1. b. Save the program Press Save to save the program with the new name. Line Tracking
5 Line Tracking Basic (cont.) Checkpoint Your program should look like the one below. The Light Sensor is configured, and we can now start with the rest of the code.. Let s start by putting the easy stuff in first: task main, parentheses, and curly braces.. Add this code These lines form the main body of the program, as they do in every ROBOTC program.. Recall that in order to seek the left edge of the line, the robot must go forward-left for as long as it sees dark, until it reaches the light area. Similar to the Forward Until Dark behavior you wrote earlier, this uses a while() loop that runs while the SensorValue of the lightsensor is less than the threshold (which you must calculate as before). 1 1 while(sensorvalue(lightsensor) < ) a. Add this code This while() loop functions like the Forward Until Dark behavior you wrote earlier. It will run the code inside the braces as long as the SensorValue of the lightsensor is less than the threshold value of. b. Add this code Instead of moving forward like Forward Until Dark, the robot should turn forward-left. Left motor stationary, with right motor at 0% creates this motion. Line Tracking
6 Line Tracking Basic (cont.). The robot has presumably driven off the line, and must now turn back toward it. The robot must turn forward-right as long is it continues to see the light table surface (i.e. until it sees the dark line again) while(sensorvalue(lightsensor) < ) while(sensorvalue(lightsensor) >= ) motor[motorc] = 0; a. Add this code This while() loop is very similar to the one above it, except that it will run the code inside it while the light sensor sees light, rather than dark. b. Add this code This turns the robot forward-right by running the left motor at 0% while holding the right motor stationary. Checkpoint The code currently handles only one bounce off and back onto the line. However, to track a line, the robot must repeat these two operations over and over again. This will be accomplished using another while() loop, set to repeat forever. Forever will be achieved in a somewhat creative way... Discussing Concepts Using Pseudocode Often when discussing programs and robot behaviors, it is useful for programmers to use language that is a mixture of English and code. This hybrid language is called pseudocode and allows programmers to discuss programming concepts in a natural way. Pseudocode is not a formal language, and therefore there is no one right way to do it, but it often involves simplifications to aid in discussion. (continued on next page...) Line Tracking
7 Line Tracking Basic (cont.). Create a while() loop around your existing code. Position the curly braces so that both of the other while loop behaviors are inside this new while loop. For this new while loop s condition, enter 1==1, or one is equal to one while(1==1) while(sensorvalue(lightsensor) < ) while(sensorvalue(lightsensor) >= ) motor[motorc] = 0;. Add this code The new while() loop goes around most of the existing code, so that it will repeat those behaviors over and over. The loop will run as long as 1==1, or one is equal to one. This is always true, hence the loop will run forever. Discussing Concepts Using Pseudocode (cont.) The program on this page might look like this in pseudocode: repeat forever while(the light sensor sees dark) turn forward-left; while(the light sensor sees light) turn forward-right; Line Tracking
8 Line Tracking Basic (cont.) End of Section Now that your program is complete, check to see if it works. Save your program, and then download it to the robot and run. If you see that your robot is moving off the line in one direction, it means that your threshold is set wrong. The robot thinks it s seeing dark even on light, or light even on dark, and it s just waiting to see the other, which probably won t happen if the values are wrong. If, however, you see your robot bouncing back and forth, moving down the line, then your robot is working correctly, and it s time to move on to the next lesson. Line Tracking
9 Line Tracking Better Lesson In the previous lesson we learned the basics of how to use the light sensor to follow a line. That version of the line tracker runs forever, and cannot be stopped except by manually stopping the program. To be more useful, the robot should be able to start and stop the line tracking behavior on cue. For example, the robot should be able to stop following a line when it reaches a wall at the end of its path. In principle, we should be able to do this pretty easily, all we need to do is change the looping forever part to loop while the touch sensor is unpressed. Line Tracking
10 Line Tracking Better (cont.) In this lesson, you will adapt your line tracking program to stop when a Touch Sensor is pressed, and then make it more robust by replacing risky nested loops with if-else statements. 1. Save your existing program from the previous lesson under a new name, LineTrack. 1a. Save program As... Select File > Save As... to save your program under a new name. 1b. Name the program Give this program the name LineTrack. 1c. Save the program Press Save to save the program with the new name.. Open the Motors and Sensors Setup menu.. Open Motors and Sensors Setup Select Robot > Motors and Sensors Setup to open the Motors and Sensors Setup menu.. You will be adding a second sensor for this lesson. Configure a Touch Sensor called touchsensor on S. a. Open A/D Sensors Tab Click the A/D Sensors tab b. Name the sensor Name the Touch Sensor on port S touchsensor. c. Set Sensor Type Identify the Sensor Type as a Touch sensor. Line Tracking
11 Line Tracking Better (cont.). On your physical robot, plug the Touch Sensor into Port.. Press OK on the Motors and Sensors Setup menu.. Press OK Accept the changes to the sensor setup and close the window. Line Tracking
12 Line Tracking Better (cont.). Replace the forever condition 1==1 with the condition the touch sensor is unpressed, the same condition you used to run until pressed in the Wall Detection (Touch) lesson. This condition will be true when the SensorValue of touchsensor is equal to while(sensorvalue(touchsensor) == 0) while(sensorvalue(lightsensor) < ) while(sensorvalue(lightsensor) >= ). Modify this code Change the condition in parentheses to check whether the touch sensor is unpressed instead. The condition will be true when the touch sensor s value is equal to 0.. Elevate ( block up ) the robot so that you can test it without its wheels touching the ground. Note that the light sensor now hangs in the air. Download and run your program. a. Block up the robot Place an object under the robot so that its wheels don t reach the table. The robot can now run without moving. b. Download the program Click Robot > Compile and Download Program. c. Run the program Click Start on the onscreen Program Debug window, or use the NXT s on-brick menus. Line Tracking 1
13 Line Tracking Better (cont.) Checkpoint Check that your Line Tracking behavior is correctly responding to light and dark by placing lightand dark-colored objects or paper under the light sensor. Simulated dark line Using a dark-colored object (or the naturally low value of the sensor when held in the air like this), confirm that the robot exhibits the correct motor behaviors when the sensor sees dark. Simulated light surface Place a sheet of white paper under the sensor to simulate the robot traveling off the line and onto the light table surface. Watch for the motors to change behaviors accordingly. We modified the program so that the (condition) of the while() loop would only be true as long as the Touch Sensor was unpressed. When the sensor is pressed, the loop should end, and move on. Touch the Sensor Press in the bumper on the robot to trigger the Touch Sensor. Observe motors Do the motors stop like they should at the end of the program? Light/Dark again Release the Touch sensor, and see if the robot still responds to light and dark. Light/Dark pressed Hold down the Touch Sensor bumper, and try light/dark again. Does anything happen? Line Tracking 1
14 Line Tracking Better (cont.) The robot responds strangely. When you pressed the touch sensor, it didn t respond. But when you held the touch sensor and waved the paper underneath it, the robot did stop. The touch sensor seems to be doing its job of stopping the loop... sometimes? Let s step through the code while(sensorvalue(touchsensor) == 0) while(sensorvalue(lightsensor) < ) Key concept: While() loops do not continually monitor their (conditions). They only check when the program reaches the while line containing the condition. while(sensorvalue(lightsensor) >= ) a. Touch Sensor check The program checks the condition only at this point. It s true when we start, so the program goes inside the loop. b. Inner loop As long as the robot continues to see dark, it enters and remains in this loop. What was the program was doing while the robot saw the dark object (or dark space below its sensor)? The program reached and went inside the while(dark) loop, (b) above, and remained inside as long as the Light Sensor continued seeing dark. Consider which lines check the Touch Sensor. While the program was inside the inner while() loop, was it ever able to reach those lines? while(sensorvalue(touchsensor) == 0) while(sensorvalue(lightsensor) < ) Code must reach this point The Touch Sensor is only checked when the program reaches this line. Code is stuck here Until the Light Sensor stops seeing dark, the program doesn t leave this loop. The current program contains flawed logic. Until the robot stops seeing dark, there s no way for the program to reach the line that checks the touch sensor! This stuck in the inner loop problem will always be a danger any time we place one loop inside another, a structure called a nested loop. We were only able to get the robot to recognize touch by waving the light object in front of it to force it out of the while(dark) loop, and back around to check the Touch Sensor again. Line Tracking 1
15 Line Tracking Better (cont.) The solution requires a little shift in thinking. The program as it is now involves running trough an inner while loop, where it has the potential to get stuck, oblivious to the outside world. We need to get rid of the nested loop. If, instead, we break down the robot s actions into a series of tiny, instantaneous decisions that will always pick the correct direction, we can avoid the need to go inside a loop that might not end in time. Enter the if-else statement.. Replace the inner while() loops with a simpler, lightweight decision-making structure called a conditional statement, or if-else statement if(sensorvalue(lightsensor) < ) else motor[motorc] = 0; a. Modify this code Replace while with if. If the light sensor value is less than, run the code between the curly braces, once only, then move on. b. Modify this code Replace the while() line with the keyword else. If the code in the if statement s brackets did not run, the code in the else statement s brackets will instead (once). This should only happen when the light sensor is seeing a value >= (i.e.light). In the same way that the while loop started with the word while, the if-else starts with the word if. It, like the while loop, is followed immediately by a condition in parentheses. In fact, it uses the same condition as the old program to check the light sensor. The difference is that the if-else statement will only run the commands in the brackets once, regardless of the light or touch sensor readings. If the SensorValue of the lightsensor is less than the threshold, then the code directly after will execute, once. The else, followed by another set of curly braces, represents what the program should do if the condition is not true. if(condition) true-commands; else false-commands; General form Conditional (if-else) loops always follow the pattern shown here. If the (condition) is true, the true-commands will run. If the (condition) is false, the false-commands will run instead. Note, however, that whichever set of commands is chosen, they are only run once, and not looped! Line Tracking 1
16 Line Tracking Better (cont.). As a final touch, add a Stop motors behavior into the program, right before the final bracket. This ensures that you ll see an immediate reaction when the robot gets out of the loop else motor[motorc] = 0; 1. Add this code Stop both motors. Because these lines come outside the while() loop, they will run after the while() loop has completed. End of Section Save your program, download, and run. The robot no longer gets stuck in the inner while() loop, and successfully tracks the line until the touch sensor is triggered. Line Tracking 1
17 Line Tracking Timer Lesson The behavior we programmed in the previous lesson is great for those situations where you want the robot to follow a line straight into a wall, and stop. However, let s see if there are any good ways to make the robot line track until something else happens. To make the robot go straight for seconds, we gave it motor commands, followed by a wait1msec(time)command. How would this work with line tracking? while(sensorvalue(touchsensor) == 0) if(sensorvalue(lightsensor) < ) wait1msec(000); else motor[motorc] = 0; Location A Does the wait1msec command go here? Location B Here? Location C How about here like this? Location D Or here? Option E Both B and D together. Which one of the above locations is the right place to put the wait1msec command? The correct answer is: none. There is no right place to put a wait1msec command to get the robot to line track for seconds. Wait1Msec does not mean continue the last behavior for this many milliseconds, it means, go to sleep for this many milliseconds. You ve really told the robot to put its foot on the gas pedal, and go to sleep. That doesn t work when the robot needs to watch the road. Instead, we ll keep the robot awake and attentive, using a Timer (rather than just Time) to decide when to stop. Line Tracking 1
18 Line Tracking Timer (cont.) Your robot is equipped with four Timers, T1 through T, which you can think of as Time Sensors, or if you prefer, programmable stopwatches. Using the Timers is pretty straightforward: you reset a timer with the ClearTimer() command, and it immediately starts counting time. Then, when you want to find out how long it s been since then, you just use time1[timername], and it will give you the value of the timer, in the same way that SensorValue(SensorName) gives you the value of a sensor. ClearTimer(TimerName); while(time1[timername] < 000) Timer Tips Timers should be reset when you are ready to start counting. time1[timername] represents the timer value in milliseconds since the last reset. It is shown here being used to make a while loop run until seconds have elapsed. Line Tracking 1
19 Line Tracking Timer (cont.) In this lesson you will learn how to use Timers to make a line-tracking behavior run for a set amount of time. 1. Open the Touch Sensor Line Tracking program LineTrack. 1a. Open Program Select File > Open and Compile to retrieve your old program. 1b. Select the program Select LineTrack. 1c. Open the program Press Open to open the saved program.. Save this program under a new name, LineTrackTimer. (Note the r at the end of timer ) a. Save program As... Select File > Save As... to save your program under a new name. b. Name the program Give this program the name LineTrackTimer. c. Save the program Press Save to save the program with the new name. Line Tracking 1
20 Line Tracking Timer (cont.) Checkpoint The program on your screen should again look like the one below while(sensorvalue(touchsensor) == 0) if(sensorvalue(lightsensor) < ) else motor[motorc] = 0;. Before a timer can be used, it has to be cleared, otherwise it may have an unwanted time value still stored in it. ClearTimer(T1); while(sensorvalue(touchsensor) == 0) if(sensorvalue(lightsensor) < ). Add this code Reset the Timer T1 to 0 and start it counting just before the loop begins. Line Tracking 0
21 Line Tracking Timer (cont.). Now, change the while loop s (condition) to check the timer instead of the touch sensor. The robot should line track while the timer T1 reads less than 000 milliseconds ClearTimer(T1); while(time1[t1] < 000) if(sensorvalue(lightsensor) < ) else motor[motorc] = 0;. Modify this line Base the decision about whether to continue running, on how much time has passed since T1 s last reset. End of Section Download and Run. Line Tracking for Time(r) The robot tracks the line for a set amount of time. But is time really what you want to measure? ROBOTC gives you four different timers to work with: T1, T, T, and T. They can be reset and run independently, in case you need to time more than one thing. You reset them the same way ClearTimer(T); and you check them the same way time1[t]. Still, there s the issue of timing itself. Motors, even good ones, aren t perfectly precise. By assuming that you re going a certain speed, and therefore will go a certain distance in a set amount of time, you are making a pretty bold assumption. In the next part of this lesson, you ll find out how to track a line for a certain distance, instead of tracking for time and hoping that it equates to the correct distance. Line Tracking 1
22 Line Tracking Rotation In this lesson we ll find out how to watch for distance, instead of watching for time and hoping that the robot moves the correct distance, like in our previous program. NXT Motors Rotation sensors are built into every NXT motor. A rotation sensor is a patterned disc attached to the inside of the motor. By monitoring the orientation of the disc as it turns, the sensor can tell you how far the motor has turned, in degrees. Since the motor turns the axle, and the axle turns the wheel, the rotation sensor can tell you how much the wheel has turned. Knowing how far the wheel has turned can tell you how far the robot has traveled. Setting the robot to move until the rotation sensor count reaches a certain point allows you to accurately program the robot to travel a set distance. Line Tracking
23 Line Tracking Rotation (cont.) Review The last program we re going to visit in the Line Tracking lesson is perhaps the most useful form, but it s taken us awhile to get here. Progress in engineering and programming projects is often made in this iterative way, by making small, directed improvements that build upon one another. Let s quickly review what we have done in some of the previous lessons. We started with figuring out that a line tracking behavior consists of bouncing back and forth between light and dark areas in an effort to follow the edge of a line. Line Tracking
24 Line Tracking Rotation (cont.) We then implemented a naive version of the line tracking behavior using while() loops, inside other while() loops while(1 == 1) while(sensorvalue(lightsensor) < ) while(sensorvalue(lightsensor) >= ) motor[motorc] = 0; But, we found that the program could get stuck inside one of those inner loops, preventing it from checking the sensor that we wanted to use to stop the tracking. Line Tracking
25 Line Tracking Rotation (cont.) We then implemented if-else conditional statements, which allow instantaneous sensor checking, and thus avoid the nesting of loops inside other loops, which had caused the program to get stuck if(sensorvalue(lightsensor) < ) else motor[motorc] = 0; Then, we upgraded from checking a Touch Sensor, to being able to use an independent timer to determine how long to run the line tracker ClearTimer(T1); while(time1[t1] < 000 if(sensorvalue(lightsensor) < ) else motor[motorc] = 0; Line Tracking
26 Line Tracking Rotation (cont.) Now, let s improve upon the Timer-based behavior by using a sensor more fundamentally connected to the quantity we wish to measure: distance traveled, using the Rotation Sensor. In this lesson you will learn how to use the Rotation Sensors built into every NXT motor to make a line tracking behavior run for a set distance. 1. Start by opening the Line Tracking Timer Program LineTrackTimer. 1a. Open Program Select File > Open and Compile to retrieve your old program. 1b. Select the program Select LineTrackTimer. 1c. Open the program Press Open to open the saved program.. Save this program under a new name, LineTrackRotation. a. Save program As... Select File > Save As... to save your program under a new name. b. Name the program Give this program the name LineTrackRotation. c. Save the program Press Save to save the program with the new name. Line Tracking
27 Line Tracking Rotation (cont.) Checkpoint Your starting program for this lesson should look like the one below ClearTimer(T1); while(time1[t1] < 000) if(sensorvalue(lightsensor) < ) else motor[motorc] = 0; It s time to start changing the program to use the Rotation sensors. Rotation sensors have no guaranteed starting position, so, you must first reset the rotation sensor count. It will take the place of the equivalent reset code used for the Timer. In the robotics world, the term encoder is often used to refer to any device that measures rotation of an axle or shaft, such as the one that spins in your motor. Consequently, the ROBOTC word that is used to access a Rotation Sensor value is nmotorencoder[motorname]. Unlike the Timer, which has its own ClearTimer command, the rotation sensor (motor encoder) value must be manually set back to zero to reset it. The command to do so will look like this: Example: nmotorencoder[motorc] = 0; Line Tracking
28 Line Tracking Rotation (cont.). Start with the left wheel, attached to Motor C on your robot. Reset the rotation sensor on that motor to nmotorencoder[motorc] = 0; while(time1[t1] < 000) if(sensorvalue(lightsensor) < ) else motor[motorc] = 0;. Modify this code Instead of resetting a Timer, reset the rotation sensor in MotorC to a value of 0. Replace ClearTimer(T1); with nmotorencoder[motorc]=0; Line Tracking
29 Line Tracking Rotation (cont.). Reset the other motor s rotation sensor, nmotorencoder[motorb] = 0; nmotorencoder[motorc] = 0; nmotorencoder[motorb] = 0; while(time1[t1] < 000) if(sensorvalue(lightsensor) < ) else motor[motorc] = 0;. Add this code Reset the rotation sensor in MotorB to 0 as well. Line Tracking
30 Line Tracking Rotation (cont.). The NXT motor encoder measures in degrees, so it will count 0 for every full rotation the motor makes. Change the while() loop s condition to make this loop run while the nmotorencoder value of motorc is less than 0 degrees, five full rotations nmotorencoder[motorc] = 0; nmotorencoder[motorb] = 0; while(nmotorencoder[motorc] < 0) if(sensorvalue(lightsensor) < ) else motor[motorc] = 0;. Modify this code Set MotorC to run for five full rotations or 0 degrees. Checkpoint Save, download and run your program. You may want to mark one of the wheels with a piece of tape so that you can count the rotations. Line Tracking 0
31 Line Tracking Rotation (cont.). We only checked one wheel and not the other. Add a check for the other motor s encoder value to the condition. The condition will now be satisfied and loop as long as BOTH motors remain below the distance threshold of 0 degrees. nmotorencoder[motorc] = 0; nmotorencoder[motorb] = 0; while(nmotorencoder[motorc] < 0 && nmotorencoder[motorb] < 0). Add this code This change sets the condition to run while the motor encoder on motorc reads less than 0 degrees, AND the motor encoder for motorb also reads less than 0 degrees. End of Section Download and run this program, and you will see that on curves going to the left, where the right motor caps out at 0 first, this program will stop sooner than the one that just waited for the left motor (remember, the left motor is traveling less when making a left turn). Take a step back, and look at what you have. Your robot is now able to perform a behavior using one sensor, while watching another sensor to know when to stop. Using the rotation sensor means that your robot can now travel for a set distance along the line, and be pretty sure of how far it s gone. These capabilities can be applied to more than just line tracking, however. You can now build any number of environmentally-aware decision-making behaviors, and run them until you have a good reason to stop. This pattern of while and conditional loops is one of the most frequently used setups in robot programming. Learn it well, and you will be well prepared for many roads ahead. Line Tracking 1
Speed Based on Volume Values & Assignment (Part 1)
Speed Based on Volume Values & Assignment (Part 1) The Sound Sensor is the last of the standard NXT sensors. In essence it s a kind of microphone which senses amplitude (how loud or soft a sound is), but
CONTENTS. What is ROBOTC? Section I: The Basics
BEGINNERS CONTENTS What is ROBOTC? Section I: The Basics Getting started Configuring Motors Write Drive Code Download a Program to the Cortex Write an Autonomous Section II: Using Sensors Sensor Setup
How To Program An Nxt Mindstorms On A Computer Or Tablet Computer
NXT Generation Robotics Introductory Worksheets School of Computing University of Kent Copyright c 2010 University of Kent NXT Generation Robotics These worksheets are intended to provide an introduction
understanding sensors
The LEGO MINDSTORMS NXT 2.0 robotics kit includes three types of sensors: Ultrasonic, Touch, and Color. You can use these sensors to build a robot that makes sounds when it sees you or to build a vehicle
After: bmotorreflected[port2]= 1; //Flip port2 s direction
Motors Motor control and some fine-tuning commands. motor[output] = power; This turns the referenced VEX motor output either on or off and simultaneously sets its power level. The VEX has 8 motor outputs:
ROBOTC Software Inspection Guide with Additional Help Documentation
VEX ROBOTICS COMPETITION ROBOTC Software Inspection Guide with Additional Help Documentation VEX Cortex Software Inspection Steps: 1. Cortex Firmware Inspection using ROBOTC 2. Testing Cortex Robots using
TETRIX Add-On Extensions. Encoder Programming Guide (ROBOTC )
Introduction: In this extension, motor encoders will be added to the wheels of the Ranger Bot. The Ranger Bot with Encoders will be programmed to move forward until it detects an object, turn 90, and move
The Basics of Robot Mazes Teacher Notes
The Basics of Robot Mazes Teacher Notes Why do robots solve Mazes? A maze is a simple environment with simple rules. Solving it is a task that beginners can do successfully while learning the essentials
2/26/2008. Sensors For Robotics. What is sensing? Why do robots need sensors? What is the angle of my arm? internal information
Sensors For Robotics What makes a machine a robot? Sensing Planning Acting information about the environment action on the environment where is the truck? What is sensing? Sensing is converting a quantity
How To Turn On A Robot On A Computer On A Black Box On A Pc Or Macbook
Written Directions for EV3 Line Follow (Heaviside Algorithm) Description: Given a black line and the light sensor on the EV3 robot, we want to have the light sensor read values from the reflected light.
Programming LEGO NXT Robots using NXC
Programming LEGO NXT Robots using NXC This text programming language derived from C language is bended together with IDE BricxCC on standard firmware LEGO Mindstorms. This can be very convenient for those,
Advanced Programming with LEGO NXT MindStorms
Advanced Programming with LEGO NXT MindStorms Presented by Tom Bickford Executive Director Maine Robotics Advanced topics in MindStorms Loops Switches Nested Loops and Switches Data Wires Program view
ROBOTC Programming Competition Templates
ROBOTC Programming Competition Templates This document is part of a software inspection guide for VEX v0.5 (75 MHz crystal) and VEX v1.5 (VEXnet Upgrade) microcontroller-based robots. Use this document
Teacher Answer Key: Measured Turns Introduction to Mobile Robotics > Measured Turns Investigation
Teacher Answer Key: Measured Turns Introduction to Mobile Robotics > Measured Turns Investigation Phase 1: Swing Turn Path Evaluate the Hypothesis (1) 1. When you ran your robot, which wheel spun? The
Microsoft Office Access 2007 Training
Mississippi College presents: Microsoft Office Access 2007 Training Course contents Overview: Fast, easy, simple Lesson 1: A new beginning Lesson 2: OK, back to work Lesson 3: Save your files in the format
Additional Guides. TETRIX Getting Started Guide NXT Brick Guide
Preparing the NXT Brick Now that a functional program has been created, it must be transferred to the NXT Brick and then run. This is a perfect time to take a look at the NXT Brick in detail. The NXT Brick
mouse (or the option key on Macintosh) and move the mouse. You should see that you are able to zoom into and out of the scene.
A Ball in a Box 1 1 Overview VPython is a programming language that is easy to learn and is well suited to creating 3D interactive models of physical systems. VPython has three components that you will
So you want to create an Email a Friend action
So you want to create an Email a Friend action This help file will take you through all the steps on how to create a simple and effective email a friend action. It doesn t cover the advanced features;
SE05: Getting Started with Cognex DataMan Bar Code Readers - Hands On Lab Werner Solution Expo April 8 & 9
SE05: Getting Started with Cognex DataMan Bar Code Readers - Hands On Lab Werner Solution Expo April 8 & 9 Learning Goals: At the end of this lab, the student should have basic familiarity with the DataMan
Conditionals: (Coding with Cards)
10 LESSON NAME: Conditionals: (Coding with Cards) Lesson time: 45 60 Minutes : Prep time: 2 Minutes Main Goal: This lesson will introduce conditionals, especially as they pertain to loops and if statements.
C.I. La chaîne d information LES CAPTEURS. Page 1 sur 5
LES CAPTEURS C.I. La chaîne d information The Touch Sensor gives your robot a sense of touch. The Touch Sensor detects when it is being pressed by something and when it is released again. Suggestions for
File: C:\Program Files\Robotics Academy\RobotC\sample programs\rcx\arushi\robot_
///////////////////////////////////////////////////////////////////////// // // This is the Program to control the Robot Head // Program By: Arushi Raghuvanshi // Date: Oct 2006 // /////////////////////////////////////////////////////////////////////////
Lego Robot Tutorials Touch Sensors
Lego Robot Tutorials Touch Sensors Bumper Cars with a Touch Sensor With a touch sensor and some robot programming, you can make your robot search its way around the room. It can back up and turn around
VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0
VISUAL GUIDE to RX Scripting for Roulette Xtreme - System Designer 2.0 UX Software - 2009 TABLE OF CONTENTS INTRODUCTION... ii What is this book about?... iii How to use this book... iii Time to start...
netduino Getting Started
netduino Getting Started 1 August 2010 Secret Labs LLC www.netduino.com welcome Netduino is an open-source electronics platform using the.net Micro Framework. With Netduino, the world of microcontroller
Downloading a Sample Program over USB
Downloading a Sample Program over USB This document is a guide for downloading and running programs on the VEX Cortex using the USB A-to-A cable. You will need: 1 VEX Cortex Microcontroller with one 7.2V
14:440:127 Introduction to Computers for Engineers. Notes for Lecture 06
14:440:127 Introduction to Computers for Engineers Notes for Lecture 06 Rutgers University, Spring 2010 Instructor- Blase E. Ur 1 Loop Examples 1.1 Example- Sum Primes Let s say we wanted to sum all 1,
EasyC. Programming Tips
EasyC Programming Tips PART 1: EASYC PROGRAMMING ENVIRONMENT The EasyC package is an integrated development environment for creating C Programs and loading them to run on the Vex Control System. Its Opening
Use fireworks and Bonfire night as a stimulus for programming
Learn it: Scratch Programming Make fireworks in Scratch Use fireworks and Bonfire night as a stimulus for programming Create an animated bonfire Design and program a working Catherine wheel Design and
r-one Python Setup 1 Setup 2 Using IDLE 3 Using IDLE with your Robot ENGI 128: Introduction to Engineering Systems Fall, 2014
r-one Python Setup 1 Setup The files needed are available in the Resources page of http://www.clear.rice.edu/engi128. You will need to setup two files: Python 2.7.8 and PySerial 1. Download Python 2.7.8.
EV3 Programming. Overview for FLL Coaches. A very big high five to Tony Ayad
EV3 Programming Overview for FLL Coaches A very big high five to Tony Ayad 2013 Nature s Fury Coach Call Basic programming of the Mindstorm EV3 Robot People Introductions Deborah Kerr & Faridodin Lajvardi
Programming the VEX Robot
Preparing for Programming Setup Before we can begin programming, we have to set up the computer we are using and the robot/controller. We should already have: Windows (XP or later) system with easy-c installed
HandPunch. Overview. Biometric Recognition. Installation. Is it safe?
HandPunch Overview Biometric Recognition Installation This section describes the HandPunch series of biometric scanners from RSI (Recognition Systems). These instructions apply to all the different HandPunch
YOSEMITE REGIONAL OCCUPATIONAL PROGRAM COURSE OUTLINE. COURSE TITLE: Robotics Engineering I ROP S1 Robotics Engineering I ROP S2
YOSEMITE REGIONAL OCCUPATIONAL PROGRAM COURSE OUTLINE COURSE TITLE: Robotics Engineering I ROP S1 Robotics Engineering I ROP S2 COURSE NUMBER: ROP71501 ROP71502 RECOMMENDED GRADE LEVEL: 11-12 ABILITY LEVEL:
Can Traffic Accidents be eliminated by Robots?
Can Traffic Accidents be eliminated by Robots? Elementary Science and Technology Grade 7 Teaching- learning Module for Unit Light and Sound Abstract This modules leads to a decision making activity related
Using Karel with Eclipse
Mehran Sahami Handout #6 CS 106A September 23, 2015 Using Karel with Eclipse Based on a handout by Eric Roberts Once you have downloaded a copy of Eclipse as described in Handout #5, your next task is
University of Hull Department of Computer Science. Wrestling with Python Week 01 Playing with Python
Introduction Welcome to our Python sessions. University of Hull Department of Computer Science Wrestling with Python Week 01 Playing with Python Vsn. 1.0 Rob Miles 2013 Please follow the instructions carefully.
North Texas FLL Coaches' Clinics. Beginning Programming October 2014. Patrick R. Michaud [email protected] republicofpi.org
North Texas FLL Coaches' Clinics Beginning Programming October 2014 Patrick R. Michaud [email protected] republicofpi.org Goals Learn basics of Mindstorms programming Be able to accomplish some missions
SolidWorks Building Blocks Tutorial. Toy-car
SolidWorks Building Blocks Tutorial Toy-car From the age of until the age of For use with SolidWorks Educational Release 2010-2011 This tutorial was developed for SolidWorks Worldwide and may be used by
ROBOTICS AND AUTONOMOUS SYSTEMS
ROBOTICS AND AUTONOMOUS SYSTEMS Simon Parsons Department of Computer Science University of Liverpool LECTURE 3 PROGRAMMING ROBOTS comp329-2013-parsons-lect03 2/50 Today Before the labs start on Monday,
Using the VEX Cortex with ROBOTC
Using the VEX Cortex with ROBOTC This document is a guide for downloading and running programs on the VEX Cortex using ROBOTC for Cortex 2.3 BETA. It is broken into four sections: Prerequisites, Downloading
Central England People First s friendly guide to downloading
Central England People First s friendly guide to downloading What is Skype? Skype is a computer programme that turns your computer into a telephone. This means that you can speak to other people using
Introduction to Programming with Xojo
Introduction to Programming with Xojo IOS ADDENDUM BY BRAD RHINE Fall 2015 Edition Copyright 2013-2015 by Xojo, Inc. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike
Mobile App Tutorial Animation with Custom View Class and Animated Object Bouncing and Frame Based Animation
Mobile App Tutorial Animation with Custom View Class and Animated Object Bouncing and Frame Based Animation Description of View Based Animation and Control-Model-View Design process In mobile device programming,
Would You Like To Earn $1000 s With The Click Of A Button?
Would You Like To Earn $1000 s With The Click Of A Button? (Follow these easy step by step instructions and you will) This Version of the ebook is for all countries other than the USA. If you need the
Premier Software Portal
Premier Software Portal To configure your web booking firstly go to our web site at http://www.premiersoftware.co.uk Click the Client Login link at the top right then enter your serial number and postcode
Setting Up And Sharing A Wireless Internet Connection
In this chapter Sharing an Internet Connection Issues and Opportunities Different Ways to Share Sharing Your Internet Connection with Others: Creating Your Own Public Wi-Fi Hot Spot 7 Setting Up And Sharing
Troubleshooting / FAQ
Troubleshooting / FAQ Routers / Firewalls I can't connect to my server from outside of my internal network. The server's IP is 10.0.1.23, but I can't use that IP from a friend's computer. How do I get
Python Loops and String Manipulation
WEEK TWO Python Loops and String Manipulation Last week, we showed you some basic Python programming and gave you some intriguing problems to solve. But it is hard to do anything really exciting until
How to Build a Simple Pac-Man Game
How to Build a Simple Pac-Man Game For today's program, we are going to build a simple Pac-Man game. Pac-Man was one of the very first arcade games developed around 1980. For our version of Pac-Man we
Moses. July 11-12, 2015. God has a plan for us. Exodus 2-4; Jeremiah 29:11
rd 3 5 July 11-12, 2015 Moses Exodus 2-4; Jeremiah 29:11 God has a plan for us. th Connect Time (20 minutes): Five minutes after the service begins, split kids into groups and begin their activity. Remember
The second goal is to provide a list of tips, tricks, and best known methods that have been discovered over the life span of the course.
ECE1882 LEGO NXT Brick Programming Guide Introduction This document was written with two goals in mind. The first is to orient a new user to the graphical programming language used in the MindSpring NXT
Contents. Front Derailleurs... 2. Part One - Planning... 2 I. Objectives... 2 II. Materials Needed... 2 III. Setting...2 IV. Evaluation...
Contents... 2 Part One - Planning... 2 I. Objectives... 2 II. Materials Needed... 2 III. Setting...2 IV. Evaluation... 2 Part Two - Activity Instructions... 3 Steps to Adjusting and Replacing... 3 Disassemble...
Why Top Traders Use The Relative Strength Comparison (RSC) & Desperately Want To Keep It A Secret!
Why Top Traders Use The Relative Strength Comparison (RSC) & Desperately Want To Keep It A Secret! Discover The Best Performing Sectors & The Strongest Stocks In Those Sectors www.meta-formula.com We both
Solar Tracking Controller
Solar Tracking Controller User Guide The solar tracking controller is an autonomous unit which, once configured, requires minimal interaction. The final tracking precision is largely dependent upon the
How to get the most out of Windows 10 File Explorer
How to get the most out of Windows 10 File Explorer 2 Contents 04 The File Explorer Ribbon: A handy tool (once you get used to it) 08 Gain a new perspective with the Group By command 13 Zero in on the
Get to Know Golf! John Dunigan
Get to Know Golf! John Dunigan Get to Know Golf is an initiative designed to promote the understanding the laws that govern ball flight. This information will help golfers develop the most important skill
Chapter 2. Making Shapes
Chapter 2. Making Shapes Let's play turtle! You can use your Pencil Turtle, you can use yourself, or you can use some of your friends. In fact, why not try all three? Rabbit Trail 4. Body Geometry Can
Getting Started in Tinkercad
Getting Started in Tinkercad By Bonnie Roskes, 3DVinci Tinkercad is a fun, easy to use, web-based 3D design application. You don t need any design experience - Tinkercad can be used by anyone. In fact,
Event processing in Java: what happens when you click?
Event processing in Java: what happens when you click? Alan Dix In the HCI book chapter 8 (fig 8.5, p. 298), notification-based user interface programming is described. Java uses this paradigm and you
Team Foundation Server 2013 Installation Guide
Team Foundation Server 2013 Installation Guide Page 1 of 164 Team Foundation Server 2013 Installation Guide Benjamin Day [email protected] v1.1.0 May 28, 2014 Team Foundation Server 2013 Installation Guide
Welcome to the Real Estate Agent Marketing Plan Course and things are going to start to get real now.
Welcome to the Real Estate Agent Marketing Plan Course and things are going to start to get real now. This workbook accompanies the 1st ebook, Selling the Art of Real Estate, in this marketing plan course.
Table Of Contents READ THIS FIRST! 3 How To Create Your Very First YouTube Video Ad In Less Than 30 Minutes! 4
Table Of Contents READ THIS FIRST! 3 How To Create Your Very First YouTube Video Ad In Less Than 30 Minutes! 4 Step 1: Find The Perfect Target Audience For Your Ads 4 Step 2: Refine Your Target Lists 7
What Is an Electric Motor? How Does a Rotation Sensor Work?
What Is an Electric Motor? How Does a Rotation Sensor Work? Electric Motors Pre-Quiz 1. What is an electric motor? 2. Name two applications (things) you use every day that use electric motors. 3. How does
Testing Rails. by Josh Steiner. thoughtbot
Testing Rails by Josh Steiner thoughtbot Testing Rails Josh Steiner April 10, 2015 Contents thoughtbot Books iii Contact us................................ iii Introduction 1 Why test?.................................
#include <Gamer.h> Gamer gamer; void setup() { gamer.begin(); } void loop() {
#include Gamer gamer; void setup() { gamer.begin(); void loop() { Gamer Keywords Inputs Board Pin Out Library Instead of trying to find out which input is plugged into which pin, you can use
The Social Accelerator Setup Guide
The Social Accelerator Setup Guide Welcome! Welcome to the Social Accelerator setup guide. This guide covers 2 ways to setup SA. Most likely, you will want to use the easy setup wizard. In that case, you
An Introduction to MPLAB Integrated Development Environment
An Introduction to MPLAB Integrated Development Environment 2004 Microchip Technology Incorporated An introduction to MPLAB Integrated Development Environment Slide 1 This seminar is an introduction to
Lesson 26: Reflection & Mirror Diagrams
Lesson 26: Reflection & Mirror Diagrams The Law of Reflection There is nothing really mysterious about reflection, but some people try to make it more difficult than it really is. All EMR will reflect
FrontDesk Installation And Configuration
Chapter 2 FrontDesk Installation And Configuration FrontDesk v4.1.25 FrontDesk Software Install Online Software Activation Installing State Related Databases Setting up a Workstation Internet Transfer
Your EdVenture into Robotics You re a Programmer
Your EdVenture into Robotics You re a Programmer Introduction... 3 Getting started... 4 Meet EdWare... 8 EdWare icons... 9 EdVenture 1- Flash a LED... 10 EdVenture 2 Beep!! Beep!!... 12 EdVenture 3 Robots
Training Guide For 7960 & 7940 Series Cisco IP Phones
Training Guide For 7960 & 7940 Series Cisco IP Phones Prepared by: Corporate Technologies, LLC 2000 44 th Street SW, Suite 100 Fargo, ND 58103 (701) 893-4000 1 Table of Contents: Section I: GETTING STARTED
MSc in Autonomous Robotics Engineering University of York
MSc in Autonomous Robotics Engineering University of York Practical Robotics Module 2015 A Mobile Robot Navigation System: Labs 1a, 1b, 2a, 2b. Associated lectures: Lecture 1 and lecture 2, given by Nick
Lesson 8: Simon - Arrays
Lesson 8: Simon - Arrays Introduction: As Arduino is written in a basic C programming language, it is very picky about punctuation, so the best way to learn more complex is to pick apart existing ones.
What Is Pay Per Click Advertising?
PPC Management can be very confusing and daunting for newcomers to the field. Money is on the line and it s a very competitive arena where lots of people are trying to capitalize on the same keywords for
G-100/200 Operation & Installation
G-100/200 Operation & Installation 2 Contents 7 Installation 15 Getting Started 16 GPS Mode Setup 18 Wheel Sensor Mode Setup 20 Fuel Calibration 23 Basic Operation 24 Telemetery Screen 27 Entering a Distance
Club Accounts. 2011 Question 6.
Club Accounts. 2011 Question 6. Anyone familiar with Farm Accounts or Service Firms (notes for both topics are back on the webpage you found this on), will have no trouble with Club Accounts. Essentially
The first program: Little Crab
CHAPTER 2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if-statement In the previous chapter,
CHAPTER 1 HelloPurr. The chapter covers the following topics:
CHAPTER 1 HelloPurr This chapter gets you started building apps. It presents the key elements of App Inventor, the Component Designer and the Blocks Editor, and leads you through the basic steps of creating
Mobile Robotics I: Lab 2 Dead Reckoning: Autonomous Locomotion Using Odometry
Mobile Robotics I: Lab 2 Dead Reckoning: Autonomous Locomotion Using Odometry CEENBoT Mobile Robotics Platform Laboratory Series CEENBoT v2.21 '324 Platform The Peter Kiewit Institute of Information Science
Ansur Test Executive. Users Manual
Ansur Test Executive Users Manual April 2008 2008 Fluke Corporation, All rights reserved. All product names are trademarks of their respective companies Table of Contents 1 Introducing Ansur... 4 1.1 About
Measuring Resistance Using Digital I/O
Measuring Resistance Using Digital I/O Using a Microcontroller for Measuring Resistance Without using an ADC. Copyright 2011 John Main http://www.best-microcontroller-projects.com Page 1 of 10 Table of
Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game
Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game Directions: In mobile Applications the Control Model View model works to divide the work within an application.
Samsung Xchange for Mac User Guide. Winter 2013 v2.3
Samsung Xchange for Mac User Guide Winter 2013 v2.3 Contents Welcome to Samsung Xchange IOS Desktop Client... 3 How to Install Samsung Xchange... 3 Where is it?... 4 The Dock menu... 4 The menu bar...
Classroom Activities for the Busy Teacher: EV3
Classroom Activities for the Busy Teacher: EV3 Table of Contents Chapter 1: Introduction... 1 Chapter 2: RileyRover Basics... 5 Chapter 3: Keeping Track... 13 Chapter 4: What is a Robot?... 17 Chapter
The Mechanics of Arrow Flight 101 By Daniel Grundman Flex-Fletch
The Mechanics of Arrow Flight 101 By Daniel Grundman Flex-Fletch Thunk! The arrow you just released from your bow has hit its target. Or has it? Due to a number of factors, your arrow may or may not have
STRING TELEPHONES. Education Development Center, Inc. DESIGN IT! ENGINEERING IN AFTER SCHOOL PROGRAMS. KELVIN Stock #651817
STRING TELEPHONES KELVIN Stock #6587 DESIGN IT! ENGINEERING IN AFTER SCHOOL PROGRAMS Education Development Center, Inc. DESIGN IT! Engineering in After School Programs Table of Contents Overview...3...
Basic ESXi Networking
Basic ESXi Networking About vmnics, vswitches, management and virtual machine networks In the vsphere client you can see the network diagram for your ESXi host by clicking Networking on the Configuration
N Ways To Be A Better Developer
N Ways To Be A Better Developer Lorna Mitchell and Ivo Jansch This book is for sale at http://leanpub.com/nways This version was published on 2015-01-06 This is a Leanpub book. Leanpub empowers authors
Microsoft Excel Tips & Tricks
Microsoft Excel Tips & Tricks Collaborative Programs Research & Evaluation TABLE OF CONTENTS Introduction page 2 Useful Functions page 2 Getting Started with Formulas page 2 Nested Formulas page 3 Copying
Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine
Blender Notes Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine The Blender Game Engine This week we will have an introduction to the Game Engine build
Your EdVenture into Robotics You re a Programmer
Your EdVenture into Robotics You re a Programmer meetedison.com Contents Introduction... 3 Getting started... 4 Meet EdWare... 8 EdWare icons... 9 EdVenture 1- Flash a LED... 10 EdVenture 2 Beep!! Beep!!...
2 The first program: Little Crab
2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if statement In the previous chapter, we
Generating Leads While You Sleep
Generating Leads While You Sleep May 2013 CommuniGator 2013 Page 1 of 14 Contents Introduction... 3 Setting up the right infrastructure... 4 Page Scoring, Link Scoring and Lead Scoring... 7 Generating
Getting Started with WebSite Tonight
Getting Started with WebSite Tonight WebSite Tonight Getting Started Guide Version 3.0 (12.2010) Copyright 2010. All rights reserved. Distribution of this work or derivative of this work is prohibited
