Zitat Zitat von morob Beitrag anzeigen
alles schick, aber rom wurde auch nicht an einem tag erbaut.
jaja, ich weiss, bin zu langsam

- - - Aktualisiert - - -

Zur Sache: Hier der MicroPython-Code, der für den gestrigen Videoinhalt verantwortlich war:

Code:
# tests pyb-geocephalopod-robot

buzzer = pyb.Pin(pyb.Pin.board.Y12, pyb.Pin.OUT_PP)
servox = pyb.Servo(4) 
servoy = pyb.Servo(3)
irsens = pyb.ADC(pyb.Pin.board.X1)

def lookndetect():
    servox.angle(0)      # calibrate
    servoy.angle(0)      # calibrate
    for i in range(0, 70, 1):
        servox.angle(i)
        lev = irsens.read()  
        print(lev)
        beep(lev,100)
    for i in range(70, 0, -1):
        servox.angle(i)
        lev = irsens.read()  
        print(lev)
        beep(lev,100)
    for i in range(0, -70, -1):
        servox.angle(i)
        lev = irsens.read()  
        print(lev)
        beep(lev,100)
    for i in range(-70, 0, 1):
        servox.angle(i)
        lev = irsens.read()  
        print(lev)
        beep(lev,100)

def beep(lev,dur):
    for i in range(dur):
        buzzer.value(1)
        pyb.udelay(lev)
        buzzer.value(0)
            
def whistle_call():
    for i in range(300, 10, -1):
        buzzer.value(1)
        pyb.udelay(i)
        buzzer.value(0)
    for i in range(10, 700, 1):
        buzzer.value(1)
        pyb.udelay(i)
        buzzer.value(0)    
    for i in range(700, 10, -2):
        buzzer.value(1)
        pyb.udelay(i)
        buzzer.value(0)

def sleep():
    servox.angle(0)      # calibrate
    servoy.angle(0)      # calibrate
    for i in range(10):
        pyb.LED(4).on()
        pyb.delay(10)
        pyb.LED(4).off()
        pyb.delay(90)

def step_r():            # step right
    servoy.angle(0, 100)
    servox.angle(0, 100)
    servox.angle(-70, 100)
    pyb.delay(200)
    servoy.angle(-20, 100)
    pyb.delay(300)
    servox.angle(40, 1000)
    pyb.delay(1000)
    servoy.angle(0, 100)

def step_l():            # step left
    servoy.angle(0, 100)
    servox.angle(0, 100)
    servox.angle(70, 100)
    pyb.delay(200)
    servoy.angle(20, 100)
    pyb.delay(300)
    servox.angle(-40, 1000)
    pyb.delay(1000)
    servoy.angle(0, 100)

def go():
    for i in range(2):   # 2 steps
        lookndetect()
        step_r()
        step_l()

try:
    whistle_call()
    whistle_call()
    switch = pyb.Switch()
    switch.callback(lambda:go())

except:
    sleep()
Heute abend findet die Hochzeit statt, damit meine ich die Vereinigung von Kopf, Controllerboard und Energiespeicher.

Anregungen oder Fragen?
Demnächst mehr.
Gruß
/barbar