Recording session for MC courses for the subject BTE1522 – Raspberry Pi.
Tag: Academia – Python Prog
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.
BTE1522 – Week 3 – Act 1 – Act4
BTE1522 – Week 1 – Class Introduction
Welcome to the class everyone !
1 – PreTest
2 – Thonny Installation
3 – Game Window
Python for Image Processing 2025/1 – BHE 2025
Today, I had the opportunity to deliver a workshop on Introduction to Python, specifically targeting its application in image processing. This workshop was part of a preparatory class for UMPSA double-degree students, who will be enrolling in their image processing course next semester. The objective was to provide them with a foundation in Python programming through a hands-on project-based approach.
Instead of a conventional lecture-style introduction to Python, the workshop focused on a project-based learning approach, where students were introduced to programming concepts by developing a Slider Game. This project served as an engaging platform to explore Python syntax and core programming concepts, including:
-
-
- Pixels and Color Schemes – Understanding how colors and pixels form the basis of image processing.
- Object-Oriented Programming (OOP) – Declaring objects, defining classes, and implementing methods.
- Control Statements – Implementing loops (
for
,while
) and conditional statements (if-else
). - Event Handling – Managing user input and interactions within the game.
- Timers – Implementing countdowns and delays for interactive experiences.
-
This step-by-step approach helped students grasp the syntax and structure of Python while simultaneously building a fun, interactive game.
Following the Python fundamentals and project development, the workshop transitioned into setting up Anaconda, a critical tool for managing Python environments and dependencies efficiently. Special attention was given to embedding the .yml environment file prepared by the image processing course coordinator. This ensured that students had access to all key libraries and tools required for their upcoming course, including:
-
-
- scikit-image – For advanced image processing tasks.
- Matplotlib – For data visualization and plotting image transformations.
- OpenCV – For real-time image manipulation and computer vision applications.
-
By setting up a pre-configured environment, we aimed to provide students with a smooth learning experience without the hassle of installing dependencies manually.
The workshop concluded with a hands-on session exploring fundamental image processing techniques. Students experimented with:
-
-
- Image Scaling – Resizing and adjusting image dimensions.
- Color Manipulation – Converting RGB images to grayscale.
- Basic Filters & Enhancements – Adjusting brightness, contrast, and sharpening.
-
As a final exercise, students worked with the iconic Lenna.png file, applying different transformations to understand basic image properties.
This workshop was an exciting and fulfilling experience, as it introduced students to Python programming in a practical and engaging manner. By developing a project along the way, they not only learned Python syntax and concepts but also experienced how these concepts translate into real-world applications like image processing. I truly enjoyed guiding them through this process and hope they found this approach refreshing and insightful.
Wishing all the students the best of luck in their upcoming image processing course! Looking forward to seeing how they apply Python in their projects and beyond.
Python Introductory Course – with Anaconda and Jupyter :)
Gearing up for the upcoming class on Python Programming, and this time round it’s on Anaconda 🙂