BTE1522 DRE2213 – Week 5 Global Classroom

In the latest session of the Global Classroom Initiative for DRE2213 Programming and Data Structure and BTE1522 Innovation (Python Programming) students were privileged to attend a talk by Prof. Ansgar Meroth from Helbron University. Prof. Ansgar delivered a comprehensive overview of IoT networks, particularly as applied to agriculture. This talk aligned perfectly with our BTE1522 and DRE2213 course’s focus, as students in the DRE course gain hands-on experience in Python programming, Raspberry Pi programming, and embedded systems.

Prof. Ansgar’s lecture began with the foundational elements of IoT, including sensors, network architecture, and the various considerations in building robust IoT solutions. Moving deeper, he shared insights on the types of sensors used, architecture design choices, and a project demonstration from his own classes. The talk’s focus on agricultural IoT applications illustrated the immense potential of these technologies to transform farming through precision monitoring and automation.

Key Points Covered in the Session

  1. Overview of IoT Systems
    • Prof. Ansgar began with an introduction to IoT, discussing its growth and role in various sectors, especially in agriculture.
  2. Sensors and Embedded Systems
    • He highlighted the importance of selecting appropriate sensors and embedded devices, considering factors like power consumption, accuracy, and environmental durability.
  3. Network Architecture
    • Prof. Ansgar explained the architecture of IoT networks, emphasizing the role of gateways, cloud systems, and edge devices in enabling data processing and analysis closer to the source.
  4. Class Project Showcase
    • Prof. Ansgar concluded with a detailed example of an agricultural IoT project from his own students, demonstrating the integration of real-time monitoring and data analysis to optimize resource use in farming.

Q&A Session with Prof. Ansgar

The session concluded with an engaging Q&A, where Prof. A addressed various thoughtful questions from students, demonstrating his deep expertise and providing practical guidance. Here are some of the key questions asked and the responses-

1. What are the critical components in developing a reliable and quality IoT solution?

There is a critical need for high-quality sensors, a robust network architecture, and efficient data handling techniques. Reliability can often hinge on the durability of sensors in harsh environments, as well as on efficient protocols for data transmission.

2. What are the considerations for choosing the right sensor in IoT solutions if cost isn’t an issue?

Prioritizing sensor accuracy, durability, and compatibility with other IoT components are recommended. Environmental factors, such as weather and soil conditions, also play a role in sensor selection for agricultural applications.

3. How can we optimize performance in IoT systems with limited power on Raspberry Pi?

Sleep modes and power-efficient protocols, such as MQTT, which is designed for minimal data transfer could be considered. Edge processing can also reduce energy usage by minimizing the amount of data sent to the cloud.

4. How do you ensure reliable data transmission and handling in IoT systems that operate on edge devices?

Using reliable networking protocols and setting up redundant systems to handle transmission errors is a good option, especially in remote areas where network stability may be an issue.

Additional Questions from the Class

1. What is the difference between IoT and IIoT?

While IoT focuses on general applications (e.g., smart homes, agriculture), Industrial IoT (IIoT) emphasizes industrial and manufacturing applications, where the systems must adhere to stringent standards for reliability and security.

2. In hazardous environments, what role does IoT play in monitoring and managing assets safely, and how reliable are these systems?

IoT can monitor environmental conditions and equipment status in real-time, alerting managers to unsafe conditions instantly. With proper system design, these systems can achieve high reliability.

3. What are the potential environmental benefits of using IoT for precision farming?

IoT enables precision resource management, reducing waste and minimizing environmental impact by providing data-driven insights into irrigation, fertilizer use, and crop health.

4. How can data security and privacy be ensured in an IIoT network?

Security is critical in IIoT, where implementing encryption, secure authentication protocols, and regular system audits could be implemented to mitigate risks.

5. How can organizations ensure a successful IIoT implementation without facing cybersecurity risks?

A layered security approach, including firewalls, intrusion detection systems, and ongoing employee training to protect against cybersecurity threats.

6. Are there devices beyond sensors or GPS that can accomplish tasks within IoT or IIoT?

Actuators and drones as examples of devices that can not only sense but also act on data, allowing IoT systems to respond autonomously to changing conditions.

7. What about the durability of sensors used in IoT farming systems? Are they different in quality or sensitivity compared to similar sensors in everyday devices?

