Ga naar hoofdinhoud

Motoren

Eliobot motors topEliobot motors bottom

notitie

De motoren van Eliobot worden rechtstreeks door de batterij gevoed en werken dus alleen als de ontstekingsknop in de ON-positie staat.

Gebruik met Elioblocs

Om de motoren van Eliobot op Elioblocs te gebruiken, gebruiken we blokken uit de categorie Beweging omdat dit de motoren zijn waarmee Eliobot kan bewegen.

Gebruik met Python

Om Eliobot-engines in Python te gebruiken, kunt u de functies gebruiken die beschikbaar zijn in de elio.py bibliotheek.

De motoren zijn aangesloten op de volgende pinnen:

LinkermotorRechter motor
IN1IO35IO36
IN2IO37IO38

Motoren kunnen op twee manieren worden aangestuurd: digitaal of PWM

Bij digitaal bedrijf hebben we alleen de mogelijkheid om de motor in de ene of de andere richting te draaien en te stoppen.

In PWM is het ook mogelijk om de snelheid van de motor te wijzigen en deze van 0% naar 100% van de maximale snelheid te laten gaan.

Voor meer informatie over pwm: Wikipedia PWM

Gerelateerde voorbeelden

Elioblocs-voorbeeld

voorbeeld beweging elioblocs

Hier gebruiken we de Categorie beweging-blokken om Eliobot vooruit te laten gaan als hij geen obstakel voor hem detecteert, anders draait hij naar rechts.


Python-voorbeeld

Bij de boekwinkel 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 dit voorbeeld gaat Eliobot vooruit als hij geen obstakel voor hem detecteert, anders draait hij naar rechts.

Zonder de boekwinkel 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

Hetzelfde voorbeeld als voorheen, maar zonder gebruik van de elio.py bibliotheek.