Das Messen der Entfernung funktioniert, aber nur genau einmal beim Starten des Calliope. Danach bekomme ich immer den gleichen Wert zurückgegeben.
Wie im Beispiel beschrieben, habe ich versucht (am Ende auf allen PINs) für einen kurzen Zeitraum den Sensor mit “Schreibe digitalen Wert von … auf 1” zu einer neuen Messung zu bewegen. Leider erfolglos.
Wie kann man denn eine neue Messung auslösen, ohne den Calliope stromlos zu machen?
Für einen Hinweis wäre ich dankbar.
Viele Grüße
Micha
Unglücklicherweise habe ich an unserer Schule Mitte nächster Woche einen Vorstellungstermin, um ggf. im nächsten Schuljahr eine Stunde am Nachmittag zu füllen. Da wollte ich ein etwas komplexeres Beispiel mit Ultraschall-Sensor vorführen.
Kleiner Hinweis:
immer wieder wird vergessen, das beim Aussenden der 8 Pulse noch nicht gemessen wird / nicht gemessen werden kann. Diese Laufzeit ergibt etwas 6,6cm, was dann einem Abstand von ca. 3cm entspricht. Das sind dann die fehlenden 3cm bei der Entfernungsmessung.
noch ne technische Frage:
wie wird die bidirektionale Portsteuerung realisiert?
Denn beim Grove Ultraschallmodul muss auf dem Empfangsport ( Input ) für die Entfernungsmessung - kurz ein digitaler Puls ausgegeben werden ( Output ).
Vielleicht geht dies nur einmal!!
aus aktuellem Anlass wollte ich für unsere Sekretariat mittels den Calliope eine Art „Ampel“ einrichten. Während der Calliope im Sekretariat der Sender ist, soll der Calliope draußen vor der Tür anzeigen, ob das Sekretariat besetzt oder frei ist. Denn im Moment darf sich nur eine zusätzliche Person hier aufhalten.
Meine erste Idee war die entsprechenden Befehle des Senders per Knopfdruck A oder B zu senden. Dies hat auch wunderbar funktioniert.
Aus hygienischen Gründen - und da wir diese Idee auch an anderen Orten in der Schule gerne einsetzen wollen - sollte die Ansteuerung des Senders per Ultraschallsensor funktionieren. Doch leider ist die Übertragungsrate des FREI bzw. BESETZT - Zeichens stark verzögert. Die Verszögerungszeit des Empfängers liegt zwischen 30 bis 60sec.
Da ich mich mit dem Thema Funk und Ultraschallsensor nicht so gut auskenne, hat das ganze auch erst nach einigen Versuchen geklappt.
Es wäre schön, wenn mir hier jemand helfen könnte, damit die Verzögerung sich minimiert. Anbei ist ein Bild aller Befehle; Sender und Empfänger.
Da sich noch keiner gemeldet hat hier meine Kommentar.
Zuerst zum Hauptproblem, deiner zeitlichen Verzögerung:
Du sendest ja im hundertstelsekundentakt Funksignale. Diese landen alle in der Empfangsschleife, die dann abgearbeitet wird. (Ich glaube es passen 5 in den Empfangspuffer) Es muss also ein paarmal der Text gezeigt werden und das dauert.
Dann würde ich (nach meinem Geschmack) die die Abfrage ändern und zwar so, dass beim ersten Annähern einmal gesendet wird 0 und beim zweitenmal 1. Z.B. eine Variable Zustand erstellen mit dem Namen Frei. Zu Beginn Frei auf falsch setzen.
Wenn entfernung<4 dann (Wenn frei dann sende Zahl(1) Ansonsten sende Zahl(0) frei=nicht(frei))
Oder halt umgekehrt.
So wird nur gesendet wenn jemand nahe an den Sensor kam.
Ich hänge Dir mal ein Bild an.
Vielen lieben Dank für die schnelle Antwort. Ich hab zwar Verständnisprobleme, was der Calliope genau macht, aber es funktioniert einwandfrei. Danke.
Die Übertragungsrate per Funk und der Empfangspuffer waren mir beispielsweise gar nicht so bewusst. Habe es testweise mal mit Text ausprobiert und siehe da, die Verzögerung war wieder da. Bedeutet also in der Praxis, dass man es sehr spartanisch programmieren muss.
Lediglich die Knopf-drücken-Variante funktioniert auch mit Text.