IR-Fernsteuerung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Klemens.frick (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Martin.teufel (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(13 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
== [[Datei:Icon_story.png|20px|Icon]] IRre Idee ==
== [[Datei:Icon_story.png|20px|Icon]] IRre Idee ==
[[Datei: Fernsteuerung.jpg |right|400px|link=| Alte Fernsteuerung]]
[[Datei: fernsteuerung.jpg |right|400px|link=| Alte Fernsteuerung]]
Efe und Sophie lieben es, Elektroschrott zu neuem Leben zu erwecken.
Efe und Sophie lieben es, Elektroschrott zu neuem Leben zu erwecken.


Sie haben bei ihren Eltern '''alte Fernbedienungen''' gefunden und fragen sie, ob sie damit noch irgendetwas fernsteuern können. Efe packt seinen micro:bit aus und sagt:
Sie haben bei ihren Eltern '''alte Fernbedienungen''' gefunden und fragen sie, ob sie damit noch irgendetwas fernsteuern können. Efe packt seinen BBC micro:bit aus und sagt:
:„Ich denke damit könnte es funktionieren! Lass uns schnell im Internet dazu schlau machen:“
:„Ich denke, damit könnte es funktionieren! Lass uns schnell uns im Internet dazu schlau machen:“


Infrarot (IR)-Fernsteuerungen senden für den Menschen nicht sichtbare (infrarote) Lichtpulse aus.
Infrarot (IR)-Fernsteuerungen senden für den Menschen nicht sichtbare (infrarote) Lichtpulse aus.
Zeile 14: Zeile 14:
[[Datei: fernsteuerung_signal.png|500px|IR-Signale (Icons von https://www.flaticon.com/authors/icongeek26)]]
[[Datei: fernsteuerung_signal.png|500px|IR-Signale (Icons von https://www.flaticon.com/authors/icongeek26)]]


Ebenso kann das auch der micro:bit, er benötigt dazu nur einen '''kleinen IR-Empfänger'''. So verbindest du diesen mit dem micro:bit.
Ebenso kann das auch der BBC micro:bit, er benötigt dazu nur einen '''kleinen IR-Empfänger'''. So verbindest du diesen mit dem BBC micro:bit (dabei ist egal, ob das rote oder grüne Kabel rechts oder links ist, nur das schwarze (GND) muss in der Mitte sein):


[[Datei: wiring_ir_sensor.png|400px|link=]]
[[Datei: wiring_ir_sensor.png|400px|link=]]




:“Das ist so cool. So hab ich jetzt statt zwei Button auf einmal mehr als 20 mit denen ich den micro:bit ansprechen kann. Ich lass mir mal bei jeder Taste ein anderes Symbol auf dem Display anzeigen. Später mache ich noch zwei Erweiterungsprojekte - ein '''ferngesteuertes Klavier''' und eine '''mehrfarbige LED''' steuern. Die Anleitung dafür findest du ganz unten bei [[#Weiterentwicklung]]!“
:“Das ist so cool. So hab ich jetzt statt der zwei Buttons auf der alten Fernbedienung mehr als 20 Buttons, mit denen ich den BBC micro:bit ansprechen kann. Ich lass mir mal bei jeder Taste ein anderes Symbol auf dem Display anzeigen. Später mache ich noch zwei Erweiterungsprojekte - ein '''ferngesteuertes Klavier''' und eine '''mehrfarbige LED'''. Die Anleitung dafür findest du ganz unten bei [[#Weiterentwicklung]]!“




Zeile 31: Zeile 31:


* BBC micro:bit (mit USB-Kabel und Batterie)
* BBC micro:bit (mit USB-Kabel und Batterie)
* kleinen IR-Empfänger (z.B. von [[https://www.conrad.at/de/p/tru-components-os-1838-ir-empfaenger-sonderform-axial-bedrahtet-38-khz-940-nm-35-1572283.html Conrad]])
* kleiner IR-Empfänger (z.B. von [[https://www.conrad.at/de/p/tru-components-os-1838-ir-empfaenger-sonderform-axial-bedrahtet-38-khz-940-nm-35-1572283.html Conrad]])
* für Klavier: Lautsprecher (nicht benötigt wenn micro:bit v2 verwendet)
* für Klavier: Lautsprecher (nicht benötigt, wenn du BBC micro:bit V2 verwendest)
* für Mehrfarben-LED: einen Neopixel-Streifen mit 1-3 LEDs (microbit v1) oder 1-6 LEDs (micro:bit v2)
* für Mehrfarben-LED: einen Neopixel-Streifen mit 1-3 LEDs (BBC microbit V1) oder 1-6 LEDs (BBC micro:bit V2)
* Krokoklemmen
* Krokoklemmen


Zeile 47: Zeile 47:
== [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen ==
== [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen ==
Du solltest bereits:
Du solltest bereits:
* ein Beispiel mit [[Ereignissteuerung]] und [[Variablen]] gemacht haben.
* auf [[Ereignissteuerung|Ereignisse]] reagieren können
* eine [[Variable]] erstellen können


Beim Programmieren lernst bzw. übst du:
Du lernst
* ein bis zwei Erweiterungsmodule deinem Projekt hinzuzufügen
* ein bis zwei Erweiterungsmodule deinem Projekt hinzuzufügen
* auf bestimmte Werte des IR-Empfängers zu reagieren
* auf bestimmte Werte des IR-Empfängers zu reagieren


Bei dieser Aufgabe lernst du auch:
Bei dieser Aufgabe lernst du auch:
* Elektronsiche Bauteile mit dem micro:bit verkabeln
* elektronische Bauteile mit dem BBC micro:bit zu verkabeln


== [[Datei:Icon faecher.png|20px|Icon]] Unterrichtsfächer ==
== [[Datei:Icon faecher.png|20px|Icon]] Unterrichtsfächer ==
Zeile 60: Zeile 61:


== [[Datei:Icon_hilfe.png|20px|Icon]] Tipps und Hilfestellungen ==
== [[Datei:Icon_hilfe.png|20px|Icon]] Tipps und Hilfestellungen ==
=== Erforderliche Programmierblöcke ===
[[Ereignissteuerung]], [[Variablen]]


=== Eckpfeiler zur Programmierung ===
=== Eckpfeiler zur Programmierung ===


* Zum Programmieren brauchen wir hier eine Erweiterung. Diese findest du in MakeCode über [[Datei: fortgeschritten.png|150px|link=|]] und dann [[Datei: erweiterungen.png|150px|link=|]]
* Zum Programmieren brauchen wir hier eine Erweiterung. Diese findest du in MakeCode über [[Datei: fortgeschritten.png|150px|link=|]] und dann [[Datei: erweiterungen.png|150px|link=|]]
* Dann suchen nach '''''ir''''' und installiere '''''makebit-ir-receiver'''''  
* Dann suche nach '''''ir''''' und installiere '''''makebit-ir-receiver'''''  
[[Datei: makebit_ir.png|200px|link=|]]
[[Datei: makebit_ir.png|200px|link=|]]
* Es erscheint nun der neue Block '''''MakerBit''''' und wenn du dort draufklickst '''''IR Empfänger''''' [[Datei: makerbit_ir-empfaenger.png|150px|link=|]]
* Es erscheint nun der neue Block '''''MakerBit''''' und wenn du dort draufklickst '''''IR Empfänger''''' [[Datei: makerbit_ir-empfaenger.png|150px|link=|]]
* Die neu auftauchenden Blöcke verwenden wir gleich in einem ersten Programm zum Herausfinden der verwendeten IR-Kommandos der Fernbedienung. <spoiler text="Code"><pre id="3">
* Die neu auftauchenden Blöcke verwenden wir gleich in einem ersten Programm zum Herausfinden der verwendeten IR-Kommandos der Fernbedienung. <spoiler text="Code">[[Datei: Screenshot_ir_getvalues.png|link=]]</spoiler>
makerbit.onIrButton(IrButton.Any, IrButtonAction.Pressed, function () {
    basic.showNumber(makerbit.irButton())
})
makerbit.connectIrReceiver(DigitalPin.P1, IrProtocol.NEC)
</pre>
</spoiler>


* Wenn man jetzt eine Taste auf der Fernbedienung drückt, wird am micro:bit ein Code/eine Zahl dargestellt. Notiert euch die Taste und den dazu passenden Code. Am besten in eine Tabelle, wie folgende:
* Wenn man jetzt eine Taste auf der Fernbedienung drückt, wird am BBC micro:bit ein Code/eine Zahl dargestellt. Notiert euch die Taste und den dazu passenden Code. Am besten in einer Tabelle wie folgende (Achtung: die Werte deiner Fernbedienung können andere sein!):
{| class="wikitable"
{| class="wikitable"
|-
|-
Zeile 98: Zeile 96:


* Die Blöcke für das Herausfinden der Codes können wir jetzt abändern.
* Die Blöcke für das Herausfinden der Codes können wir jetzt abändern.
* Um jetzt etwas mit der Fernbedienung auszulösen, müssen wir den empfangenen Code überprüfen und dann die passende Aktion ausführen. Beispiel: Wenn On/Off-Taste gedrückt, zeige Herz-Symbol. <spoiler text="Code">
* Um jetzt etwas mit der Fernbedienung auszulösen, müssen wir den empfangenen Code überprüfen und dann die passende Aktion ausführen. Beispiel: Wenn On/Off-Taste gedrückt, zeige Herz-Symbol. <spoiler text="Code">[[Datei: Screenshot_ir_heart.png|link=]]</spoiler>
<pre id="3">
makerbit.onIrButton(IrButton.Any, IrButtonAction.Pressed, function () {
    if (makerbit.irButton() == 0) {
        basic.showIcon(IconNames.Heart)
    }
})
makerbit.connectIrReceiver(DigitalPin.P1, IrProtocol.NEC)
</pre>
</spoiler>


* Zeige bei jeder Taste, die du auf der Fernbedienung drückst ein anderes Symbol.  
* Aufgabe jetzt: Zeige bei jeder Taste, die du auf der Fernbedienung drückst, ein anderes Symbol.  


* Probiere anschießend die Weiterentwicklungen [[#Ferngesteuertes Klavier]] und [[#Mehrfarbige LED]] aus.
* Probiere anschießend die Weiterentwicklungen [[#Ferngesteuertes Klavier]] und [[#Mehrfarbige LED]] aus.


=== Schritt für Schritt zur Lösung ===
=== Lösung ===
(Das Schritt-für-Schritt Tutorial für dieses Projekt findest du [# hier].)
Den Code für die Aufgabe findest du <spoiler text="hier">[[Datei: Screenshot ir symbols.png|link=]]</spoiler>




Zeile 130: Zeile 119:


=== Ferngesteuertes Klavier ===
=== Ferngesteuertes Klavier ===
* Für micro:bit v1 schließe die Lautsprecher an Pin 0 und GND an (V2 hat den Lautsprecher schon eingebaut)
* Für BBC micro:bit V1 schließe die Lautsprecher an Pin 0 und GND an (V2 hat den Lautsprecher schon eingebaut)
* Spiele bei jeder auf der Fernbedienung gedrückten Taste einen anderen Ton ab.
* Spiele bei jeder auf der Fernbedienung gedrückten Taste einen anderen Ton ab.


=== Mehrfarbige LED ===
=== Mehrfarbige LED ===
* Installiere die Erweiterung '''''neopixel'''''
* Installiere die Erweiterung '''''neopixel'''''
* Verbinde dein Neopixel-Band mit deinem micro:bit <spoiler text="Achte auf die richtige Verkabelung">
* Verbinde dein Neopixel-Band mit deinem BBC micro:bit <spoiler text="Achte auf die richtige Verkabelung">
# '''Pin 0''' vom micro:bit &rarr; '''Din''' von Neopixel
# '''Pin 0''' vom BBC micro:bit &rarr; '''Din''' von Neopixel
# '''3V''' vom micro:bit &rarr; '''+5V''' von Neopixel
# '''3V''' vom BBC micro:bit &rarr; '''+5V''' von Neopixel
# '''GND''' vom micro:bit &rarr; '''GND''' von Neopixel
# '''GND''' vom BBC micro:bit &rarr; '''GND''' von Neopixel
[[Datei: Wiring_ir_neopixel.png|550px|link=]]
[[Datei: Wiring_ir_neopixel.png|550px|link=]]
</spoiler>
</spoiler>
Zeile 144: Zeile 133:
* Achtung:
* Achtung:
** setzte im Code die Helligkeit deines '''strip''' auf '''20'''  
** setzte im Code die Helligkeit deines '''strip''' auf '''20'''  
** schließe am micro:bit v1 '''höchstens 3''' Neopixel an, am v2 kannst du bis zu 6 anschließen
** schließe am BBC micro:bit V1 '''höchstens 3''' Neopixel an, am [[Microbit-v2|v2]] kannst du bis zu 6 anschließen
** zu viel Strom zerstört deinen micro:bit! Erklärung dafür [[Hardware#Lichtgestaltung_mit_Neopixel|hier]].
** zu viel Strom zerstört deinen BBC micro:bit! Erklärung dafür [[Hardware#Lichtgestaltung_mit_Neopixel|hier]]


* Ändere die Farbe der LED, je nachdem welche Taste gedrückt wurde. <spoiler text="Ganzer Code hier">
* Ändere die Farbe der LED, je nachdem, welche Taste gedrückt wurde. <spoiler text="Code">[[Datei: Screenshot_ir_neopixel_program.png|link=]]</spoiler>
<pre id="3">
makerbit.onIrButton(IrButton.Any, IrButtonAction.Pressed, function () {
    if (makerbit.irButton() == 232) {
        strip.showColor(neopixel.colors(NeoPixelColors.Green))
    } else if (makerbit.irButton() == 0) {
        strip.showColor(neopixel.colors(NeoPixelColors.Blue))
    } else if (makerbit.irButton() == 156) {
        strip.showColor(neopixel.colors(NeoPixelColors.Purple))
    } else if (makerbit.irButton() == 28) {
        strip.showColor(neopixel.colors(NeoPixelColors.Yellow))
    } else if (makerbit.irButton() == 240) {
        strip.showRainbow(1, 360)
    } else if (makerbit.irButton() == 184) {
        strip.showColor(neopixel.colors(NeoPixelColors.Red))
    } else if (makerbit.irButton() == 120) {
        strip.showColor(neopixel.colors(NeoPixelColors.Orange))
    }
})
let strip: neopixel.Strip = null
makerbit.connectIrReceiver(DigitalPin.P1, IrProtocol.NEC)
strip = neopixel.create(DigitalPin.P1, 1, NeoPixelMode.RGB)
strip.setBrightness(20)
</pre>
</spoiler>
* Wenn du alles richtig gemacht hast, <spoiler text="leuchtet es">
* Wenn du alles richtig gemacht hast, <spoiler text="leuchtet es">
[[Datei: Ir neopixel.gif|link=]]
[[Datei: Ir neopixel.gif|link=]]

Aktuelle Version vom 30. März 2022, 07:40 Uhr

Icon IRre Idee

Alte Fernsteuerung
Alte Fernsteuerung

Efe und Sophie lieben es, Elektroschrott zu neuem Leben zu erwecken.

Sie haben bei ihren Eltern alte Fernbedienungen gefunden und fragen sie, ob sie damit noch irgendetwas fernsteuern können. Efe packt seinen BBC micro:bit aus und sagt:

„Ich denke, damit könnte es funktionieren! Lass uns schnell uns im Internet dazu schlau machen:“

Infrarot (IR)-Fernsteuerungen senden für den Menschen nicht sichtbare (infrarote) Lichtpulse aus.

In der Fernbedienung ist eine Infrarot-LED, die sich in bestimmten Abständen ein- und ausschaltet.

Der Empfänger (der Fernseher/Beamer) kann diese Signale mit einem Sensor empfangen und je nach Länge und Abstand wie Morsezeichen auswerten.

IR-Signale (Icons von https://www.flaticon.com/authors/icongeek26)

Ebenso kann das auch der BBC micro:bit, er benötigt dazu nur einen kleinen IR-Empfänger. So verbindest du diesen mit dem BBC micro:bit (dabei ist egal, ob das rote oder grüne Kabel rechts oder links ist, nur das schwarze (GND) muss in der Mitte sein):


“Das ist so cool. So hab ich jetzt statt der zwei Buttons auf der alten Fernbedienung mehr als 20 Buttons, mit denen ich den BBC micro:bit ansprechen kann. Ich lass mir mal bei jeder Taste ein anderes Symbol auf dem Display anzeigen. Später mache ich noch zwei Erweiterungsprojekte - ein ferngesteuertes Klavier und eine mehrfarbige LED. Die Anleitung dafür findest du ganz unten bei #Weiterentwicklung!“


Icon Aufgabenstellung

  • Wir installieren eine Erweiterung und lesen damit die Signale des IR-Empfängers aus
  • Anschließend fragen wir die Signale ab und reagieren darauf
  • Genaue Anleitung unter #Eckpfeiler zur Programmierung


Icon Materialien

  • BBC micro:bit (mit USB-Kabel und Batterie)
  • kleiner IR-Empfänger (z.B. von [Conrad])
  • für Klavier: Lautsprecher (nicht benötigt, wenn du BBC micro:bit V2 verwendest)
  • für Mehrfarben-LED: einen Neopixel-Streifen mit 1-3 LEDs (BBC microbit V1) oder 1-6 LEDs (BBC micro:bit V2)
  • Krokoklemmen


Icon Zeitaufwand

  • ca. 1 Schulstunde zur Programmierung
  • ca. 1 Schulstunde für das anschließende Spielen und Experimentieren

Icon Schwierigkeitsgrad

borderlessborderlessborderless

Icon Kompetenzen

Du solltest bereits:

Du lernst

  • ein bis zwei Erweiterungsmodule deinem Projekt hinzuzufügen
  • auf bestimmte Werte des IR-Empfängers zu reagieren

Bei dieser Aufgabe lernst du auch:

  • elektronische Bauteile mit dem BBC micro:bit zu verkabeln

Icon Unterrichtsfächer

Werkerziehung, Informatik

Icon Tipps und Hilfestellungen

Erforderliche Programmierblöcke

Ereignissteuerung, Variablen

Eckpfeiler zur Programmierung

  • Zum Programmieren brauchen wir hier eine Erweiterung. Diese findest du in MakeCode über und dann
  • Dann suche nach ir und installiere makebit-ir-receiver

  • Es erscheint nun der neue Block MakerBit und wenn du dort draufklickst IR Empfänger
  • Die neu auftauchenden Blöcke verwenden wir gleich in einem ersten Programm zum Herausfinden der verwendeten IR-Kommandos der Fernbedienung. <spoiler text="Code"></spoiler>
  • Wenn man jetzt eine Taste auf der Fernbedienung drückt, wird am BBC micro:bit ein Code/eine Zahl dargestellt. Notiert euch die Taste und den dazu passenden Code. Am besten in einer Tabelle wie folgende (Achtung: die Werte deiner Fernbedienung können andere sein!):
Taste Code
On/Off 0
Auto Set 232
Computer 1 28
Computer 2 156
... ...
  • Die Blöcke für das Herausfinden der Codes können wir jetzt abändern.
  • Um jetzt etwas mit der Fernbedienung auszulösen, müssen wir den empfangenen Code überprüfen und dann die passende Aktion ausführen. Beispiel: Wenn On/Off-Taste gedrückt, zeige Herz-Symbol. <spoiler text="Code"></spoiler>
  • Aufgabe jetzt: Zeige bei jeder Taste, die du auf der Fernbedienung drückst, ein anderes Symbol.

Lösung

Den Code für die Aufgabe findest du <spoiler text="hier"></spoiler>


Icon Präsentation und Reflexion

  • Stelle dein Ergebnis vor! Was ist dir besonders gut gelungen?
  • Was hat dir bei der Entwicklung deines Produkts gefallen?
  • Welche Schwierigkeiten hattest du? Wie konntest du diese lösen?
  • Erläutere, wie du dein Produkt programmiert hast!
  • Was war bei dieser Aufgabe interessant für dich?


Icon Weiterentwicklung

Ferngesteuertes Klavier

  • Für BBC micro:bit V1 schließe die Lautsprecher an Pin 0 und GND an (V2 hat den Lautsprecher schon eingebaut)
  • Spiele bei jeder auf der Fernbedienung gedrückten Taste einen anderen Ton ab.

Mehrfarbige LED

  • Installiere die Erweiterung neopixel
  • Verbinde dein Neopixel-Band mit deinem BBC micro:bit <spoiler text="Achte auf die richtige Verkabelung">
  1. Pin 0 vom BBC micro:bit → Din von Neopixel
  2. 3V vom BBC micro:bit → +5V von Neopixel
  3. GND vom BBC micro:bit → GND von Neopixel

</spoiler>

  • Achtung:
    • setzte im Code die Helligkeit deines strip auf 20
    • schließe am BBC micro:bit V1 höchstens 3 Neopixel an, am v2 kannst du bis zu 6 anschließen
    • zu viel Strom zerstört deinen BBC micro:bit! Erklärung dafür hier
  • Ändere die Farbe der LED, je nachdem, welche Taste gedrückt wurde. <spoiler text="Code"></spoiler>
  • Wenn du alles richtig gemacht hast, <spoiler text="leuchtet es">

</spoiler>