Ursprungsmitteilung
Thema Calliope Mini - Do the pins work? 
Autor Dr. Olav Schettler 
Eingangsdatum 2020-04-11 16:28:27.0 
Mitteilung Guten Tag,

ich arbeite an einem Python-Kurs mit Calliope Mini und möchte einen Kontakt an einem der externen Pins anschließen. Mir scheint aber, die Pins werden nicht unterstützt. Kann das jemand bestätigen?

Mein einfaches Programm jedenfalls funktioniert mit dem Microbit, nicht aber mit dem Calliope Mini.

Kann mir jemand weiterhelfen?

Vielen Dank,
-- Olav Schettler


# heisser-draht-01.py
from calliope_mini import *

while True:
if button_a.was_pressed():
display.show(Image(
"99909:"
"90909:"
"90909:"
"90999:"
"90000"
))
sleep(1000)

beruehrt = 0
display.show(str(beruehrt))

if pin1.is_touched():
display.show(Image(
"90009:"
"09090:"
"00900:"
"09090:"
"90009"
))
sleep(1000)

beruehrt += 1

display.show(str(beruehrt))
 
 
      
Antworten
Thema Pins bei Calliope mini 
Autor Jarka 
Eingangsdatum 2020-04-11 17:59:45.0 
Mitteilung Hallo Olav

So viel ich weiss, gibt es in der Calliope-Bibliothek kein Befehl is_touched(), der die Berührung der pins registriert. Die Berührung der Pins kann man mit dem Befehl pin1.read_analog() überprüfen.
Der Befehl pin1.read_analog() gibt die Spannung im Stromkreis zwischen + und pin1 als Zahl zwischen 0 und 1023 zurück. Du kannst selbst eine Funktion is_touched() definieren, es genügt aber auch nur einen Flag is_tochched zu setzen.

Bei mir funktioniert das untenstehende Programm. Wenn ich den pin1 berühre, wird dein Image angezeigt und der Zähler um 1 vergrössert.

from calliope_mini import *

beruehrt = 0
is_touched = False

while True:
if pin1.read_analog() > 400 and is_touched == False:
is_touched = True
display.show(Image(
"90009:"
"09090:"
"00900:"
"09090:"
"90009"
))
beruehrt += 1
display.show(str(beruehrt))
print(beruehrt)
sleep(500)
else:
display.clear()
is_touched = False
sleep(100) 
 
Thema Re: Calliope Mini - Do the pins work?  
Autor Olav Schettler 
Eingangsdatum 2020-04-11 20:33:23.0 
Mitteilung Hallo Jarka,

vielen Dank für die Antwort. Manchmal braucht es einen kleinen Anschub :)

Ich hatte tatsächlich schon ein Beispiel mit einem read_analog() laufen, aber mir nicht realisiert, dass "analog" der einzige Weg zu sein scheint, Daten von den Pins zu lesen. Das funktioniert aber ja prima.

-- Olav