Git Product home page Git Product logo

rpcollection's Introduction

rpCollection

Java-Objekte zum Anfassen am Raspberry Pi

Beschreibung

Bei der Objektorientierten Modellierung (OOM) spielen Objekte eine fundamentale Rolle. Der klassische Ansatz im Unterricht arbeitet mit rein virtuellen Objekten - sämtliche Interaktion und auch die Objektkommunikation spielt sich im Rechner ab. Nicht selten kommt es dabei vor, dass man Objekte im wahrsten Sinne des Wortes gar nicht "sieht".

Ziel dieses Projektes ist es, Objekte begreifbar zu machen und Objektkommunikation zu visualisieren. Dafür stehen für den Unterricht Bauteile bereit, mit denen sich verschiedene Szenarien modellieren lassen. Die Schülerinnen und Schüler bekommen so die Möglichkeit, Objekte tatsächlich anzufassen und ihren aktuellen State (Zustand) nicht nur über Methoden zu erfragen, sondern auch zu sehen (Bauteil: RGB-LED) oder zu hören (Bauteil: Summer).

Auch die Kommunikation ist dabei dabei zu verfolgen. Die Idee ist im folgenden Bild veranschaulicht (pinke Kreise = am Raspberry Pi angeschlossene Bauteile (über Steckbrett), pinke Pfeile = Objektkommunikation).

Objektkommunikation der Bauteile am Raspberry Pi

Die Umsetzung im Unterricht setzt auf Groovy (genauer: die Groovy-Console, aufzurufen über groovyConsole), in der sich mit korrekter Java-Syntax mit den Objekten praktisch arbeiten lässt (Objekte erstelen, Objekte modifizieren, Methoden aufrufen, Attribute abfragen etc.).

Es stehen folgende Bauteile (bzw. Objekte) bereit:

  • Diode (LED)
  • RGB-LED
  • Phototransistor
  • Taster
  • AD-Wandler (für den Anschluss eines MCP3008- / MCP3208-Chips)
  • Summer
  • Motor (für den Anschluss eines Fischertechnik-Motors)

Bilder

Im folgenden Bild ist eine angeschlossene RGB-LED zu erkennen. Die Kabel für Rot, Grün und Blau sind farblich abgestimmt, Schwarz ist für Ground (GND).

Angeschlossene RGB-LED am Raspberry Pi

Bilder sind auch im Ornder

/Arbeitsblaetter/img/

zu sehen (Anschluss eines Helligkeitssensors, Diode und einer RGB-LED). Weitere Bilder folgen bei Gelegenheit.

Angeschlossene LED (Diode) am Raspberry Pi
LED
Angeschlossene RGB-LED am Raspberry Pi
RGB-LED
Angeschlossener Taster am Raspberry Pi
Taster
Angeschlossener Phototransistor am Raspberry Pi
Phototransistor
Angeschlossener Summer am Raspberry Pi
Summer
Angeschlossener AD-Wandler am Raspberry Pi (mit vier Reglern)
AD-Wandler (mit vier Reglern)

Voraussetzungen

Hardware

  • Raspberry Pi
  • GPIO
  • Steckbrett
  • Kabel zum Anschluss des GPIO an den Raspberry Pi (Flachbandkabel)
  • Bauteile (Bauanleitungen und Bilder folgen)

Software

Die Installation kann wie folgt durchgeführt werden:

sudo apt install openjdk-11-jdk wiringpi snapd
wget https://pi4j.com/download/pi4j-1.4.deb
sudo dpkg -i pi4j-1.4.deb

Nach einem Neustart des Raspberry Pi muss noch folgendes nachinstalliert werden:

sudo snap install groovy --classic

Evtl. weitere Software

  • LaTeX für den Etikettendruck (falls Bauteile nachgebaut werden sollen oder die Arbeitsblätter kompiliert werden sollen)
  • KiCad zum Ausdrucken und Bearbeiten der Schaltpläne (Website)

Anwendung und Beispiel

Starten

Mit dem Aufruf

bash start.sh

werden die Java-Dateien kompiliert und die Groovy-Console gestartet, sodass mit den Bauteilen gearbeitet werden kann. Die Pfade für Pi4J sind beim Aufruf bereits eingebunden.

Beispiel

Durch die Eingaben

meinLicht = new rpDiode()
meinLicht.setPin(17)
meinLicht.an()

wird eine an Pin 17 (BCM-Nummerierung) angeschlossene LED angeschaltet.

Für den Unterricht wurden extra Klassen erstellt, die der Modellierung aus dem Unterricht für das Theater-Arbeitsblatt entsprechen. Beispielsweise greift die Klasse Scheinwerfer auf die Klasse rpDiode zum Ansteuern einer LED zurück.

So ist es möglich, auf die im Unterricht getroffene Namensvergabe für die modellierten Objekte und Methoden einzugehen.

Andere Startskripte

Groovy-Shell

bash GSstart.sh
  • Starte die Groovy-Shell (mit eingebundenen Pfaden für Pi4J)
  • kein kompilieren der Java-Klassen (der Aufruf geht damit schneller)

bzw.

bash GSstartC.sh
  • Starte die Groovy-Shell (mit eingebundenen Pfaden für Pi4J)
  • kompilieren der Java-Klassen
  • dieses Skript entspricht dem Standard-Startskript start.sh

Groovy-Console

 bash GCstart.sh
  • Starte die Groovy-Console (mit eingebundenen Pfaden für Pi4J)
  • kein kompilieren der Java-Klassen (der Aufruf geht damit schneller)

bzw.

 bash GCstartC.sh
  • Starte die Groovy-Console (mit eingebundenen Pfaden für Pi4J)
  • kompilieren der Java-Klassen (der Aufruf geht damit schneller)

Begleitung durch eine Masterarbeit

Die hier vorgestellten Materialien entstanden überwiegend im Rahmen einer Masterarbeit an der TU Dortmund. Weitere Informationen sind im Ordner

/Masterarbeit_Heiner_Stroick

zu finden (Direktlink).

Lizenz / License

Alle Dateien in diesem Repository steht unter einer Namensnennung – Nicht-kommerziell – Weitergabe unter gleichen Bedingungen 4.0 International-Lizenz (sofern nicht anders in der jeweiligen Datei angegeben). Die Bedingungen der Lizenz können unter folgendem Link eingesehen werden: http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de

rpcollection's People

Contributors

ferdymercury avatar joneppie avatar luvbca avatar

Watchers

 avatar  avatar

Forkers

joneppie luvbca

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.