In agricultural IoT, sensors are often designed to be more rugged, with higher sensitivity and protective casings to withstand outdoor environments. These are tailored for extended use in tough conditions, unlike everyday consumer electronics.

 

It was both an honor and an incredible experience to host Prof. Ansgar from Helbron University. His insights into the intersection of IoT, embedded systems, and agriculture were inspiring, providing our students with a glimpse into the future of technology-driven farming. Listening to fellow educators motivates me to creating opportunities for global collaboration and learning. As someone who believes deeply in breaking down barriers in education, I look forward to inviting more professors from around the world.

Engaging with international experts not only enriches our knowledge but also motivates us to strive for higher standards in our projects and activities.

Kudos to the students who actively engaged with Prof. Ansgar and asked thoughtful questions during the session. Their curiosity and commitment to learning demonstrated the high standards they are reaching for, making this session even more impactful.

Thank you, Prof. Ansgar, for sharing your expertise and inspiring us to innovate!

BTE1522 DRE2213 – Week 5 Assignments

This week, students from the BTE 1522 and DRE 2213 courses are given assignment that are designed to develop their programming skills in Python. Each group of three students is tasked with choosing one of the 20 game modification options available and implementing it as a team project. This assignment is all about creativity, problem-solving, and teamwork as students work to modify an existing Python game and showcase their programming concepts.

In this assignment, each group will:

  1. Select a Game Modification
    1. Out of 20 different modification options, each group chooses one that they’ll use to enhance a basic game written in Python.
    2. Modifications can range from adding new features, changing game mechanics, enhancing visuals, to incorporating user-friendly elements.
  2. Implement the Code Changes
    1. Using Python, students will modify the codebase to create the enhancement they selected. As they work through these changes, they’ll encounter new programming concepts, which they can build upon for future projects.
    2. This assignment offers students a chance to solidify their coding skills while adding their creative touch.
  3. Submit the Project Components

Each group will submit:

    1. The modified Python code, clearly commented to explain the changes made.
    2. A written report detailing the modifications, gameplay instructions, and the coding process.
    3. A 3-minute video demonstrating the game, explaining the code changes, and showcasing the impact of the modifications.

Reporting

To complete this assignment, please:

  1. Review the Game’s Base Code
    1. Understand the game’s original code before making any changes.
    2. Each student in the group should be familiar with how the code works to effectively contribute to the modification.
  2. Plan the Modification
    1. After selecting a modification, map out the changes needed.
    2. This could include adding new variables, adjusting functions, or integrating additional modules. Using flowcharts or pseudocode can be especially helpful to visualize how the new feature will work within the existing game structure.
  3. Divide and Conquer
    1. With three members in each group, teamwork will be key!
    2. Students should divide tasks based on each member’s strengths and collaborate to implement the modification efficiently.
  4. Test the Changes
    1. Test the game thoroughly to ensure that the new feature or modification works as intended and doesn’t disrupt existing functionality.
    2. Debugging is an important skill in programming, so encountering and fixing errors will be a valuable part of this process.

