I can compose a higher-ordered algorithm.
I can update code on my Raspberry Pi.
I can make short, descriptive commit messages.
Your GitHub repo will be regularly reviewed.
You will demonstrate your capacity to control your robot.
You will be asked regular comprehension questions about Python and deployment.
Visit the project and fork it
Open Visual Studio Code and press CTRL + SHIFT + P
Use the git: clone command and paste your GitHub url. You should now see your code on your editor. Explore student.py
and teacher.py
.
Use SSH (on Mac) or PuTTy (on Windows) to connect to your robot
Remove the Piggy
folder if it's already there: rm -rf Piggy
Now we'll clone your project on the robot too with git clone https://github.com/YOURUSERNAME/Piggy
Change to your project folder: cd Piggy
Run the app: python3 student.py
You you make changes to your app and want to update the code on your robot, we first need to send the code from our computers to GitHub.
Now we'll remote control our robots using SSH. We'll use Linux commands to pull the updated code down from GitHub.
Make sure you're in the right folder: cd Piggy
Pull your updated code: git pull origin master
Run your app: python3 student.py
If it doesn't run, study the error.
We'll need to configure your class variables.
If the servo wasn't mounted perfectly, the midpoint won't be 1500
. But that's rarely the case. We should adjust this magic number to fit your particular robot.
Sometimes one motor will perform faster than the other, giving the robot a noticeable veer. We can try to correct for this drift by adjusting the motor power.
Check out what commands are available from the API that's provided for you. These are the commands you're inheriting.
Your dance
method should read as close to regular English as possible. The nitty-gritty commands are all kept in the particular methods being called in your dance
algorithm. So your dance
method should just call a handful of moves. Within those moves, you'll use the specific motor commands below and get into the nitty-gritty of robot control.
deg_fwd(angle)
- how many degrees do you want your wheels to rotate? You need to pass the angle
turn_to_deg(angle)
- rotates to the given angle as calculated by the piggy's gyroscope
turn_by_deg(angle)
- turns relative to it's current heading. Positive values rotate right and negative rotate left
fwd
- powers on your robot to drive forward. You'll need to use self.stop()
to power off the motors
right
- by default, self.right()
will give the left motor 90% power and the right 0% which rotates right. You can use kwargs to adjust the power such as self.right(primary=90, counter=-90)
, which will spin the robot in place
left
- same as right but reversed.
back
- same as fwd but in reverse.
servo
- moves the servo (plugged into servo1) to the given value (use 1000 - 2000)
stop
- sets motor power to zero
read_distance
- returns the distance from the distance sensor (plugged into I2C port) in millimeters
get_heading
- returns the gyroscope's value