Zum Inhalt

DC Brick

DC Brick

DC Brick

Mit der DC Brick kann man DC-Elektromotoren (Gleichstrom) steuern.

Vorbereitung und Test mit dem Brick-Viewer

Die DC-Brick kann alleine, d.h. ohne eine Master-Brick benutzt und gesteuert werden. Wenn aber mehrere DC-Bricks oder andere Bricks miteinander gestackt werden, dann muss eine Master-Brick zuunterst im Stack dabei sein.

DC Brick Anschlüsse

Die DC-Brick besitzt zwei Stecker (grün und schwarz). Der grüne Stecker ist für den Anschluss des DC-Motors. Der schwarze Stecker ist für die externe Stromversorgung, da der USB-Anschluss zuwenig Strom und Spannung liefert um einen Motor zu betreiben. Das Brick kann an eine Spannung zwischen 6 V und 28 V angeschlossen werden.

Unsere Motoren laufen mit einer Spannung von 6 V. Die DC-Brick kann dann einfach mit einer unserer Batteriehalterungen betrieben werden.

DC Brick mit Motor und Batterie

Mit dem Brick-Viewer kann dann der Motor getestet werden. Einfach die DC-Brick auswählen und auf Enable DC Motor klicken. Danach kann mit den Parameter gespielt werden. Die Parameter Velocity, Acceleration werden dann in der Initialisierung angegeben. PWM-Frequency muss nicht geändert werden.

DC Brick im Brick Viewr

Mehrere Motoren steuern

Man braucht für jeden Motor eine DC-Brick, welche man stappeln kann. Damit man nicht jede DC-Brick mit einer Batterie versorgen muss, kann man zuunterst im Stack eine Step-Down Power-Supply anbringen. Diese kann dann mit der Batterie verbunden werden und versorgt dann alle Bricks im Stappel mit dem benötigten Strom.

Initialisierung

Code um die DC-Brick anzusteuern

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Adressierung
# Diese beiden Zeilen nur 1x pro Programm nutzen:
HOST = "localhost"
PORT = 4223

# UID der Brick 
dcBrickUID = "xxxxxx" # UID aus dem Brick Viewer (6-stellig)

# Import der wichtigen Funktionen
from tinkerforge.ip_connection import IPConnection
from tinkerforge.brick_dc import BrickDC

# Verbindung herstellen
ipcon = IPConnection()
dcBrick = BrickDC(dcBrickUID, ipcon)
ipcon.connect(HOST, PORT)

# DC-Motor-Einstellungen konfigurieren. Das sind Standardeinstellungen.
# Andere Werte können mit dem Brick Viewer getestet werden.
dcBrick.set_drive_mode(dcBrick.DRIVE_MODE_DRIVE_BRAKE)
dcBrick.set_pwm_frequency(10000)
dcBrick.set_acceleration(55000)

Funktionen im Hauptprogramm

Den Motor steuern

dcBrick.enable()

aktiviert den Motorentreiber. Dieser kann nun angesteuert werden.

dcBrick.set_velocity(velocity)

setzt die Geschwindigkeit des Motors. velocity eine ganze Zahl ist. Hierbei sind -32767 maximale Geschwindigkeit rückwärts, 0 ist Halt und 32767 maximale Geschwindigkeit vorwärts.

dcBrick.disable()

deaktiviert den Motorentreiber.

Test

Eine Deaktivierung während der Motor sich noch dreht kann zur Beschädigung der Brick führen. Der Motor sollte durch Aufrufen von set_velocity(0) gestoppt werden, bevor disbale() aufgerufen wird. Die set_velocity() Funktion wartet nicht bis der Motor wirklich zum Stillstand gekommen ist. Dazu muss nach dem Aufruf der set_velocity() Funktion eine angemessen Zeit gewartet werden bevor die disable() Funktion aufgerufen wird.

Beispiel-Programm

Beispiel

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Adressierung
# Diese beiden Zeilen nur 1x pro Programm nutzen:
HOST = "localhost"
PORT = 4223

# UID der Brick 
dcBrickUID = "xxxxxx" # UID aus dem Brick Viewer (6-stellig)

# Import der wichtigen Funktionen
from tinkerforge.ip_connection import IPConnection
from tinkerforge.brick_dc import BrickDC

# Verbindung herstellen
ipcon = IPConnection()
dcBrick = BrickDC(dcBrickUID, ipcon)
ipcon.connect(HOST, PORT)

# DC-Motor-Einstellungen konfigurieren. Das sind Standardeinstellungen.
# Andere Werte können mit dem Brick Viewer getestet werden.
dcBrick.set_drive_mode(dcBrick.DRIVE_MODE_DRIVE_BRAKE)
dcBrick.set_pwm_frequency(10000)
dcBrick.set_acceleration(55000)


# Das Hauptprogramm

# Volle Gescwindigkeit (100 %)
dcBrick.set_velocity(32767)
dcBrick.enable() # Enable motor power

# 5 Sekunden fahren, danach mit kleinerer Geschwindigkeit weiter
time.sleep(5)
dcBrick.set_velocity(20000)


# Nach 2 s stoppen
time.sleep(2)
dcBrick.set_velocity(0)

# 2 s warten, bis Motor gestoppt hat, danach abschalten.
time.sleep(2)
dcBrick.disable()

ipcon.disconnect()