BTE1522 – Week 14 Project Assessment – Integrating Gallery Walk and Reciprocal Teaching

 

In today’s class – BTE 1522 – Innovation Python Programming and Raspberry Pi, we engaged in a dynamic and interactive learning session that combined elements of Gallery Walk and Reciprocal Teaching. This approach not only fostered collaboration and deeper understanding but also enhanced students’ ability to explain and defend their projects. Here’s a breakdown of how the session unfolded and the learning theories behind it.

Activity Overview
1 – Project Development

Students were divided into groups (1 through 5).
Each group developed a project using on Raspberry Pi, integrating sensors like BME280 & cameras, building databases, and creating dashboards.

2 – Reciprocal Teaching with a Twist

Instead of presenting their own work, each group was tasked with presenting the project of another group. For example, Group 2 (Angelina & Syarah) presented the work done by Group 1 (Amir, Azhad, Aiman).

This approach required students to thoroughly understand projects created by other groups. By presenting and understanding projects from other groups, students applied their Python coding knowledge to analyze and interpret how different groups implemented solutions using Raspberry Pi. This hands-on experience allowed them to see real-world applications of Python in sensor integration, data handling, and project implementation on the Raspberry Pi platform. It reinforced their learning by showing them diverse approaches to coding, problem-solving, and integrating hardware components like sensors, cameras, and GPS modules into functional systems.

3 – Gallery Walk Elements

After Group 1 presents their project on the Environmental Monitoring and Imaging System, the session transitions into an interactive phase. Students from Groups 3, 4, 5, and 6 ask one question each about the presented project. These questions delve into various aspects of the system, such as the integration of sensors like the BME280 for environmental data collection, the methodologies employed in Python programming to process and visualize this data, and the techniques utilized for imaging purposes.

This structured Q&A session serves multiple purposes. First, it allows students from other groups to gain deeper insights into the technical details and methodologies employed by Group 1. By asking pertinent questions, students from Groups 3, 4, 5, and 6 not only expand their understanding of different project components but also evaluate the comprehensiveness and innovation of Group 1’s work.

For Group 1, this session becomes an opportunity to demonstrate their expertise and depth of knowledge regarding their project. By articulating clear and detailed responses to the questions posed by their peers, Group 1 showcases their understanding of Python programming techniques applied to sensor integration, data processing, and system implementation. They also highlight their proficiency in problem-solving and innovation within the context of environmental monitoring and imaging systems.

This approach fosters a collaborative learning environment where students engage critically with each other’s work, exchange ideas, and enhance their technical and communication skills. It aligns with the assignment topics by emphasizing the application of Python programming in real-world IoT (Internet of Things) projects involving environmental monitoring, precision agriculture, GPS tracking, and photography with weather data integration.

Evaluation Criteria

  1. Marks were awarded based on the quality of the presentation by the presenting group.
  2. The ability of Group 1 to answer the questions accurately and comprehensively.
  3. The ability of the presenting group to explain another group’s project clearly.
  4. Learning Theories and Techniques

Reciprocal Teaching

By having students present projects they did not create, we leveraged the principles of reciprocal teaching. This method encourages active learning, critical thinking, and the ability to teach others, which in turn reinforces their own understanding.

Gallery Walk

Incorporating a Q&A session akin to a gallery walk allowed students to engage with multiple projects, ask insightful questions, and provide constructive feedback. This technique promotes active engagement, observational learning, and peer-to-peer interaction.

Peer Teaching

This hybrid approach facilitated peer teaching, where students learned from each other by presenting and questioning different projects. Peer teaching is known to enhance comprehension and retention of material as students explain concepts to their peers.

Collaborative Learning

Working in groups to understand and present different projects encouraged collaboration. Collaborative learning helps develop teamwork skills, enhances problem-solving abilities, and fosters a sense of community within the class.

 

 

 

 

Benefits of the Approach

  1. Improved Understanding – Students gained a broader perspective by engaging with multiple projects, understanding various approaches and solutions.
  2. Enhanced Communication Skills – Presenting another group’s work and answering questions honed students’ communication and presentation skills.
  3. Critical Thinking – The Q&A session encouraged critical thinking, as students had to think on their feet to ask relevant questions and provide accurate answers.
  4. Engagement and Motivation – This interactive approach kept students engaged and motivated, as they were actively involved in learning and teaching processes.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

To all the BTE1522 students (Sem 1 2024 2025), thank you very much for your active participation throughout the semester. I hope you’ve enjoyed the classes as much as I do =).

