* START on p. 270 * step 1 - those are two axle-pins-with-friction on the top right and 2 axle-joiners-perpendicular-3L on the bottom left * step 2 - those are 2 3-beams on the bottom * step 3 - beware! the pin-3L-double goes BETWEEN the two axle-joiners-perpendicular-with-two-holes! AND note that the bush-half-smooth goes UNDER the axle-pin-with-friction! * step 4 - that's a 3-beam on the bottom ...I believe this is a kind of castor wheel, maybe. NOW THE ROBOT's INSTRUCTIONS ARE BACKWARDS FROM WHAT WE NEED TO USE THE COMPASS SENSOR!!! * step 5 - this instruction is incomprehensible anyway, but it is also backwards for what we need. ATTACH the "castor wheel" to the BACK of the brick, just behind the LCD screen, so it straddles between the 2 sets of 3 holes. Or, come and see my robot as an example. * step 6 - those are two axle-pins-with-friction on the bottom right. We don't have the liftarms 1x7 bent shown -- we have liftwarms 9 bent instead. They SEEM to work, fortunately... EXCEPT, instead of placing them in the 3-holes on either side of the LCD screen, follow the instructions as if the brick were shown the OTHER way (as if the LCD screen were AWAY from you instead of TOWARD you). (one liftarm-and-pieces on either side of the brick, with axle-pin, then pin, then pin attaching the liftarm to the brick) Or, come and see my robot as an example. * step 7 - again, do this step as if the LCD screen were facing AWAY from you instead of TOWARD you, but everything ELSE is as shown. And I *think* it is OK to push the 5-axles all the way through the motors. * step 8 - I used the BIG wheels and tires here -- what is shown here are medium wheels and tires we don't have. * step 9 - yes, you only have 1 more pin-3L-double! if I don't find another for you, can kluge this by using two pin-longs-with-friction in its place on one of the sides. And yes, you are placing this across the top of the brick, above the LCD screen, connecting the two motors to each other. NOW, STOP. DON'T GO to P. 274, JUMP to p. *324* * Figure 17.8 - now attaching a compass sensor to our carpet rover! * that's a 15-beam, here. * and, notice how your rover now does look like the rover in this figure?! * you should be able to attach it as shown. * I used the short cable to connect the compass sensor to sensor port 1, and the medium cables to attach the motors to motor ports B and C. * NOW you are ready to proceed to the deprecated-but-possibly-working code posted, only slightly adapted from the similarly named versions in the course text: * FOR ALL OF THESE: measure the tire diameter and track width (the distance between the tires), and use those measurements in the DifferentialPilot and CompassPilot constructors! (I, um, didn't have a ruler with me when I tested them before posting them...) * you may want to adapt the units of the Blighbot applications according to the units you use for these two measures! * of course, include all participating team members' names in an adapted-by @author in each class' javadoc comment -- and include the last-modified date in a @version, too. * FIRST create and run CalibrateCompass.java (original on p. 324) * THEN create and run HandHeldCompass.java (original on p. 325) * THEN (for comparison) create and run the Blighbot.java (using JUST DifferentialPilot) * (original on p. 321, and ALSO look at Figure 17.7, the obstacle course it is allegedly supposed to be navigating -- * I cut the units by 75% to try to test this on my home office floor...) * THEN create and run the BlighbotCompass.java (this is using the deprecated CompassPilot, original on p. 326) * has units likewise cut by 75% -- is supposed to be navigating the same course as Blighbot.java. ...allegedly more accurately! What do you think? * ONCE you have run these -- SUBMIT them all, with homework number of 42 (Project 4 Stage 2) * AND: create ANOTHER version of each, running a course of a DIFFERENT shape and size of your choice -- Blighbot2.java, BlighbotCompass2.java -- ...which was more accurate for your course? ...submit your versions of these with homework number 43 (Projec 4 Stage 3). * [I'm still deciding if teams will demo these to the class -- it might happen!]