Focused on learning Python, using hardware: Adafruit Circuit Playground, Raspberry Pi, Jetson Nano, & other Python-based Microcontrollers & Microprocessors to build Rovers & Robots
Author: Jim Burnham - TopClown@STEAMClown.org. License: Distributed as Open Source.
In this Unit/Module is focused on Robots & Rovers, primarily Rovers, and features using Python, Raspberry Pi or other Python capable devices/platforms. These labs will focus on building the Rover power infrastucture, implementing drive capability with Python, and adding features, sensors, & Autonoumus and telle Operated driving.
A Cap Stone project will be updating a Robot Rover to run with a Raspberry Pi as it's primary controller. The goal is to be able to control the Rover over the Internet with IoT, and eventually run AI training to let the Rover Autonomously navigate
You'll work on developing programs and implementing them using both a browser interface as well as the Raspberry Pi console-based integrated development environment (IDE), and a graphical user interface (GUI) based interfaces. You'll work primarily with Python, but some other languages and interfaces will also be used.
You will also spend some time learning about and gaining experience in the best practices of software development, such as top-down design, object-oriented design, code debug, code validation, corner case testing, and technical/end-user documentation.
I'm a huge supporter of Open Source and Creative Commons resources. This is another way of saying Free, Equitable and Accessible resources... 📽️ 🎧 📰 📖 📝🛠️ 🖼️ - Want to Support Me on this endeavor?
Let's get started... Its going to be a wild, fun, awesome ride...
Web Site: WWW.STEAMCLOWN.ORG | Contact: TopClown@STEAMClown.org | LinkedIn: Jim Burnham | You Tube: jimTheSTEAMClown | TikTok: STEAM Clown
Consider Supporting my Open Source STEAM Curriculum Development -- Check Out My How To Help Page - Patreon, PayPal, Venmo, My Amazon Wishlist
Note: TEACHERS!!!! If you are going to use any of these lessons or labs, please let me know. I would really like to understand how you are using this material. I want to know what works, what does not work, what would you like me to add, and how I can make it better. If you changed something, let me know, because it's probably a good idea and you should share it with me, so I can add it and share with everyone else.
This Module or lesson is how I teach in my class. Many of the lessons might be specific to my class, but you could probably adjust them for your class. I'll try to make them a neutral as I can, so they can be used in any Mathematics, Physics, Computer Science, or any other Engineering / Technology class. Let me know how I can make that better. I'll try to keep this unit current and relevant. Please let me know if any resource links are broken or not accessible.
Send me email at TopClown@STEAMClown.org You can also Join the STEAM Clown's Mailing List. If you want to Unsubscribe, click my Unsubscribe From Mailing List link
I would like to thank <Your Company or Organization Here> for their generous support of my classroom and curriculum development. <Your Company or Organization Here> has <Your value proposition, call to action, & related content and message>
(If you would like to sponsor this, or other Modules or presentation, please contact TopClown@STEAMClown.org or check out my "How To Help Page"
If you would like to sponsor other Curriculum Development, check out my "How To Help Page" or contact TopClown@STEAMClown.org
Primer: "Aaron, I can imagine no way in which this thing could be considered anywhere remotely close to safe. All I know is I spent six hours in there and I'm still alive... You still want to do it?"
As with any activity, please make sure you are using appropriate safety equipment. If you are coding, writing, reading, or working a lab, make sure you stand up and stretch every hour or so, Please consider any safety issues connecting to a Raspberry Pi, Arduino, computers and other electronic equipment.
Robots & Rovers?
Algorithm - A step-by-step procedure for solving a problem or performing a task. Both Python programming and hardware control rely on algorithms to define system behavior.
Calling Out a great resources & giving credit: Much of my Python coding material is primarily derived from an Awesome class by Charles R. Severance, and his collateral can be found on the https://www.py4e.com/ site. He has a Copyright - Charles R. Severance (www.dr-chuck.com) of the University of Michigan School of Information and has, like me, made his material available under a Creative Commons Attribution License. Also, I'm referencing and using the text book, "Automate the Boring Stuff with Python, 2nd Edition: Practical Programming for Total Beginners" by Al Sweigart. If you use mine and/or their collateral, please maintain your collateral with the attribution requirements for our licenses.
8.n.n.n - Robots & Rovers - Reporting A Status - NeoPixels - 📰 Slide Presentation
8.n.n.n - Robots & Rovers - Reporting A Status - NeoPixels - 📖 Lesson Tutorial
Lesson 1 - Raspberry Pi - Introduction - Programming The Raspberry Pi - Getting Started With Python-SimonMonk
This is the start of the Raspberry Pi and Python Module. This Lesson is an introduction to the physical Raspberry Pi and the Python language. As part of class, you will receive a Raspberry Pi and will be introduced to the “textbook” we will be using, Programming the Raspberry Pi – Getting Started with Python by Simon Monk and Think Python: How to Think Like a Computer Scientist (HTML) by Allen B. Downey (other text are fine, and some are referenced in lesson and the resources section). This lesson will include the following activities: Research on what you can do with a Raspberry Pi, Instruction Lecture, where the textbook is introduced, where you can read chapter 1 and take a quiz; Then you will get a Raspberry Pi checked out to you for the semester and you will be lead through the process of setting up your Raspberry Pi, and then maybe even having time to play Minecraft...
This lesson focused on the Raspberry Pi Desktop menus and the Linux Bash Shell in the Command Line Terminal . You learn and will understand how to navigate the desktop menus, use get-apt to update tools and applications, have experience using and learning about some basic command line commands on their Raspberry Pi’s.
Lesson 3 - What Is The Shell - More Command Line (update lesson link)
Lesson 4 - Raspberry Pi - Introduction to the Raspberry Pi IDLE3 (update lesson link)
Lesson 5 - Python - Introduction (update lesson link)
Lesson 6 - Python - Shell - Runtime Interpreter (update lesson link)
Lesson 7 - Python - My First Python Program (update lesson link)
Lesson 8 - Python - Conditional (update lesson link)
Lesson 9 - Python - Functions (update lesson link)
Lesson 10 - Python - Loops & Iterations (update presentation - py4e - lessons)
Lesson 11 - Python - Top Down Design (update lesson link)
Lesson 12 - Python - Strings (update presentation - py4e - lessons)
Lesson-13 - Python - Files (update lesson link)
Lesson 14 - Python - Lists (update presentation - py4e - lessons)
Lesson 15 - Python - Dictionaries (update presentation - py4e - lessons)
Lesson 16 - Python - Tuples (update presentation - py4e - lessons)
Lesson 17 - Python - Regular Expressions (update presentation - py4e - lessons)
Lesson 18 - Python - HTTP (update presentation - py4e - lessons)
Lesson 19 - Python - Web Services (update presentation - py4e - lessons)
Lesson 20 - Python - Objects (update presentation - py4e - lessons)
Lesson 21 - Python - Databases (update presentation - py4e - lessons)
Lesson 22 - Python - Data Visualization (update presentation - py4e - lessons)
Lesson 23- Python - Whats Next?
How To Raspberry Pi - Site has lots of tutorials like Instructables...
Raspberry Pi Resources on Kerry Bruce's Google drive
Cheat sheet - https://programmingwithmosh.com/python/python-3-cheat-sheet/
good tutorial series - Introduction and Parts - Raspberry Pi and Python tutorials p.1 - maybe assign this as home work when we take our Raspberry Pi's home
Element 14 - Getting Started With The Raspberry Pi 3
How To Log Into Python Learning Sites
TryPython - Fun Interactive Class (you have to pay now)
CodeCademy - Learn Python
Python Introduction - Some python and some cygwin command line
Lesson 1 - Running The Python Interpreter
Lesson 2 - Getting Ready to Write a Program
Lesson 3 - Writing and Running a Program
jim.the.STEAM.Clown's Github - https://github.com/jimTheSTEAMClown/Python-Code
Adafruit Raspberry PI & Python Project Tutorials <-- lots of Python specific projects
ideone - https://ideone.com/
codepad - http://codepad.org/
The Python Tutorial - Good place to Start
Official Pi Project Book - magiPi link to Raspberry Pi projects
Full Stack Python - Some useful Full Stack Videos too...
Introduction Slide Deck for Python - Mr Ganesh Bhosale
Random Resource Links - Stuff to review and sort...
This is where my Raspberry Pi Resource will go... they will show up in about 2 weeks (Jan 7 2019)... in the mean time you can see my Python Resource page from last year 2017-2018 <-- this will go away as soon as I have made this organizational update
If you are a teacher and want to connect and teach this Lesson or Module, discuss how I teach it, give me feedback, please contact me at TopClown@STEAMClown.org
To access this Lesson Plan and the Teacher collaboration area, you will have needed to connect with me so I can Share the content with you. Please go to the Teachers & Partner Page, check out my Licensing and fill out my Collaboration and Curriculum Request Form. I'll review and then grant you access to the requested areas and lesson plans if they exist.
If you have questions or feedback on how I can make a presentation, lesson, lab better please give use my Feedback Form.
I’ll work on getting these in, but it’s the last thing I want to work on :-) When I have them updated, I’ll move to the top of the Lesson Plan.
NGSS: <list standard numbers>
California CTE Standards: <list standard numbers>
Related Instructional Objectives (SWBAT): <list standard numbers>
CCSS: nnn, RSIT: nnn, RLST: nnn, WS: nnn, WHSST: nnn, A-CED: nnn, ETS: nnn <list standard numbers>
Main Standard:
Priority standards:
National Standards:
Reference Text Book - Links
Reference Sites -
add to resources:
Pi My Life - https://pimylifeup.com/
Pi My Life Up - Pi My Life Up - Raspberry Pi Project Resources - STEAM Clown Library
Pi My Life Up - Pi My Life Up - Arduino Project Resources - STEAM Clown Library
move or delete
Introduction to Python, it's history, creators and creating your first program.
8.1.0.1.1 - Python/IoT - History & Introduction - 📰 Slide Presentation
8.1.0.1 - Python - History & Introduction - STEAM Clown - 📖 Lesson Tutorial (Coming Soon)
8.1.0.3 - Python/IoT - Sign Up For replit.com - 📰 Slide Presentation
Browser based Python Shell - https://www.python.org/shell/ - 🛠️ LAB Activity - one command at a time
Browser based Python interpreter - replit.com - 🛠️ LAB Activity - Signup for free account
Key: 📰 Slides / Audio 🎧 / 📽️▶️ Video/YouTube / 🎧▶️📽️ Audio/Video / ✨ Resources / 🖼️ Tutorial / 📖 Reading Activity / 📝 Writing Activity / 📖 📝 Reading/Writing / 📟 Coding / 🛠️ LAB Activity / 🚀 Quiz / 🔎 Review / ✔️ Mastery Check / ✍️ Sign Up /🍕 Extra Credit / 🕸️ Web Links / 👩🏽🎓🧑🏽🎓🧑🏿🎓👩🏫 Class / 🏵️📜📃 Certificate / 🗂️ 📈 Collecting Survey Data
/🧟 Review / 🦾 Practice / 🆙Level Up /
🎚️🦑📤🎯 🚧
- 🦑 Special Project -
Assignment Type: ⚓ Establishing (Minimum Standard) / ⛏️ Developing (Digging Deeper) / 💎 Aspiring (Putting It Together)
This is an ⚓ Establishing Assignment (Minimum Standard) - "Everyone Do" Assignment
This is an ⛏️ Developing (Digging Deeper) - "Everyone Should Do, To Stretch" Assignment
This is an 💎 Aspiring (Putting It Together) - "When you have done the ⚓ Establishing and⛏️ Developing" Assignment
🚀 Formative Quiz - 🔎 Review
🚀 Quiz -🔀 Mastery Path
🚀 Summative Quiz -✔️ Skills Mastery Check
Quiz - verify that they are all listed as a "Formative", "Mastery Path", or "Summative"
🚀 Formative Quiz - These are quizzes that the students can take a few times. I have them either set for unlimited times, or 3-5 times, where the final score is their average. The idea is that these Formative Quizzes are designed for students to learn and master a skill. while I want them to ger 100%, and when it's set to unlimited tries, the student should get 100% eventually. When the quiz is set to 3-5 tries with an average, then they should be prepared and should take the quiz seriously. I set the quiz to not show the right answer, but I do let them see their wrong answer. I also put the explanation of the right and wrong answer in the right and wrong answer prompt for each question. That way they can see why they got the answer wrong and learn from that experience.
8.1.0.3.2.4 - Python - Ch 3 - Functions - Quiz #2 -Built-In Functions - 🚀 Formative Quiz
🚀 Quiz -🔀 Mastery Path - These Mastery path quizzes are to be presented after the student has had a chance to do some labs and some Formative quizzes. The goal is to let students have 2 chances to take this quiz, and take the average of the 2 attempts. Based on the average, they will be presented with a Canvas Mastery Path, where they will have an option for take additional quiz and assignments to help with remediation. This will get them ready to take the Summative Quizzes.
8.1.0.3.3.1 - Python - Ch 3 - Functions - Mastery Quiz #1 - 🚀 Quiz -🔀 Mastery Path
🚀 Summative Quiz -✔️ Skills Mastery Check - These Mastery path quizzes are to be presented after the student has had a chance to do some labs and some Formative quizzes. The goal is to let students have 2 chances to take this quiz, and take the average of the 2 attempts. That will be their final module/subject topic grade.
8.1.0.3.3.1 - Python - Ch 3 - Functions - Skills Mastery Check Quiz #1 - 🚀 Summative Quiz -✔️ Skills Mastery Check