Nurul – June 16th 2024

BTE 1522 – Programming and Data Structure – Project Preparation

Today’s BTE 1522 class was an exciting dive into the world of GPS technology and its integration with Raspberry Pi. We explored the essential concepts, from importing relevant Python modules for GPS functionality to circuit construction and function coding. This session is a crucial part of our project development series, providing students with hands-on experience in incorporating GPS modules into their Raspberry Pi projects.

Understanding GPS and Its Importance

Global Positioning System (GPS) is a satellite-based navigation system that provides geolocation and time information to a GPS receiver anywhere on or near the Earth. Integrating GPS into Raspberry Pi projects opens up numerous possibilities, such as tracking, navigation, and location-based services, which are pivotal in various applications like autonomous vehicles, drones, and IoT devices.

Circuit Construction for GPS Integration

Components Needed:

  1. Raspberry Pi
  2. GPS Module (e.g., NEO-6M)
  3. Connecting Wires
  4. Breadboard (optional)

Steps:

  1. Connecting the GPS Module:

    • UART Communication: Connect the GPS module’s TX (transmit) pin to the Raspberry Pi’s RX (receive) pin and the GPS module’s RX pin to the Raspberry Pi’s TX pin. Additionally, connect the VCC pin to the 3.3V or 5V power supply (depending on your GPS module specifications) and the GND pin to the ground.
    • I2C Communication: If your GPS module supports I2C, connect the SDA (data) and SCL (clock) pins of the GPS module to the corresponding pins on the Raspberry Pi. Ensure the VCC and GND pins are also properly connected.
  2. Powering Up: Power on the Raspberry Pi and ensure all connections are secure.

Coding for GPS Integration

Python Modules:

  • gpsd: A popular library for interfacing with GPS modules.
  • serial: A library for handling serial communication.

UART Communication:

  1. Installing Libraries:

    sudo apt-get install gpsd gpsd-clients python-gps
  2. Python Code Example:

    python
     
    import gpsd # Connect to the local gpsd
    gpsd.connect() # Get GPS data
    def get_gps_data():
    packet = gpsd.get_current()
    latitude = packet.lat
    longitude = packet.lon
    time = packet.time return latitude, longitude, time # Print GPS data lat, lon,
    timestamp = get_gps_data() print(f"Latitude: {lat}, Longitude: {lon}, Time: {timestamp}")
     

I2C Communication:

  1. Enabling I2C:

    sudo raspi-config

    Navigate to ‘Interfacing Options’ and enable I2C.

  2. Python Code Example:

    python
     
    import smbus2 import time bus = smbus2.SMBus(1) address = 0x42 # Replace with your GPS module's I2C address
    def read_gps(): data = bus.read_i2c_block_data(address, 0, 16) return data while True:
    gps_data = read_gps()
    print(gps_data) time.sleep(1)

Communication Protocols

UART (Universal Asynchronous Receiver-Transmitter):

  • Pros: Simple to use, widely supported.
  • Cons: Limited to point-to-point communication.

I2C (Inter-Integrated Circuit):

  • Pros: Supports multiple devices on the same bus, more flexible.
  • Cons: More complex than UART, requires addressing.

Key Learning Outcomes

  • Circuit Construction: Students learned how to set up a GPS module with Raspberry Pi, ensuring correct connections for power, ground, and communication lines.
  • Coding Techniques: We explored Python coding for both UART and I2C communication protocols, highlighting the differences and use cases for each.
  • Real-Time Data Acquisition: Students gained practical skills in capturing and processing GPS data, which can be applied to various projects requiring geolocation capabilities.

Integrating GPS functionality into Raspberry Pi projects offers a robust foundation for creating advanced IoT applications and location-based services. Today’s class provided a comprehensive understanding of the hardware setup and coding techniques necessary to harness GPS data effectively. As we move forward, these skills will be crucial for the final project development phase, enabling students to implement sophisticated and innovative solutions.

 

 

 

 

BTE1522 Innovation – Week 12 – SSH and Data Visualisation

Today we explored SSH (Secure Shell) and data visualization using the Raspberry Pi platform. This is the final session before students embark on their final projects, providing them with essential skills in remote control and data acquisition.

SSH Connection with Raspberry Pi – We began by establishing an SSH connection to our Raspberry Pi using Putty, a widely-used SSH client. Through SSH, students learned how to remotely control their Raspberry Pi from their local machines, enabling seamless interaction with the Pi’s command-line interface. Navigational commands such as cd, ls, pwd, and mkdir were explored, empowering students to navigate the file system, create directories, and manage files effortlessly.

