Recycling Smart
Überblick
Auf einen Blick
Schlüsselwörter: KI, Machine Learning, Recycling, Objekterkennung, Nachhaltigkeit
Fächer: Informatik, Technik
Weitere Disziplinen: Umweltwissenschaften
Altersstufe der Schüler*innen: 14–18
Benötigte Vorkenntnisse: Grundkenntnisse im Programmieren (Python), Grundkenntnisse in Robotik, KI-Grundverständnis
Zeitrahmen: 4 x 2 Unterrichtsstunden
Mögliche Partner*innen: Softwareunternehmen, Recyclingunternehmen, andere Schulen
Benötigte Materialien/Hardware/Software
- Hardware: Raspberry Pi, Webcam, Servomotoren (4), Steckbrücken, Coral USB Accelerator
- Kartons/Schachteln (4)
- Laptop
- Raspberry Pi Betriebssystem
Autoren: Dr. Selçuk Yusuf Arslan, Timur Gündoğan (Türkei)
Ko-Autor*innen: Abdüssamed Kuru, Cafer Berat Gülsoy, Melissa Asya Yıldırım (Türkei)
Recycling ist eine wichtige Praxis mit ökologischen, wirtschaftlichen und sozialen Vorteilen und sollte sowohl auf individueller als auch auf gesellschaftlicher Ebene unterstützt werden. Wenn Schulen das Prinzip der Mülltrennung und Wiederverwertung aktiv vermitteln, fördern sie das Umwelt- und Verantwortungsbewusstsein der jungen Generation und sensibilisieren die Schüler*innen dafür, wie sie zu einer nachhaltigen Zukunft beitragen können. Mithilfe von KI-Technologie lässt sich Recycling niedrigschwelliger und motivierender gestalten. Der Erwerb von Kenntnissen in KI-bezogenen Themenfeldern kann die Kreativität der Lernenden fördern und ihre Fähigkeit stärken, innovative Lösungen für die Herausforderungen der Zukunft zu entwickeln.
Dieses Unterrichtsmaterial beruht auf der Idee, Recycling mithilfe von KI-gestützter Objekterkennung zu erleichtern. Die Konstruktion und Programmierung eines intelligenten Recyclingsystems fördern Fähigkeiten in den Bereichen Künstliche Intelligenz und Robotik. Das Material basiert auf einem Projekt, mit dem Schüler*innen einer Berufsschule zum Recyceln motiviert werden sollten. Es wurde im Rahmen des Wahlfachs „Künstliche Intelligenz und Machine Learning“ entwickelt und gewann den ersten Preis in seiner Kategorie beim Wettbewerb des Atatürk Mesleki ve Teknik Anadolu Lisesi in Ankara sowie den ersten Preis beim Wettbewerb „STEM Alliance – Lenovo Competition 2023: Turning Waste into Educational Wonder“.
Recycling ist eine Praxis mit vielen wichtigen Vorteilen: Schonung natürlicher Ressourcen, Energieeinsparung, Abfallvermeidung, Umweltschutz, Schaffung von Arbeitsplätzen und Förderung von Nachhaltigkeit. Recycling kann dazu beitragen, den Verbrauch natürlicher Ressourcen zu reduzieren, und ermöglicht die Wiederverwendung von Rohstoffen, was zu einer nachhaltigeren Nutzung der natürlichen Ressourcen führt, sie für künftige Generationen bewahrt und das ökologische Gleichgewicht erhält. Durch die Verringerung der Abfallmenge entfällt die Notwendigkeit, bestehende Mülldeponien zu erweitern oder neue Flächen zu erschließen. Dadurch verringern sich die Umweltbelastung und die Probleme der Abfallentsorgung. Schließlich schafft der Recyclingsektor auch Arbeitsplätze und trägt damit zum Wirtschaftswachstum bei.
Video des Umweltprogramms der Vereinten Nationen zum #ZeroWasteDay (auf Englisch mit optionalen automatisch übersetzten Untertiteln):
Anleitung für Lehrkräfte
Vor der praktischen Phase recherchieren die Schüler*innen zu Projekten, die mit Künstlicher Intelligenz und Objekterkennung arbeiten, und stellen diese in Referaten vor. So können sie sich im Vorfeld mit der grundlegenden Funktionsweise von Künstlicher Intelligenz und Machine Learning vertraut machen.
Im ersten Schritt wird das Betriebssystem auf dem Raspberry Pi installiert. Danach bekommen die Schüler*innen die Information, welche Bibliotheken sie installieren müssen, um die Anwendung zu programmieren. Die benötigten Bibliotheken und Quellcodes sowie ein bereits trainiertes Machine-Learning-Modell finden Sie in den einzelnen Arbeitsschritten auf dieser Seite bzw. zum Download in diesem Materialordner.
Die Schüler*innen sollten den Code selbst schreiben. Ausgehend von den vorhandenen Programmierkenntnissen entscheidet die Lehrkraft, welche Teile des Codes zur Verfügung gestellt werden und welche die Schüler*innen selbst ergänzen müssen. Zur leichteren Umsetzung des Projekts wird hier ein bereits trainiertes KI-Modell zur Objekterkennung bereitgestellt[3]; es ist jedoch auch möglich, mit Teachable Machine von Google selbst ein Modell zu trainieren und wie weiter unten beschrieben in den Prozess zu integrieren.
Wenn an Ihrer Schule Arduino statt Raspberry Pi genutzt wird und Ihre Schüler*innen keine oder nur wenige Vorkenntnisse in textbasiertem Programmieren haben, lässt sich das Projekt auch mit blockbasiertem Programmieren umsetzen. Einige Ansatzpunkte und Hinweise hierzu finden sich in dieser englischsprachigen Anleitung. Für jüngere Schüler*innen bietet unsere Unterrichtseinheit KI-Superkräfte für die Umwelt detaillierte Ideen und Anleitungen zum Einsatz von Lernrobotern und blockbasierter Programmierung in Verbindung mit dem Thema Mülltrennung.
Schritt A: Bibliotheken einrichten
Die Schüler*innen geben im Raspberry-Terminal die erforderlichen Befehle ein, um die benötigten Bibliotheken zu installieren.
sudo apt-get update
sudo apt-get upgrade
pip install tensorflow
pip install opencv-python
pip install numpy
pip install keras
pip install pigpio
pip install time
sudo apt-get update && sudo apt-get install python3-rpi.gpio
sudo apt-get update && sudo apt-get install python3-pigpio
sudo pigpiod
https://forums.raspberrypi.com/viewtopic.php?t=340847
CORAL USB:
echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update
sudo apt-get install libedgetpu1-std
sudo apt-get install libedgetpu1-max
##sudo pigpiod: Dieser Befehl muss bei jedem Neustart des Raspberry Pi ausgeführt werden, um die Steuerung zu aktivieren.
Schritt B: Den Code schreiben
Die Schüler*innen sollten den Code selbst schreiben. Um sie durch diesen Prozess zu leiten und sie bei der Umsetzung zu unterstützen, können Sie ihnen die folgenden Code-Beispiele und Erläuterungen an die Hand geben.
import os # Bibliotheken importieren
import cv2
from pycoral.utils.dataset import read_label_file
from pycoral.utils.edgetpu import make_interpreter
from pycoral.adapters import common
from pycoral.adapters import classify
import pigpio
import time
import RPi.GPIO as GPIO
import numpy as np
# Pfad zum TFLite-Modell definieren (konvertiert für die Nutzung mit Edge TPU)
modelPath = '/home/admin/Desktop/TF/model_edgetpu.tflite'
# Pfad zur Datei "Labels" definieren, die mit dem Modell heruntergeladen wurde
labelPath = '/home/admin/Desktop/TF/labels.txt'
# GPIO-Pins für die Servomotoren definieren
servo1 = 23
servo2 = 24
servo3 = 25
servo4 = 21
# PWM (Pulsweitenmodulation) für die Servosteuerung über die Pigpio-Bibliothek initialisieren
pwm = pigpio.pi()
pwm.set_mode(servo1, pigpio.OUTPUT)
pwm.set_mode(servo2, pigpio.OUTPUT)
pwm.set_mode(servo3, pigpio.OUTPUT)
pwm.set_mode(servo4, pigpio.OUTPUT)
# PWM-Frequenz für die Servomotoren einstellen
pwm.set_PWM_frequency(servo1, 50)
pwm.set_PWM_frequency(servo2, 50)
pwm.set_PWM_frequency(servo3, 50)
pwm.set_PWM_frequency(servo4, 50)
# Ausgangspositionen der Servomotoren einstellen
pwm.set_servo_pulsewidth(servo1, 500)
time.sleep(1)
pwm.set_servo_pulsewidth(servo2, 500)
time.sleep(1)
pwm.set_servo_pulsewidth(servo3, 500)
time.sleep(1)
pwm.set_servo_pulsewidth(servo4, 500)
time.sleep(1)
# Funktion für die Klassifizierung eines Bildes mit dem zur Verfügung gestellten TF Lite Interpreter
def classifyImage(interpreter, image):
size = common.input_size(interpreter)
common.set_input(interpreter, cv2.resize(image, size, fx=0, fy=0, interpolation=cv2.INTER_CUBIC))
interpreter.invoke()
return classify.get_classes(interpreter)
def main():
# Das Modell in den TF Lite Interpreter laden
interpreter = make_interpreter(modelPath)
interpreter.allocate_tensors()
labels = read_label_file(labelPath)
# Das Videoaufnahmegerät öffnen
cap = cv2.VideoCapture(0)
last_detection_cam = 0 #"cam" steht für "Glas"
last_detection_metal = 0 #"metal" steht für "Metall"
last_detection_plastik = 0
last_detection_kompost = 0
while cap.isOpened():
# Einen Frame vom Videoaufnahmegerät erfassen
ret, frame = cap.read()
if not ret:
break
# Das Bild horizontal drehen
frame = cv2.flip(frame, 1)
# Das Bild klassifizieren und anzeigen
results = classifyImage(interpreter, frame)
cv2.imshow('frame', frame)
# Informationen über das erkannte Objekt extrahieren
detected_label = labels[results[0].id]
confidence_score = results[0].score
print(f'Detected Label: {detected_label}, Score: {confidence_score}')
# Die Servomotoren entsprechend dem erkannten Objekt und Confidence Score steuern ['cam'=Glas]
if detected_label == 'cam' and confidence_score > 0.9:
pwm.set_servo_pulsewidth(servo1, 1700)
last_detection_cam = time.time()
elif detected_label == 'metal' and confidence_score > 0.9:
pwm.set_servo_pulsewidth(servo2, 1700)
last_detection_metal = time.time()
elif detected_label == 'kompost' and confidence_score > 0.9:
pwm.set_servo_pulsewidth(servo3, 1700)
last_detection_kompost = time.time()
elif detected_label == 'plastik' and confidence_score > 0.9:
pwm.set_servo_pulsewidth(servo4, 1700)
last_detection_plastik = time.time()
# Servo-Positionen nach einer bestimmten Zeit zurücksetzen, wenn kein Objekt erkannt wurde
if time.time() - last_detection_cam > 4:
pwm.set_servo_pulsewidth(servo1, 500)
if time.time() - last_detection_metal > 4:
pwm.set_servo_pulsewidth(servo2, 500)
if time.time() - last_detection_kompost > 4:
pwm.set_servo_pulsewidth(servo3, 500)
if time.time() - last_detection_plastik > 4:
pwm.set_servo_pulsewidth(servo4, 500)
# Überprüfen, ob die Taste q gedrückt wird, um die Schleife zu verlassen
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Das Videoaufnahmegerät freigeben und alle OpenCV-Fenster schließen
cap.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
main()
Schritt C: Das System konstruieren
Der Coral USB Accelerator, der maschinelles Lernen beschleunigen kann, lässt sich an jeden USB-Port des Raspberry Pi anschließen. Die Webcam wird ebenfalls per USB verbunden. Die Servomotoren werden wie folgt angeschlossen: Die schwarzen Kabel der Servomotoren werden mit dem Ground-Pin (GND) der Raspberry-Pi-GPIO-Anschlussleiste verbunden, die gelben Kabel mit den auf den Motoren angegebenen GPIO-Pins (23, 24, 25 und 21) und die roten Kabel mit dem 5V-Pin.
Schritt D: Die Behälter bauen
Die Schüler*innen basteln Behälter aus Altkarton und beschriften sie entsprechend den Abfallarten, nach denen getrennt werden soll. Auch eine Farbkodierung bietet sich an. Die Servomotoren werden so an den Deckeln befestigt, dass die Behälter geöffnet und geschlossen werden können.
Schritt E: Das System testen
Nun wird das TensorFlow-Lite-Modell heruntergeladen und der Ordner entpackt. Nach Abschluss all dieser Prozesse wird das System getestet, um zu prüfen, ob es korrekt funktioniert. Die Schüler*innen nehmen gegebenfalls Verbesserungen vor.
Hinweis zur Verwendung eines eigenen Machine-Learning-Modells: Die Schüler*innen können auch selbst recycelbare Gegenstände sammeln (Papier, Verpackung, Altmetall und Bioabfälle) und mit ca. 500 gut ausgeleuchteten Fotos auf Teachable Machine ein eigenes Modell trainieren und exportieren.
Weitere Aktivitäten und Kooperationsmöglichkeiten
Wenn die Konstruktion des Systems erfolgreich abgeschlossen ist, können die Schüler*innen ihre intelligenten Recyclingbehälter an einer geeigneten Stelle in der Schule aufstellen, damit die gesamte Schulgemeinschaft sie ausprobieren und davon profitieren kann. Über QR-Codes auf den Behältern könnte man darüber hinaus Feedback von der Schüler*innenschaft einholen. Beispiele für Fragen:
- Macht dieses Projekt deiner Meinung nach Recycling leichter?
- Was hat dir an dem Projekt besonders gefallen?
- Was würdest du an dem Projekt verbessern?
Dies lässt sich mit einem Quiz erweitern, für das die Projektgruppe Multiple-Choice-Fragen selbst entwickelt hat, zum Beispiel:
- In welche Tonnen gehören jeweils Verpackungsmüll und Altglas? (Die Farbkodierung kann sich je nach Land/Region unterscheiden.)
- Welche dieser Abfallarten sind recycelbar?
- Warum ist Recycling wichtig?
Das in diesem Unterrichtsmaterial beschriebene Projekt kann flexibel ergänzt oder erweitert werden. Beispielsweise lassen sich weitere oder andere Abfallbehälter hinzufügen. Mit der Installation eines Distanzsensors im Innern des Behälters könnte über eine LED-Leuchte angezeigt werden, wenn der Behälter voll ist; ggf. könnte das System so programmiert werden, dass sich in diesem Fall der Deckel nicht mehr öffnet oder das Entsorgungsunternehmen automatisch per E-Mail um Abholung gebeten wird.
Das Projekt lässt sich außerdem auf außerschulische Orte erweitern. Die Schüler*innen könnten ihr Recyclingsystem in lokalen Einrichtungen wie Seniorenheimen oder Kindergärten präsentieren und/oder installieren, um alten Menschen und jüngeren Kindern bei der Mülltrennung zu helfen.
Berufsorientierung
Künstliche Intelligenz ist ein Feld, das neue Ideen und Innovationen fördert. Die Auseinandersetzung mit KI-bezogenen Themen kann dazu beitragen, Kreativität und lösungsorientiertes Denken zu stärken, und sollte ein wichtiger Baustein im schulischen Curriculum sein – nicht nur für diejenigen, die sich für Technologie interessieren, sondern auch mit Hinblick auf die allgemeine Berufsorientierung. Weiterführende Informationen und Ressourcen zur Berufsorientierung unter dem Aspekt von Künstlicher Intelligenz, insbesondere auch zum Thema „KI und Nachhaltigkeit“, finden Sie auf unserer Berufsorientierungsseite.
Schlussbemerkung
Das intelligente Recyclingsystem wurde in drei Schulen in der Türkei getestet. Die teilnehmenden Schulen hatten jeweils fünf Tage Zeit, das System zu implementieren. Die vor die Webcam gehaltenen Abfälle wurden mit etwa 95-prozentiger Genauigkeit erkannt. Die Lehrkräfte beobachteten die Schüler*innen in diesem Prozess, und in den schulinternen Evaluationen beschrieben die Schüler*innen die Nutzung des Systems als leicht, motivierend, unterhaltsam und zeitsparend, während die Lehrkräfte die einfache Handhabung und Anpassbarkeit lobten. Das Feedback wurde genutzt, um das Projekt weiter zu verbessern. Beim Finale der Future League von Science on Stage 2023 wurde eine erweiterte Version mit Behältern für Glas, Papier, Plastik, Biomüll, Batterien und Altmetall präsentiert.
Sehen Sie hier das Projektvideo des Teams für den Future-League-Wettbewerb:
Waste recycling in Europe (Dez 2023)
Döngüsel iktisat yolunda Türkiye: Sıfır Atık Projesi (Jul 2019)
Liyuan Liu & Yen Hsu: "Motivating factors behind the public’s use of smart recycling systems: perceived playfulness and environmental concern". Humanities and Social Sciences Communications 9, 328 (2022).
Josiah Teo: “Smart recycling boxes that reward residents for sorting waste have cut contamination rate". The Straits Times (März 2023).
Weiterführende Informationen zur sogenannten "YOLO"-Objekterkennung finden Sie in dem Artikel "YOLO Object Detection with OpenCV and Python" (2018, abgerufen am 17.07.2024).
"AI Auto-Classify Trash Can", abgerufen am 17.07.2024
Video des UN-Umweltprogramms: #ZeroWaste Day – An opportunity to address the global waste crisis
Diese Seite teilen