Upload these in KALAM (https://kalam.ump.edu.my/)

Showcase and Reflect

As part of the final submission, you are encouraged to be creative with their 3-minute video, which should highlight –

  1. Gameplay
    • Show the modification in action and explain how it enhances the game.
  2. Code Explanation
    • Walk viewers through the code changes made, highlighting key additions and adjustments.
  3. Reflection
    • Share insights into the challenges and learning experiences encountered during the project.

Good luck to all the groups, and I look forward to seeing your creativity come to life in your games!

 

2024 IEEE STEM Summit

STEM Summit 2024 is happening now   Website

 

Exploring Pedagogical Approaches in Arduino Robotics Through Hands-On Experience at the 2024 IEEE STEM Summit

The 2024 IEEE STEM Summit brought together educators, researchers, and industry professionals to explore the latest trends and challenges in STEM education. At this event, I had the honour of presenting on “Exploring Pedagogical Approaches in Arduino Robotics Through Hands-On Experience,” where we discussed methods of engaging students in robotics, focusing on building skills through direct, hands-on activities.

The presentation aimed to illustrate the value of blending practical robotics work with foundational theory, especially when working with Arduino robotics, to enhance student learning outcomes.

Key Themes and Teaching Approaches

The main theme of this presentation was how a well-designed hands-on approach can havean impact on learning and make complex topics like robotics and electronics more accessible. Teaching Arduino robotics requires balancing both theory and practice. For students to truly understand the inner workings of a robotic system, theoretical concepts should be taught alongside practical applications, where students directly apply what they’ve learned.

In developing a well-rounded robotics curriculum,  the following approaches are emphasized:-

  1. Incremental Learning through Project Complexity
    Arduino projects were designed to start with simple tasks, such as lighting an LED, and gradually advanced to more complex projects involving sensors, motors, and data communication.

    1. This approach, where complexity is added progressively, allows students to build confidence and competence before tackling more challenging concepts like integration and control.
  2. Black Box to White Box Approach
    1. For beginners, the “black box” method is ideal—they can quickly see results without needing to understand the system’s inner workings. As they progress, students are introduced to the “white box” approach, where they delve deeper into component connections, circuit design, and eventually, creating their own PCBs.
    2. This shift from black box to white box allows students to explore robotics at different levels of complexity based on their skills and confidence.
  3. Balancing Theory with Practical Application
    1. A hands-on robotics curriculum is most effective when balanced with supporting theory. For example, students might first learn about voltage dividers or basic control theory before applying it to Arduino circuit design. Theory complements hands-on tasks by allowing students to validate their project findings and understand the principles driving their robot’s behaviour.
    2. This balance provides a “learn-by-doing” model where the value of theoretical knowledge becomes evident in practical applications.
  4. Scaffolding to Address Cognitive Overload
    1. Robotics can be complex, especially for novices. By scaffolding tasks, we can break down complex projects into manageable activities.
    2. For example, students start by building and testing simple circuits on a breadboard before soldering them onto a PCB. This helps prevent cognitive overload and gives students confidence as they master each stage.

Towards the end of the presentation, participants posed questions, reflecting on the pedagogical aspects in enhancing the Arduino robotics curriculum.

Here’s a recap of some key questions and my responses –

  1. How “deep” is the white box approach? Do students actually solder discrete components?
    • Yes, the white box approach goes deep, guiding students to construct their robot from scratch. They progress from breadboarding to soldering and, eventually, designing their own PCB—after thorough testing on the breadboard to validate their circuit design. Check-out our module on circuits design and simulation on TinkerCAD and Wokwi.
  2. When entering circuit design, do you cover foundational theories like voltage dividers and bridge circuits?
    • Absolutely. We walk students through these essential circuit theories, such as voltage dividers, bridge circuits, and stepping up/down voltages, to ensure they understand the principles they’ll apply in the hands-on tasks. Sensors integration and their building circuits among other activities covered.
  3. How do you recommend balancing hands-on work with theoretical learning in robotics?
    • There’s really no one-size-fits-all answer to balancing theory and hands-on work. Well, theory is essential to support hands-on activities—it serves as a foundation that validates the findings or outcomes of practical tasks. So rather than separating the two, theory should flow naturally alongside hands-on work, helping to clarify and reinforce what students observe in real time.
    • For me, balance means students can connect their hands-on experiences with theoretical understanding—being able to reason out their findings during activities. When they can explain why something works (or doesn’t) based on underlying concepts, that’s when the learning truly resonates.
  4. Are you familiar with any work that takes this approach further to circuit design and behavior? For example introduce test tools like oscilloscopes and logic analyzers to introduce students to communications channel behavior
    • Yes, what we’ve done is, once students are familiar with the robot’s anatomy (like the 2-wheel robot), we move to circuit design. They experiment with integrating IR sensors and motor control, building from off-the-shelf components. They solder the circuits, measure performance, and eventually create their own PCBs. This hands-on approach gives them a deeper understanding of circuit behavior and design.
  5. Have you found this approach more effective for particular age groups or skill levels?
    • Age is secondary =).  Rather than age, it’s more about the student’s skill level. Beginners benefit from a black box approach, while those with a stronger foundation excel with the white box approach. Tailoring the curriculum to a student’s competence level helps build confidence and ensures successful outcomes. Novices engage best with a black box approach to build confidence, then progress to white box as their skills and understanding grow.
  6.  What Arduino project is best for students as they advance?
    • For a beginner aiming to pursue advanced robotics, I’d encourage them to explore whichever path interests them most, as passion often drives deeper learning and persistence. Start with projects that build foundational skills—like simple sensor integration or basic movement programming—and gradually take on more complex tasks, such as multi-sensor fusion or autonomous navigation. Consistently challenging yourself just one level up, and taking time to experiment and troubleshoot, will build both confidence and competence over time.
    • The best projects challenge students just a level above their current ability. For example, if they’ve mastered programming a robot with one sensor, we introduce additional sensors or more complex sensor integration. Also, integrating AI / Image processing / data analytics to its function is interesting as well.
  7. How can we balance hands-on work with theoretical learning in robotics
    • Finding this balance can be challenging, as it depends on the student’s ability to connect theory with hands-on experience. I personally believe theory should validate hands-on findings, with concepts tested through activities, allowing students to reason through their results.
  8. Are you familiar with approaches that introduce circuit testing tools, like oscilloscopes or logic analyzers, to help students understand communication channels?
    • Yes, we do incorporate this in advanced stages. Once students are comfortable with the robot’s basic structure, they move to tasks like integrating sensors with motor control and testing these connections. They build and solder components, measure with test tools, and eventually work up to designing custom PCBs.
  9. Can we use co-design pedagogical techniques’ instead of the pedagogical techniques used in this study?
    • Of-course :). Co-design in education involves teachers and students collaboratively designing the learning process. Instead of students being passive recipients, they actively contribute to shaping the curriculum, setting goals, and choosing projects that are meaningful to them.  By involving students in the creation of the learning experience, co-design fosters a more personalized and relevant educational process, making it especially effective for project-based learning environments like Arduino or robotics.