Data Visualization with Adafruit and BME280 -The session also featured a demonstration of data visualization using the Adafruit platform and the BME280 sensor. Students gained hands-on experience in acquiring environmental data such as temperature, humidity, and pressure using the BME280 sensor, a vital component for IoT (Internet of Things) applications. By visualizing this data, students could better understand real-world applications of sensor data and its significance in various projects.

Remote Python Program Execution -A key highlight of today’s activities was the execution of Python programs remotely via SSH. Students learned how to run Python scripts on their Raspberry Pi from their local machines, enabling them to execute code, perform data analysis, and control hardware components without direct physical access to the Pi. Commands such as nano for text editing and cat for displaying file contents further enriched their understanding of remote file management.

Exploring System Information:
To wrap up the session, we delved into exploring system information commands such as uname -a, df -h, and free -h. These commands provided insights into system specifications, disk space usage, and memory utilization, essential for monitoring and optimizing Raspberry Pi performance.

I look forward to the upcoming project phase, I am confident you  are well-prepared to could apply their this knowledge and skills in developing innovative Raspberry Pi-based solutions.

Nurul

May 24th

BTE1522 Innovation – Week 11 – Global Classroom Dr Basuki Rahmat: Universitas Pembangunan Nasional “Veteran” Jawa Timur

Today’s global classroom session was an honor as I had the privilege of hosting Dr. Basuki Rahmat from Universitas Pembangunan Nasional “Veteran” Jawa Timur. Dr. Basuki’s expertise in IoT-Based Real-Time Temperature Monitoring and Controlling System, particularly the introduction of the Internet-Based Temperature Control Lab (iTCLab), enriched our learning experience and provided valuable insights into the subject matter.

Here’s a recap of today’s session:

  1. Navigating IoT Platform Selection – Choosing the right IoT platform is crucial for ensuring smooth data transmission, scalability, and compatibility with existing systems. This highlights the importance of evaluating different platforms based on factors like ease of integration, security features, data analytics capabilities, and support for industry standards.
  2. Crafting Robust IoT-Based Temperature Monitoring Systems – Designing an IoT-based temperature monitoring and control system requires careful consideration of various factors, including sensor selection, data transmission protocols, and remote control interfaces. This underscores the significance of robust system design to meet specific application requirements while maintaining reliability and efficiency.Understanding Digital PID Controllers and Input Limits:In IoT-based temperature control systems, understanding the limitations of digital PID controllers in receiving input is crucial. This underscores the importance of comprehending the operational characteristics and limitations of PID controllers to optimize system performance and ensure stability. By understanding how PID controllers operate and their impact on temperature control, students can effectively tune parameters and address input limitations for enhanced system efficiency.
  3. Exploring Applications of iTCLab Temperature Monitoring Systems – The iTCLab temperature monitoring and control system offers versatile applications across various industries, including manufacturing, agriculture, healthcare, and environmental monitoring. Recognizing the system’s ability to provide precise temperature control for quality assurance, process optimization, and regulatory compliance empowers students to envision innovative solutions tailored to specific industry needs.
  4. Optimizing MQTT for Low-Power Devices – Acknowledging the importance of energy efficiency and resource optimization in IoT deployments, optimizing MQTT for low-power devices involves minimizing data overhead, reducing transmission frequency, and implementing power-saving techniques. By mastering MQTT optimization techniques, students can design efficient and sustainable IoT solutions for diverse applications.

Today’s global classroom session gives a valuable insights into the IoT-based real-time temperature monitoring and controlling system, focusing on the technological advancements, challenges, and opportunities in the field.

The interactive discussions and active participations from students highlighted the diverse applications, design considerations, and optimization strategies relevant to IoT deployments.

I look forward to such collaborative learning environments and engage in knowledge-sharing initiatives to drive innovation and address real-world challenges effectively.

 

BTE1522 Innovation – Week 10 – Multimedia On Raspberry Pi

In today’s BTE1522 session, we looked into the multimedia capabilities offered by the Raspberry Pi. Step 6 and Step 7 of our hands-on activities took us through the exciting journey of photo capture, video recording, and local video streaming.

Photo Capture and Video Recording

In this step, our focus was on harnessing the power of the Raspberry Pi camera module to capture photos and record videos using Python. The learning outcomes were twofold: exploring multimedia capabilities and mastering Python programming for media tasks.

