COSC 422/524
Winter 2020

If you need to speak to me, email , phone. skype are all OK. Let me know.

Programming Projects for the rest of the semester

Do as many of these as you can. Project 6 and 7 are REQUIRED. Project 8 and 9 gets you extra points (and can improve grades)

I am assuming we will not meet in person again this semester. This may change.

To Submit Your Project:
1) You must make a video of your robot doing the assigned task. This vide MUST included an introduction by you (facing the camera) stating which
project this is and what your robot willdo. Then, without stopping the camera, you should pan to your robot and have it do the required task. You should post
this video on YouTube and send me the link along with a listing of your code.

IMPORTANT: You need to get your robot moving. For now, we will assume a 50% duty cycle. All programs should employ TIMER0 for pulsing the motor. Your program
should have TIMER0 implement a 1 millisecond delat ( a prescaler of 4:1 should accomplish this). So a 50% duty cycle would be accomplished via

top
    set_motor_on
    call delay_1_milli
    set_motor_of
    call delay_1_milli
    goto top

Note that this code has a period of 2 milliseconds or a frequency of 500hz.


Project 6) (Tentative due date: Monday March 23)  Get your robot to move forward. Easy. Nothing else.

Project 7) (Tentative due date: Monday March 30) Control your robot with the remote control. A '1' on the keypad makes the robot go forward, a '2' makes the robot stop and a '3' makes the robot go in reverse (at a 50% duty cycle).

Project 8) Implement turns on your robor. That is, your robot should be able to go forward, go in reversem turn left and turn right all via remote control. Since we didn't all agree
on how to implement turns, I leave it to your creativity. You should also implement a stop feature.

Project 9) In addition to the functionaly of project 8), have your robot respond to the bump sensor (the antennaes). If the antennae gets "bumped" an interrupt should occur. The robot should stop, back up (reverse)
for a foot or so, turn left or right 45%, and then continue forward. Your program should employ the interrupts thst occur on pins B4,B5,B6,B7.