Zum Hauptinhalt springen

Motoren

Eliobot motors topEliobot motors bottom

hinweis

Die Motoren von Eliobot werden direkt von der Batterie angetrieben und funktionieren daher nur, wenn sich der Zündknopf in der Position ON befindet.

Verwendung mit Elioblocs

Um die Motoren von Eliobot in Elioblocs zu verwenden, nutzen wir Blöcke aus der Kategorie Bewegungen, denn diese Motoren bewegen Eliobot.

Verwendung mit Python

Um Eliobot-Motoren in Python zu verwenden, können Sie die in der elio.py-Bibliothek verfügbaren Funktionen nutzen.

Die Motoren werden an folgende Pins angeschlossen:

Linker MotorRechter Motor
IN1IO35IO36
IN2IO37IO38

Motoren können auf zwei Arten gesteuert werden: Digital oder PWM

Im digitalen Betrieb haben wir nur die Möglichkeit, den Motor in die eine oder andere Richtung zu drehen und anzuhalten.

Bei der PWM wird es auch möglich sein, die Geschwindigkeit des Motors zu ändern und ihn von 0 % auf 100 % seiner maximalen Geschwindigkeit zu bringen.

Um mehr über pwm zu erfahren: Wikipedia PWM

Verwandte Beispiele

Elioblocs-Beispiel

exemple mouvement elioblocs

Hier verwenden wir die Kategorie Bewegung-Blöcke, um Eliobot vorwärts zu bewegen, wenn er kein Hindernis vor sich erkennt; andernfalls dreht er nach rechts.


Python-Beispiel

Mit der Bibliothek elio.py

from elio import Eliobot
import board
import time
import digitalio
import analogio
import pwmio

vBatt_pin = analogio.AnalogIn(board.BATTERY)

obstacleInput = [analogio.AnalogIn(pin) for pin in
(board.IO4, board.IO5, board.IO6, board.IO7)]

lineCmd = digitalio.DigitalInOut(board.IO33)
lineCmd.direction = digitalio.Direction.OUTPUT

lineInput = [analogio.AnalogIn(pin) for pin in
(board.IO10, board.IO11, board.IO12, board.IO13, board.IO14)]

AIN1 = pwmio.PWMOut(board.IO36)
AIN2 = pwmio.PWMOut(board.IO38)
BIN1 = pwmio.PWMOut(board.IO35)
BIN2 = pwmio.PWMOut(board.IO37)

buzzer = pwmio.PWMOut(board.IO17, variable_frequency=True)

elio = Eliobot(AIN1, AIN2, BIN1, BIN2, vBatt_pin, obstacleInput, buzzer, lineInput, lineCmd)

speed = 100


while True:
if elio.get_obstacle(1):
elio.turn_right(speed)

else:
elio.move_forward(speed)

In diesem Beispiel bewegt sich Eliobot vorwärts, wenn er kein Hindernis vor sich erkennt, andernfalls dreht er sich nach rechts.

Ohne die Bibliothek elio.py

import elio
import time
import board
import pwmio

# Configuration des pins
moteurDroit1 = pwmio.PWMOut(board.IO36)
moteurDroit2 = pwmio.PWMOut(board.IO38)
moteurGauche1 = pwmio.PWMOut(board.IO35)
moteurGauche2 = pwmio.PWMOut(board.IO37)

# Vitesse des moteurs
vitesse = 65535 # vitesses entre 0 et 65535

while True:
if elio.getObstacle(1):
moteurDroit1.duty_cycle = 0
moteurDroit2.duty_cycle = vitesse
moteurGauche1.duty_cycle = vitesse
moteurGauche2.duty_cycle = 0

else:
moteurDroit1.duty_cycle = vitesse
moteurDroit2.duty_cycle = 0
moteurGauche1.duty_cycle = 0
moteurGauche2.duty_cycle = vitesse

Gleiches Beispiel wie zuvor, jedoch ohne Verwendung der elio.py-Bibliothek.