Photo capture using the Raspberry Pi camera module enables users to capture high-quality images directly from their Raspberry Pi devices. This functionality is very useful in projects requiring visual documentation, such as surveillance systems, wildlife monitoring, and environmental monitoring. With Python programming, users can customize photo capture settings, automate image capture based on predefined conditions, and integrate photos into larger projects seamlessly.

Innovative Uses includes –

  1. Home Security Systems: Raspberry Pi-based home security systems leverage photo capture to monitor and record activities in and around the premises. Motion detection algorithms can trigger photo capture, providing users with real-time updates and alerts on their mobile devices.
  2. Environmental Monitoring: Researchers and environmental enthusiasts utilize Raspberry Pi cameras to capture images of wildlife, plant growth, and environmental changes over time. These images contribute to scientific studies, ecological research, and conservation efforts.
  3. Digital Signage: In retail and hospitality industries, Raspberry Pi-powered digital signage solutions incorporate photo capture to display dynamic and engaging content. Captured images of products, services, or promotions enhance the visual appeal of digital displays and attract customers’ attention.

Local Video Streaming

Moving forward, we explored the basics of video streaming and implemented local video streaming on the Raspberry Pi. This step aimed to broaden our understanding of multimedia applications and introduce the concept of live video streaming.

Video streaming on the Raspberry Pi enables users to transmit live video footage over a network, facilitating real-time communication, monitoring, and collaboration. This functionality finds applications in remote surveillance, video conferencing, educational webinars, and live event broadcasting. Using the power of Python and video streaming libraries, users can create customized video streaming solutions tailored to their specific needs.

It’s innovative work includes:-

  1. Remote Surveillance Systems: Raspberry Pi-based surveillance systems stream live video footage from multiple cameras to a centralized monitoring station. Users can access live feeds remotely via web browsers or mobile applications, enhancing security and surveillance capabilities.
  2. Educational Webinars: Educators and trainers leverage Raspberry Pi video streaming capabilities to conduct interactive webinars, lectures, and workshops. Live video streams facilitate real-time engagement, Q&A sessions, and collaborative learning experiences for participants.
  3. Live Event Broadcasting: Raspberry Pi devices equipped with cameras and streaming capabilities enable users to broadcast live events, performances, and conferences to a global audience. Whether it’s a music concert, sports match, or corporate event, live video streaming enhances audience reach and engagement.

This activities today laid the foundation for more advanced streaming applications and paved the way for further exploration in multimedia development. By the end of these activities, students gained valuable insights into the multimedia capabilities of Raspberry Pi and develop their Python skills for media-related tasks. They left the session equipped with the knowledge and confidence to embark on more ambitious multimedia projects in the future.

Took vis Pi Camera 5.0 mpxl camera

Stay tuned for our next session as we continue our journey into the world of innovation with Raspberry Pi!

 

 

 

 

 

 

BTE1522 – Innovation (Python) – Week 9 – BME 280

Exploring Temperature & Humidity Sensing with Python

In Week 9 of our BTE 1522 Innovation (Python) class, we explored temperature and humidity sensing using Python programming. Let’s recap the key activities and learning outcomes from this week’s session:

Activity 5 – Temperature & Humidity Sensor

We learned about working with the I2C communication protocol, which is commonly used for connecting and communicating with external sensors.
Reading data from external sensors and interpreting the sensor data were the main coding concepts covered in this activity.

Level up Activities

In the Level Up challenge for Week 9, students were tasked with building upon their knowledge from previous labs and enhancing their Python programs to incorporate additional features and functionalities.

1. Completed Lab 4 with BME 280 Sensor

Students revisited Lab 4, which involved reading ambient temperature, pressure, and humidity using the BME 280 sensor. This sensor is commonly used for environmental sensing applications and provides accurate measurements of these parameters.

2. Modified Codes to Incorporate Enhancements

  • Displayed Sensor Readings with Units: Students modified their Python codes to display temperature, pressure, and humidity readings with appropriate units. This enhancement ensured that the data presented to users was clear, informative, and easy to interpret.
  • Captured Data Every 6 Seconds: To enhance the data acquisition process, students adjusted their programs to capture sensor data at regular intervals of 6 seconds. This modification allowed for more frequent updates of sensor readings, enabling users to track changes in environmental conditions over time.
    Implemented Red LED Blinking for Temperature Readings: As a visual indicator of sensor activity, students incorporated red LED blinking whenever temperature readings were taken. This feature provided immediate feedback to users, indicating when temperature data was being sampled by the sensor.