The presentation highlighted how hands-on learning in Arduino robotics can be transformative for students, whether they are beginners or more advanced learners. Through a scaffolded approach that combines theory and practice, students develop not only technical skills but also critical thinking and problem-solving abilities. The summit was an excellent platform to share these insights and learn from other educators in the field who are equally passionate about making STEM accessible and engaging.

Again, thank you IEEE TryEngineering for the opportunity to present at the 2024 STEM Summit! It was an honor to share insights on hands-on learning in Arduino robotics and to explore the impact of the right pedagogical approach in helping students connect with engineering concepts meaningfully =). I look forward to continued collaboration and applying these techniques to create even more engaging learning experiences. Kudos to all the speakers for their inspiring talks and fantastic!

 

BTE1522 DRE2213 – Week 3 – Control Statements and Functions

Let’s explore learning programming by troubleshooting Codes   😀  – Flags and Scoring Systems in Python

Today’s coding session was all about debugging and enhancing a game we’ve been developing step by step. We dove into Act 4, 5, 6 and 7, focusing on how to fix some key issues in the game logic—specifically how to properly handle scoring during collisions between the player and enemies.

PBL – ‘The Problem’

We already had a working player and enemy system in the game. The player can move left and right, while an enemy drops down from the top of the screen. The challenge was ensuring the player’s score only increased by one upon a collision with the enemy. Instead, the score was skyrocketing with every game frame where the player touched the enemy, adding several points instead of just one.

This type of issue is common when developing games, where collisions can occur over multiple frames. But we only want the score to increment once per collision event. To fix this, we introduced an important concept: the flag.

Introducing Flags in Python

In programming, a flag is a boolean variable (True/False) used to indicate whether a certain condition has been met. For our game, we needed a flag to signal whether a collision between the player and enemy had already occurred. This would prevent the score from increasing continuously while the player and enemy rectangles overlap.

Using a Flag to Control Scoring

Here’s how we used the flag –

  1. Define the flag – We introduced a variable collision_occurred, which is initially set to False. This flag keeps track of whether the collision has already happened.
  2. Check the flag during collision – Every time the game checks for a collision between the player and the enemy, it also checks whether collision_occurred is True or False.
    1. If it’s False and a collision happens, the score increments by 1, and the flag is set to True. This prevents further increments until the enemy resets.
    2. If the flag is True, no further points are added, even if the player remains in contact with the enemy.
  3. Reset the flag – Once the enemy moves off-screen and reappears at the top, the flag is reset to False, allowing for another score increment during the next collision.

p/s Score Board is being implemented this year. One of the ways to monitor students progress in class

BTE1522

DRE2213