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'
a
a
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
Upates für Erweiterungen; Erweiterungen aus einem Projekt löschen.
Alle I²C-Erweiterungen von calliope-net (MakeCode-Blöcke).
Calliope-Apps, .hex-Dateien, Bildschirmfotos mit Blöcken
Alle MakeCode-Projekte von calliope-net (Programmierbeispiele).
GitHub-Profil calliope-net: https://github.com/calliope-net
Alle I²C-Module und Bezugsquellen (Hardware).
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)