// steerbot1_hassoun.nqc // a simple bumper car with rack & pinion steering // no events are used #define CENTER SENSOR_1 #define EYE SENSOR_2 #define STEER OUT_A #define DRIVE OUT_C #define FULL_TURN_TIME 50 #define STRAIGHT_TIME 50 void right() { Fwd(STEER); OnFor(STEER, FULL_TURN_TIME); } void left() { Rev(STEER); OnFor(STEER, FULL_TURN_TIME); } void center() { Toggle(STEER); On(STEER); until(CENTER==1); Off(STEER); } task send_signal() { while(true) { SendMessage(85); //use 85 or 255 value for more IR activity!! Wait(10); } } task main() { int lastlevel; // set up sensors and event SetSensor(CENTER, SENSOR_TOUCH); SetSensorType(EYE, SENSOR_TYPE_LIGHT); SetSensorMode(EYE, SENSOR_MODE_RAW); // align wheels and drive forward left(); center(); On(DRIVE); // use high power communication SetTxPower(TX_POWER_HI); start send_signal; while(true) { lastlevel = EYE; if(EYE < lastlevel - 100) { // back up while turning Rev(DRIVE); right(); Wait(STRAIGHT_TIME); // effect? // forward while turning other direction Fwd(DRIVE); left(); // center steer center(); } } }