Tag: Academia – Python Prog
BTE1522 – Week 15 – Project Presentation
Well Done everyone!
2025 Book :) Physical Computing with Raspberry Pi: A Hands-On Guide to Pico-Satellite Systems and Operations
The book is finally here!
This has been close to my heart for quite some time — thisnew book, Physical Computing with Raspberry Pi: A Hands-On Guide to Pico-Satellite Systems and Operations, is now out!
This book is written for beginners—students, teachers, and anyone curious about embedded systems. It focuses on the Raspberry Pi Pico and Raspberry Pi 4 as platforms for learning. Whether you’re just starting your journey into programming, or you’re ready to connect your code to the physical world, this book is here to guide you through that process.
The motivation came from a simple but powerful belief, we learn best by making 🙂.
Programming, to me, becomes much more meaningful when it’s tied to real-world projects. That’s why this book doesn’t just explain concepts—it walks you through building things. Some are software-based, like interactive games. Others are hardware-based, like functional pico-satellites. Both types of projects help learners connect abstract code to tangible outcomes.
The seed for this book was planted during the MYSA SiswaSAT Challenge back in 2020, a nationwide student satellite initiative. I had the chance to work with a brilliant group of six mentors from the UMP STEM Lab, led by Kamil and Phuah. Together, they built a full working model of a pico-satellite—complete with a parachute—and tested it using a drone. Watching that small satellite take flight was inspiring. But even more rewarding was witnessing how much they had learned – system design, coding, troubleshooting, teamwork, and resilience – and that was during MCO – with lockdown, online discussions era!
That experience stayed with me.
A satellite, even a simulated one, offers so many layers of learning. From designing the onboard computer (OBC), to setting up communications, managing power with batteries, and designing payloads—it’s a beautiful mix of challenges. Once the system collects data, there’s a whole new task: visualizing it, in real time or offline. These aren’t just engineering problems—they’re opportunities to teach programming, electronics, critical thinking, and creativity.
Research in Engineering Education Mechatronics – REM 2024
The book is designed around tiered scaffolding principles—starting with the basics, building confidence, and gradually introducing more complex challenges. It begins with an introduction to physical computing, then explores how Raspberry Pi boards are used in satellite design. You’ll find hands-on projects, real-world examples, and guidance to build systems that actually work.
Few relevant articles on tiered scaffolding:-
IEEE Transactions on Education
Research in Engineering Education Mechatronics – REM 2024
It’s a learning journey that starts small and grows big—just like how learning should be.
This book is also a tribute to all the students, mentors, and teachers who’ve participated in UMPSA STEM Lab activities over the years. Your questions, ideas, and energy inspired this project. It’s my hope that this book will become a trusted reference for many others like you—those who are just beginning to explore the world of programming and physical computing. Thank you everyone =) .
I truly believe that building things—whether in software or hardware—deepens understanding and brings out the joy of learning. I hope this book helps you get started, and maybe even launch your own learning “satellite.”
Stay curious, keep building, and don’t be afraid to try.
and this book
complements the Python and Raspberry Pi microCredential series below:-
BTE1522 – Week 13 – Project Development
Over the past three weeks, our BTE1522 class transitioned into full project-based learning mode, where students were tasked to apply all they have learned throughout the semester—from Python programming basics to hardware interfacing with the Raspberry Pi 4. This phase was not just about completing an assignment—it was about creating functional, working solutions from scratch.
Each group (consisting of three students) was equipped with:
-
-
-
A UMPSA STEM Cube
-
Raspberry Pi 4
-
Camera Module
-
GPS Sensor
-
BME280 (temperature, humidity, pressure)
-
MPU6050 (accelerometer and gyroscope)
-
-
Students selected one topic from a set of project assignments, all of which required multidisciplinary skills. Each project had to include the following components:
-
-
-
Sensor Integration: Establish working connections between Raspberry Pi and the sensors.
-
Data Storage: Build a working database—either local (e.g., SQLite) or cloud-based (e.g., Firebase, Google Sheets).
-
Dashboard Development: Create a working user interface/dashboard using tools like Streamlit, Flask, Adafruit IO, or Blynk to visualize data and system status.
-
-
The Learning Process
This phase was entirely project-based, meaning students were expected to learn through experimentation, debugging, and problem-solving. Unlike guided tutorials, this process encouraged independent learning and collaboration:
-
-
-
Debugging wiring errors
-
Fixing Python runtime bugs
-
Reading sensor data accurately
-
Sending and retrieving data from a database
-
Building interactive visual dashboards
-
-
Learning programming—especially physical computing—is most effective when you’re actually doing it. The moment something doesn’t work, and you have to troubleshoot, is when you truly begin to understand what you’re building. the most important thing is NOT TO GIVE UP 🙂
This project based learning phase is aimed at solidifying concepts from earlier weeks, including:
-
-
-
Python functions and loops
-
Conditional logic
-
File and data handling
-
Sensor reading and real-time feedback
-
REST APIs and interface design
-
-
Final Submission Checklist
As the project phase concludes, students are required to submit their work via KALAM. Each group should prepare:
-
-
-
A complete lab report
-
A 3-minute walkthrough video, demonstrating the system and explaining their code
-
A zip folder with all Python source code files
-
-
This final submission will serve not only as a record of their accomplishment but also as a mini portfolio piece showcasing their ability to develop real-world solutions.
Each team faced unique challenges, but everyone succeeded in developing a working prototype with analytics. This hands-on, integrative experience truly brings the course’s learning outcomes to life.
Looking forward to your final presentations and submission in KALAM next week. Great job, everyone—keep building and keep learning!
Microcredential Course Preparation
Recording session for MC courses for the subject BTE1522 – Raspberry Pi.
BTE1522 – Innovation – Week 10 – Camera Module
Today’s class in BTE1522 was packed with hands-on activities that introduced students to real-world applications of Raspberry Pi 4, focusing on camera integration and project development. The session was divided into two key sections, each playing an important role in reinforcing both technical knowledge and project-based learning.
Section 1: Raspberry Pi Camera Module – From Capture to Streaming
The first half of the class focused on working with the Raspberry Pi camera module, a fundamental tool in the world of image processing and artificial intelligence. Students learned:
-
How to capture still images using Python and Raspberry Pi’s built-in libraries.
-
How to initiate video streaming using the PiCamera and OpenCV, preparing them for real-time image processing applications.
These activities are not just about capturing visuals—they serve as a gateway to advanced applications like image classification, object detection, and AI-based recognition systems.
This reminded me to a project from a previous semester, where one of our students successfully developed an image detection system using the same setup. The project was able to identify a variety of items like books, pencils, and even human figures—an impressive feat for a class-based project!
Today’s session laid the groundwork for such possibilities, and we’re excited to see how current students might push the boundaries even further.
Section 2: Project Development Begins
The second part of the session shifted focus toward the students’ individual and group projects. This semester, we’ve offered 9 project titles, each designed to challenge students to apply what they’ve learned across programming, electronics, and embedded systems.
During this session, students –
-
Began structuring their project workflow.
-
Identified the core components and sensors required.
-
Discussed functional requirements and potential integration challenges.
-
Started early-stage coding and circuit prototyping.
This segment highlighted the importance of hands-on learning, collaborative teamwork, and practical application of theory.
Today’s class was not just about technical instruction—it was about igniting curiosity and innovation. Whether it’s capturing a simple image or streaming live video, each activity builds toward something bigger. Combined with project-based learning, students are not just coding—they’re creating, solving problems, and applying technology in meaningful ways.
Looking forward to seeing how each of the nine projects evolve over the coming weeks. As always, proud of the effort and enthusiasm shown by everyone in class today.
BTE1522 – Innovation (Python) – Week 6 – Assignment 1
Job well done everyone!
In this assignment, students of BTE1522 are required to modify the Slider Game with the following requirements:-
- Customizable character and sizes
- scoreboard
- multiplayer
- enemy movement diagonal
- game lives
- sdv
- multiplayer and shoot laser
- b
- multi-movement
- pause mechanism
BTE1522 – Week 8 – Raspberry Pi Programming
This week, we kicked off with Microcredential 2 and 3 focusing on hands-on Raspberry Pi segment
We started off with the fundamentals – configuring the Raspberry Pi environment. Students explored the process of setting up the Raspberry Pi 4, learning how to boot the system, OS installation, update packages, and enable interfaces like SSH and I2C. This step was crucial to ensure their boards were fully prepared for the upcoming hardware experiments.
MC 2 – Chapter 1 -5 Raspberry Pi Installation and Setting Up
Alongside this, we discussed key differences between Raspberry Pi 4 (a microprocessor-based platform) and Raspberry Pi Pico (a microcontroller-based platform). This opened up meaningful discussions on the architecture, applications, and performance of both systems.
MC 3 – Chapter 1 & 2: Hardware Warm-Up Activities
The class then moved into Microcredential 3, tackling Chapter 1 and Chapter 2, which introduced basic hardware control using Python and MicroPython. Over these two chapters, students completed four practical activities:
-
Lighting up an LED (Act 1) – their very first GPIO output!
-
LED Blinking (Act 2) – introducing timing and control loops.
-
Reading Digital Input with Push Button (Act 3) – detecting user input via GPIO.
-
Push Button to Control LED (Act 4) – combining input and output for basic interaction.
These warm-up activities weren’t just about turning lights on and off. They were designed to help students:
-
Compare Python 3 (used on Pi 4) vs MicroPython (used on Pico).
-
Understand how different hardware platforms influence programming paradigms.
-
Build a mental model of how microprocessors and microcontrollers handle digital I/O.
Learning Through Doing
At UMPSA STEM Lab, we strongly believe in embodied learning – and this week was a great reflection of that. Students didn’t just hear about hardware or programming; they wired it, coded it, debugged it, and saw the immediate outcome of their logic and effort. It was beautiful to see LEDs blinking and eyes lighting up in sync.
Next week, we’ll continue building on this foundation by introducing OLED displays and sensor integration — more advanced interactions await!
Btw sharing with you the production of Rasp Pi in their facilities in the UK:-
BTE1522 Week 6 – Assignment – Code Modification
Today’s BTE1522 session was all about taking the class assignment slider game project to the next level—through code modification and applied programming. With their foundational game now complete (step 7), students were given a list of features to implement, each requiring a combination of Python programming concepts, critical thinking, and a bit of creativity!
In groups, students worked on implementing new functionalities into their existing slider game projects. Each modification involved one or more Python concepts and gave students the opportunity to explore real problem solving through game design.
No. | Feature | Programming Concepts Explored |
---|---|---|
1 | Customizable Player Appearance | User input, rendering, player attributes |
2 | Game Pause and Resume | Event handling, game states, timers |
4 | Moving Obstacles | Movement logic, collision detection, timers |
5 | Enemy Movement Patterns | Custom functions, coordinate systems |
9 | Special Attacks for Player | Event handling, rendering, custom functions |
10 | Multiplayer Mode | Input handling, game states |
14 | Leaderboard Display | File handling, string formatting, data persistence |
17 | Player Lives System | Conditionals, variables, state management |
18 | Health Bar Display | Rendering, variables, collision |
20 | Level System | Level management, difficulty scaling |
Each team selected a feature, explored the Python logic behind it, and began integrating it into their existing codebase. It was rewarding to see teams applying what they’ve learned about loops, conditionals, functions, and event handling in a hands-on way.
To push their understanding further, every group was given a “Level-Up” challenge—a task that required enhancing or optimizing their chosen modification. These challenges were designed to:
-
-
-
Encourage deeper reflection on Python logic
-
Promote code efficiency and modular design
-
Help students explain the relationship between what their game does and the Python concept it’s based on
-
-
For example:
-
-
-
Teams working on player lives were challenged to add a visual life tracker (hearts or icons).
-
Those creating a multiplayer mode were asked to explore keyboard conflict resolution and responsive game states.
-
The group managing the leaderboard was tasked to sort and persist scores across sessions.
-
-
Throughout the activity, students were encouraged to ask themselves:
-
-
“What Python concept is being used here?”
-
“How can I break down this functionality into smaller functions?”
-
“How can I make this scalable if I wanted to add more features?”
- “Why code in such way? “
-
This reflection not only reinforces their coding skills but also helps students become intentional learners, capable of connecting code to concept.
To all the students, please submit your work via Tinta. make sure to include:-
-
-
- Python codes .py
- Readme.txt file to explain the code functionalities
- Project documentation in .doc format (please include the YT link of youe project) – due date April 25th.
-
BTE1522 – Week 5 – Code Troubleshooting
This week in BTE1522, we focused on troubleshooting the Slider Game code as part of our hands-on approach to learning Python programming. Over the past four weeks, students had completed Steps 1 through 7 of the game development process — from designing a simple game window to implementing the “Game Over” condition.
In Week 5, we shifted our focus from building to refining.
Troubleshooting Score Logic
The session began with a debugging challenge: fixing the issue where the score kept increasing continuously whenever the player collided with the enemy. The expected behavior was that the score should increase by only 1 per collision. This led to an exploration of Boolean flags (such as collosion = False
) and control logic — helping students understand how to track and limit events in game logic using conditional statements.
Implementing Countdown Timer
Next, students were challenged to modify the game’s default up-counting timer into a countdown timer. This exercise required them to revisit Python functions and logic structures. They learned how to set and decrease a timer, as well as how to trigger the “Game Over” condition when time reaches zero.
Debugging as a Learning Tool
Troubleshooting is a vital part of programming, and through this session, students experienced how debugging helps deepen understanding of syntax, logic flow, and structure in Python. Debugging isn’t just about fixing errors — it’s about making your code smarter and your logic stronger.
This week’s activity reinforced the idea that learning to program by building and breaking things — then fixing them — is one of the most effective ways to understand a programming language. Students left the class not just with working code, but with improved problem-solving skills and a stronger foundation in Python.