3. Level Up Challenge: Displayed Data on an OLED Screen

  • In the ultimate level up challenge, students were tasked with integrating an OLED (Organic Light Emitting Diode) screen into their projects to display sensor data in real-time. OLED screens offer advantages such as high contrast, wide viewing angles, and low power consumption, making them ideal for displaying text and graphics.
  • By successfully implementing this feature, students elevated the functionality of their Python programs to a new level. Displaying sensor data on an OLED screen provided a visually appealing and intuitive way for users to monitor environmental conditions and interact with the system.

The level up activities encouraged students to innovate and enhance their Python programs beyond the basic requirements. By incorporating OLED display integration, students elevated their projects to a new level of sophistication. OLED displays provide a visually appealing way to present sensor data in real-time, offering clear and concise information to users. Through this enhancement, students not only demonstrated their mastery of sensor data acquisition and interpretation but also showcased their creativity in user interface design and data visualization. Overall, the level up activities served as a platform for students to explore advanced concepts and apply innovative solutions to real-world challenges, fostering a spirit of creativity and experimentation in their Python projects.

 

 

BTE1522 – Innovation (Python) – Week 8 – Assignment 1

Job well done everyone!

In this assignment, students of BTE1522 are required to modify the Slider Game with the following requirements:-

  1. Multi-Enemy Challenge: Modify the code to introduce a second enemy with a different color and movement pattern. Students should ensure that collision detection works for both enemies and update the scoring accordingly. Angelina & Hui Zhi     

    https://x.com/angelina_lina05/status/1780980368713355396?t=OiP41KEI_H3ZtgVfFKuzPQ&s=08

  2. Power-ups Implementation: Add power-ups that appear randomly on the screen. When the player collides with a power-up, provide a temporary advantage such as increased speed or invincibility. Aerie & Eason

     

  3. Difficulty Levels: Implement different difficulty levels (easy, medium, hard) that adjust parameters such as enemy speed, player speed, and the rate of appearance of enemies. Salita & Huda 
  4. Obstacle Course: Introduce obstacles on the screen that the player must avoid colliding with. These obstacles should be placed randomly and have collision detection similar to the enemies. Syarah & Jia Hui

https://x.com/yIchiBaN1/status/1782343976680591540?t=QmEYhoxrJFqziV-SiZ5YsQ&s=08

Customizable Player: Allow the player to choose from different characters with varying sizes and colors. Ensure that collision detection and player movement are adjusted accordingly.  Farihin & 

  1. Endless Runner Mode: Modify the game to have an endless runner mode where the player continuously moves forward, and obstacles/enemies appear at increasing speeds. Implement a scoring system based on the distance traveled. Ashraf & Azhad
  2. Boss Battle: Design a boss enemy with unique characteristics and a health bar. The boss should have different attack patterns, and the player must defeat it to win the game. Implement scoring based on boss defeat time and remaining health. Aiman

 

….. and they did well. Congratulations!

 

BTE1522 – Innovation (Python) – Week 8 – Activity 3 GPIO LED Blinks

Hi BTE-ian,

This week, we looked into hardware construction and coding concepts, exploring fundamental skills essential for building interactive systems. The plan is o integrate GPIO (General Purpose Input/Output) pins and Python programming to control hardware components such as LEDs. 

Activity 3 – Delay, time sleep
In this activity, we look into the importance of timing in hardware control, specifically the time.sleep() function – introduce delays between actions, gaining insight into how timing impacts the behavior of hardware components. By constructing simple circuits and adjusting delay intervals, students developed a deeper understanding of the relationship between code execution and physical response.

Activity 4 – Controlling LED from Keyboard
Building upon the timing and GPIO control, we looked into interactive programming by controlling an LED using keyboard input. Conditional statements and event handling techniques, are applied, to manipulate the LED’s state based on user commands. This activity encourages students to explore the concept of user-driven interaction, laying the foundation for more complex control schemes in future projects.

Challenge: Incorporating LED Output into the Slider Game:
Towards the end, students were tasked with enhancing their Slider Game project by integrating LED output, aiming at synchronizing LED behavior with game events, such as player collisions and game over conditions. Through creative problem-solving and iterative development, students aimed to create an immersive gaming experience where LED feedback enhances player engagement and provides real-time feedback.

Learning Outcomes:

  1. Understanding of basic hardware construction and GPIO control.
  2. Proficiency in controlling hardware components through Python code.
  3. Application of conditional statements and event handling in interactive programming.
  4. Integration of hardware output (LEDs) with software applications for enhanced user experience.