Seeing, Processing & Controlling The World With Python
Author: Jim Burnham -Β TopClown@STEAMClown.org.Β License: Distributed as Open Source.Β
In this course, you will learn primarily Python, some Linux, work some hardware labs using Adafruit Circuit Playground, Raspberry Pi's and other Python-based Microcontrollers & Microprocessors.Β You will understand how to use Python to interact with Sensors, Motors, and the network and web pages.Β You will have some lessons and labs focused on the Internet of Things (IoT).
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 | TikTok: STEAM Clown
Consider Supporting my Open Source STEAM Curriculum Development -- Patrion: Jim The STEAM ClownΒ | Amazon: Amazon Classroom Wishlist, Β
Note From Mr. Burnham AKA "jim The STEAM Clown":
Why another Python class? - I think the main reason for another Python class, is that you can never find just the right site, with just the right examples... or structured just the way you want it. Some are too hot and some are too cold... for me, I'm hoping this class is just right. :-)
I'm am targeting this class to Engineering High School students, and I want to run my class a certain way, with lessons that are a specific length and complexity... While there are some AWESOME programming sites out there, I wanted a class I could point my students to, that was organized around my Mechatronics Engineering Python Units.
Believe me, I'm going to beg, borrow and "steal" any good code and point to sites that help me teach my students Python.
So, Sorry for another site and class for learning Python, Linux & Adafruit Circuit Playground, Raspberry Pi, Jetson Nano or other Python capable devices. Not Sorry...Β
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.
How does learning Python on a Raspberry Pi, or other Python based hardware, help you understand real-world embedded systems used in engineering applications?
In what ways does programming in Python teach you to think critically about hardware-software integration?
Why is Python a powerful language for engineering problem-solving, especially when working with Linux based devices like a Raspberry Pi or Jetson Nano?
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.Β
Interpreted - Python is a programming language that is executed line-by-line by an interpreter rather than being compiled into machine code ahead of time.Β In an interpreted language, the program is read, translated, and executed on the fly. There is no separate βbuildβ or βcompileβ step that produces an executable file.
Variable - A named storage location that holds a value in a program. Variables allow data to be changed, read, and reused in Python scripts and hardware applications.Β
Conditional Statement - A programming structure (e.g., if, elif, else) that allows decision-making based on logical tests. Used heavily in sensor-based Raspberry Pi projects.Β
Iteration (Looping) - The process of repeating a block of code using for or while loops. Crucial for hardware tasks such as continually reading sensors.Β
Input/Output (I/O) - Refers to communication between the program/hardware and the outside world, such as reading sensors or controlling LEDs and motors.Β
GPIO (General-Purpose Input/Output) - The pins on a Raspberry Pi that can be programmed to read inputs or send outputs. A foundational hardware concept.Β
Function - A reusable block of code that performs a specific task. Functions support modular programming and are vital for structured robotics and electronics code.Β
Debugging - The process of identifying and fixing errors in code or hardware setups. Critical for both Python logic and troubleshooting wiring or signals on a Raspberry Pi.Β
Syntax - The set of rules defining how Python code must be written to run correctly. Understanding syntax is a core academic skill in programming.Β
Runtime Environment - The system where programs execute, such as the Raspberry Pi OS, terminal, or Python interpreter. Students must understand how code interacts with the hardware environment.
Python is a general purpose and high level programming language. You can use Python for developing desktop GUI applications, websites and web applications.Β Also, Python, as a high level programming language, allows you to focus on core functionality of the application by taking care of common programming tasks.Β The simple syntax rules of the programming language further makes it easier for you to keep the code base readable and application maintainable.Β There are also a number of reasons why you should prefer Python to other programming languages. Check out this Python: 7 Important Reasons Why You Should Use PythonΒ Β
Teachers: How I teach These Modules, Lessons, and Labs:
I have these Python, Linux, and IoT topics split into topical modules, but invariably I teach them as an interleaved set of lessons and labs that focus on building a Python based Rover, capable of AI Autonomous navigation, AI Machine Vision & Lot's of sensor integration & data collection / analysis.Β Β
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 interface. You'll work primarily with Python, but some other languages and interfaces will also be used.Β
See all the Lessons and Resources on the Python (Focused On The Raspberry Pi & a AI based Rover - π€π) - Presentation order is interleafed to build a capstone Python based Rover
Programming - Python & Internet of Things (IoT) Introduction - STEAM Clown - π° Slide Presentation
Programming - Python & Internet of Things (IoT) Introduction - π Lesson Tutorial
*Programming - Python & Internet of Things (IoT) Introduction - π½οΈ Video / Podcast (Soon)
What Computer & Technology Are You Using? - STEAM ClownΒ
Programming - Why Learn To Code?Β - STEAM Clown
Programming - Computer Science is Changing Everything - π§ π½οΈ π - STEAM Clown
Programming - Reasons Why Coding Is Important π πΒ - STEAM Clown
Programming - Your Brain On Coding - π π - STEAM Clown
Programming - Coding is Good for your Brain - π π - STEAM Clown
Programming - Programming Brain - π π- STEAM Clown
Python Essentials Introduction - Cisco Network AcademyΒ - STEAM ClownΒ - π° Slide Presentation
Programming - Python & Internet of Things (IoT) Introduction - π Lesson Tutorial
Mechatronics - <topic> - π½οΈ Video / Podcast (Soon)
Python Essentials - Cisco Network AcademyΒ - Old Link
8.1.2.0 - Internet of Things (IoT) - Cisco Network AcademyΒ - STEAM ClownΒ - π° Slide Presentation
Internet of Things (IoT) - Cisco Network Academy- Introduction - π Lesson Tutorial (Coming Soon)
Internet of Things (IoT) - Cisco Network Academy- Introduction - π½οΈ Video / Podcast (Coming Soon)
Linux & Command Line IntroductionΒ - STEAM ClownΒ - π° Slide Presentation
Old Link - Linux & The Command Line
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
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