Diese Seite bei https://calliope-net.github.io/fernsteuerung/ öffnen
Calliope Bluetooth Erweiterung zur Fernsteuerung und Fernprogrammierung von Robotern mit Motoren und Servo
- fügt der Erweiterung radio neue Blöcke zum Bluetooth senden und empfangen hinzu
- macht Funktion radio.sendBuffer und Ereignis radio.onReceivedBuffer verfügbar
- damit kann ein Buffer bis 19 Byte Länge über Bluetooth zwischen 2 Calliope übertragen werden
- 6 verschiedene ‘Fahrstrecken’ je 3 Byte können gleichzeitig übertragen werden
- in den 3 Byte stehen jeweils Daten für 1. Motor; 2. Servo; 3. Entfernung
- als Betriebsarten werden unterschieden: Fernsteuerung und Programm
- bei Fernsteuerung müssen kontinuierlich Bluetooth Daten gesendet werden (vom Joystick)
- bei Programm werden die 5 ‘Fahrstrecken’ abgefahren, ohne dass Timeout eintritt
- entweder werden die 5 ‘Fahrstrecken’ nacheinander abgefahren, dann Stop
- oder die 5 ‘Fahrstrecken’ werden Ereignissen zugeordnet (Ultraschall und Spursensor)
Als Erweiterung verwenden
Dieses Repository kann als Erweiterung in MakeCode hinzugefügt werden.
- öffne Makecode in der App oder die Webseite https://makecode.calliope.cc/
- klicke auf Neues Projekt und gib deinem Projekt einen Namen
- wähle die zu deinem Calliope mini passende Hardware v1, v2 oder v3
- klicke auf Erweiterungen
- schreibe die folgende Projekt-URL:
- calliope-net/fernsteuerung
- mit der Tastatur oben in das weiße Feld und klicke auf ENTER
- klicke auf das Rechteck fernsteuerung (kann von der Tastatur verdeckt sein)
- jetzt hat die Liste den neuen Eintrag Funk bekommen
- das ist die Original Bluetooth Erweiterung mit den 2 zusätzlichen Kategorien:
- Bluetooth (Buffer übertragen) und Fernsteuerung (Buffer vorbereiten und auslesen)
Beschreibung der Erweiterung ‘Fernsteuerung’
Kategorie Bluetooth
a
Kategorie Datenpaket
a
Daten Struktur
Steuer Byte 0 ..xx.... (2 Bit) Betriebsart
| hex | bit | Funktion | bei Ereignis von einem Sensor |
|---|---|---|---|
| 0x00 | ..00.... |
Fernsteuerung 6 Motoren | Stop bei Hindernis |
| 0x10 | ..01.... |
Fernsteuerung ein Motor M0 | wechselt zum Programm Sensoren |
| 0x20 | ..10.... |
Programm 5 Strecken | Stop bei Hindernis |
| 0x30 | ..11.... |
Programm Sensoren | wechselt zum Ereignis-Block |
Steuer Byte 0 xx..xxxx (6 Bit) Schalter
| hex | bit | Funktion | Beschreibung |
|---|---|---|---|
| 0x80 | 1....... |
Soft-Reset | Calliope zurücksetzen |
| 0x40 | .1...... |
Status senden | Empfänger sendet Status über Bluetooth |
| 0x08 | ....1... |
Schalter | |
| 0x04 | .....1.. |
Schalter | |
| 0x02 | ......1. |
Schalter | |
| 0x01 | .......1 |
Hupe | Buzzer; bei v3 Ton aus Lautsprecher |
Betriebsart: Fernsteuerung 6 Motoren (mit Joystick)
- kontinuierliche Bluetooth Übertragung der Daten vom Joystick
- nur 1 Servo (für Fahr-Motor M0)
- Sensoren: Stop bei Hindernis wenn in Servo Byte 2 aktiviert
- Encoder wird nicht ausgewertet
- zusätzliche Motoren z.B. Gabelstapler oder Kran
Buffer-Struktur (19 Byte) Betriebsart: Fernsteuerung 6 Motoren
| Motor | offset | Funktion | offset | Funktion | offset | Funktion |
|---|---|---|---|---|---|---|
| _ | 0 | Steuer-Byte 0 | ||||
| M0 | 1 | Motor M0 | 2 | Servo | 3 | Steuer-Byte 3 |
| M1 | 4 | Motor M1 | 5 | 6 | ||
| MA | 7 | Motor MA | 8 | 9 | ||
| MB | 10 | Motor MB | 11 | 12 | ||
| MC | 13 | Motor MC | 14 | 15 | ||
| MD | 16 | Motor MD | 17 | 18 |
Steuer Byte 3 ..xxxxxx (6 Bit) Betriebsart: Fernsteuerung 6 Motoren
| hex | bit | offset | Motor | Beschreibung |
|---|---|---|---|---|
| 0x01 | .......1 |
1-2 | M0 | Motor Power |
| 0x02 | ......1. |
4 | M1 | Motor Power |
| 0x04 | .....1.. |
7 | MA | Motor Power |
| 0x08 | ....1... |
10 | MB | Motor Power |
| 0x10 | ...1.... |
13 | MC | Motor Power |
| 0x20 | ..1..... |
16 | MD | Motor Power |
Betriebsart: Programm 5 Strecken
- einmalige Bluetooth Übertragung, kein Timeout
- ein Motor und Servo fährt nacheinander die Strecken
- jede Strecke muss in Steuer Byte 3 aktiviert sein
- Stop nach der letzten Strecke
Buffer-Struktur (19 Byte) Betriebsart: Programm 5 Strecken
| Strecke | offset | Funktion | offset | Funktion | offset | Funktion |
|---|---|---|---|---|---|---|
| _ | 0 | Steuer-Byte 0 | ||||
| (Joystick) | 1 | Motor | 2 | Servo | 3 | Steuer-Byte 3 |
| 1. Strecke | 4 | Motor | 5 | Servo | 6 | Entfernung |
| 2. Strecke | 7 | Motor | 8 | Servo | 9 | Entfernung |
| 3. Strecke | 10 | Motor | 11 | Servo | 12 | Entfernung |
| 4. Strecke | 13 | Motor | 14 | Servo | 15 | Entfernung |
| 5. Strecke | 16 | Motor | 17 | Servo | 18 | Entfernung |
Steuer Byte 3 ..xxxxxx (6 Bit) Betriebsart: Programm 5 Strecken
| hex | bit | offset | Strecke | Beschreibung |
|---|---|---|---|---|
| 0x01 | .......1 |
1 | (Joystick) | |
| 0x02 | ......1. |
4-5-6 | 1. Strecke | aktiviert |
| 0x04 | .....1.. |
7-8-9 | 2. Strecke | aktiviert |
| 0x08 | ....1... |
10-11-12 | 3. Strecke | aktiviert |
| 0x10 | ...1.... |
13-14-15 | 4. Strecke | aktiviert |
| 0x20 | ..1..... |
16-17-18 | 5. Strecke | aktiviert |
Betriebsart: Programm Sensoren
- einmalige Bluetooth Übertragung, kein Timeout
- ein Motor und Servo fährt ereignisgesteuert die Strecken
- jedes Ereignis muss in Steuer Byte 3 aktiviert sein
- Strecke endet, wenn aktiviertes Ereignis von Sensor eintritt
- Stop Ereignisse: Ultraschallsensor, Spursensor, Encoder
- Fortsetzung mit dem zum Ereignis passenden Block 1 bis 5
Buffer-Struktur (19 Byte) Betriebsart: Programm Sensoren
| Sensor | offset | Funktion | offset | Funktion | offset | Funktion |
|---|---|---|---|---|---|---|
| _ | 0 | Steuer-Byte 0 | ||||
| (Joystick) | 1 | Motor | 2 | Servo | 3 | Steuer-Byte 3 |
| Ultraschall | 4 | Motor | 5 | Servo | 6 | Entfernung |
| Spursensor 00 | 7 | Motor | 8 | Servo | 9 | Entfernung |
| Spursensor 01 | 10 | Motor | 11 | Servo | 12 | Entfernung |
| Spursensor 10 | 13 | Motor | 14 | Servo | 15 | Entfernung |
| Spursensor 11 | 16 | Motor | 17 | Servo | 18 | Entfernung |
Steuer Byte 3 ..xxxxxx (6 Bit) Betriebsart: Programm Sensoren
| hex | bit | offset | Ereignis | Beschreibung |
|---|---|---|---|---|
| 0x01 | .......1 |
1 | (Joystick) | |
| 0x02 | ......1. |
4 | Ultraschall | Hindernis erkannt |
| 0x04 | .....1.. |
7 | Spursensor | 00 dunkel dunkel |
| 0x08 | ....1... |
10 | Spursensor | 01 dunkel hell |
| 0x10 | ...1.... |
13 | Spursensor | 10 hell dunkel |
| 0x20 | ..1..... |
16 | Spursensor | 11 hell hell |
Konfiguration für alle Betriebsarten
Motor Byte 1 4 7 10 13 16 (8 Bit) Motor Drehzahl
- 0..128..255 (128 ist Stop)
- 0..127 rückwärts; 129..255 vorwärts
Servo Byte 2 5 8 11 14 17 ...xxxxx (5 Bit) Servo Winkel
Zur Übertragung wird der Wert (vom Joystick oder vom MakeCode protractorPicker) in 5 Bit (0..31) umgerechnet. Der Empfänger macht daraus nach der Formel (x + 14) * 3 Winkel von 45° bis 135° in 3° Schritten. Servo wird mit einem Winkel von 45° bis 135° angesteuert. 90° ist geradeaus.
- 1..16..31 (16 und 0 ist geradeaus 90°)
- Formel: (x + 14) * 3
- 1=45° 2=48° 3=51° .. 15=87° 16=90° 17=93° .. 30=132° 31=135°
Servo Byte 2 5 8 11 14 17 xxx..... (3 Bit) Sensor Ereignis aktiviert
| hex | bit | Funktion |
|---|---|---|
| 0x20 | ..1..... |
Stop dieser Fahrstrecke bei Ereignis Spursensor |
| 0x40 | .1...... |
Stop dieser Fahrstrecke bei Ereignis Ultraschallsensor |
| 0x00 | 0....... |
Encoder Auflösung (Entfernung in cm oder Zehntelsekunden) |
| 0x80 | 1....... |
Encoder Auflösung (Entfernung in Impulsen) 1U Motor=63,9 |
Entfernung Byte 6 9 12 15 18 (8 Bit) Entfernung messen aktiviert
- 0: Ereignis (Encoder oder Zeit) ist deaktiviert
- 1..255 0,01 .. 2,55 Meter oder 0,1 .. 25,5 Sekunden
- mit Encodermotor werden Impulse ausgewertet
- ohne Encodermotor wird die Fahrzeit (Zehntelsekunden) ausgewertet
Steuer Byte 3 xx...... (2 Bit) Wert für Ultraschall Entfernung
- 2 Bit codieren die Entfernung für das Ultraschall Ereignis
| hex | bit | Funktion | Beschreibung |
|---|---|---|---|
| 0x00 | 00...... |
Ultraschall Entferung | Stop bei 5 cm |
| 0x40 | 01...... |
Ultraschall Entferung | Stop bei 10 cm |
| 0x80 | 10...... |
Ultraschall Entferung | Stop bei 15 cm |
| 0xC0 | 11...... |
Ultraschall Entferung | Stop bei 20 cm |
Erweiterungen
Upates für Erweiterungen; Erweiterungen aus einem Projekt löschen.
Calliope-Apps, .hex-Dateien, Bildschirmfotos mit Blöcken
Alle MakeCode-Projekte von calliope-net (Programmierbeispiele).
GitHub-Profil calliope-net: https://github.com/calliope-net
Bezugsquellen
Blocks preview 
This image shows the blocks code from the last commit in master. This image may take a few minutes to refresh.

Metadaten (verwendet für Suche, Rendering)
- Calliope mini
- Bluetooth (Buffer)