Jump to content

[Gelöst] USB-Verbindung wird nach Events unterbrochen (Masterbrick / Analog In)


aaronk6

Recommended Posts

Hallo zusammen,

 

ich möchte eine Push Notification auf mein iOS-Gerät erhalten, wenn jemand bei mir an der Tür klingelt. Die alte Klingel soll weiter funktionieren.

 

So sieht mein Setup bisher aus:

 

  • Türklingel ist mit Analog In Bricklet verbunden (Parallelschaltung, siehe Foto)
  • Masterbrick ist per USB an Mac mini angeschlossen (ohne Hub)
  • Python-Script registriert einen Callback für eine Spannungsänderung auf mehr als 250 mV (beim Klingeln messe ich etwa 1V)

 

Das funktioniert soweit, aber nach drei mal Klingeln geht die USB-Verbindung reproduzierbar kaputt:

 

2014-02-19 22:50:23.061920 <W> <usb|usb_transfer.c:85> Read transfer 0x7fb21a001168 returned with an error from Master Brick [XXXXXX]: LIBUSB_TRANSFER_ERROR (1)
2014-02-19 22:50:23.062002 <E> <usb|usb_transfer.c:256> Could not submit read transfer 0x7fb21a001168 to Master Brick [XXXXXX]: LIBUSB_ERROR_PIPE (-9)

 

(Die ID meines Master Bricks habe ich unkenntlich gemacht.)

 

Erst nach neu Anschließen des USB-Steckers geht es wieder. Habt ihr Ideen, woran das liegen könnte? Ich werde es als nächstes mit einem anderen Rechner testen – da das mit größerem Aufwand verbunden ist, wollte ich vorher mal fragen, ob das Setup prinzipiell in Ordnung ist und ob dieser Fehler eventuell schon bekannt ist.

 

Detaillierte Informationen zu meiner Hardware/Firmware in meiner Signatur.

 

Danke!

 

Aaron

IMG_5049_2.jpg.0b51de0378e798df31c2789e1e81d4b8.jpg

Link zu diesem Kommentar
Share on other sites

Hallo rasby,

 

Danke für deine Antwort! Bzgl. Gleichstrom oder Wechselstrom bin ich mir nicht sicher und habe leider kein Equipment da, um das zu messen. Möglicherweise hilft der Graph im Brick Viewer – Screenshot im Anhang. Deutet der auf Wechselstrom hin? Wenn ja, wie kann ich das Problem dann lösen? Ist der Analog In nicht für Wechselstrom geeignet?

 

Aaron

Screen-Shot-2014-02-21-at-08_54_52.jpg.9247d2ccdbb4d9fee479d1f0c01309d4.jpg

Link zu diesem Kommentar
Share on other sites

Das Analog In Bricklet ist für Gleichspannung gemacht.

 

Von deinem Bild her sieht das nach einer typischen Klingel mit 12V Wechselspannung aus.

 

Bei der negativen Halbwelle verpolst du dann die Eingänge des Bricklet was erklären kann warum der Master Brick aus dem Takt kommt.

 

Du kannst eine Diode zwischen Klingel und Bricklet setzen, so dass nur noch die positive Halbwelle durchkommt und das Bricklet nicht mehr verpolt wird.

Link zu diesem Kommentar
Share on other sites

Hallo photron,

 

vielen Dank für die Hinweise! Ich habe nun eine Diode dazwischen gesteckt (siehe Foto). Das Ergebnis ist, dass ich jetzt weniger Spannung messe und das Problem nicht mehr direkt nach drei mal Klingeln auftritt.

 

Sun Feb 23 13:44:32 2014 Door bell rang! (0.539V)
Sun Feb 23 14:08:02 2014 Door bell rang! (0.79V)
Sun Feb 23 14:08:31 2014 Door bell rang! (0.362V)
Mon Feb 24 09:29:39 2014 Door bell rang! (1.201V)
Mon Feb 24 19:25:02 2014 Door bell rang! (0.782V)

 

Mit Sturmklingeln kriegt man es aber leider immer noch kaputt. Hast du eine weitere Idee, woran das liegen könnte? An meinem Script bzw. der dort festgelegten Debounce Period liegt es wohl nicht, da das Problem auch auftritt, wenn ich mir die Spannung im brickv angucke. Hält man den Klingelknopf gedrückt, tritt der o.g. USB-Fehler auf und der brickv zeigt dauerhaft den zuletzt empfangenen Wert an.

IMG_5066_2.thumb.jpg.fb46abb1a497b24efc37513a72370f5d.jpg

Link zu diesem Kommentar
Share on other sites

Kann es vielleicht daran liegen, dass der callback zu häufig auslöst und die Leitung immer noch verstopft? Hast du mal versucht die Werte zu Pollen anstatt den callback zu benutzen?

 

Edit: die debounce Periode wird zum entprellen genutzt. Versuch mal die callback Periode hochzusetzen.

Link zu diesem Kommentar
Share on other sites

Ich habe mir gerade mal den Quellcode des BrickV angesehen. Er benutzt auch Callbacks: https://github.com/Tinkerforge/brickv/blob/master/src/brickv/plugin_system/plugins/analog_in/analog_in.py#L47

 

Zum Test könntest du aber auch versuchen ein anderes Bricklet im BrickV anzusehen und sturmzuklingeln. Wenn es dann zu einem Absturz kommt liegt es nicht an dem Callback.

 

Edit: Sollte der rote Draht der so entstandene Pluspol sein, dann müsste er in die VIN Anschlussklemme gehen. Der schwarze an den GND

Link zu diesem Kommentar
Share on other sites

Ich habe leider kein weiteres Bricklet zur Hand, aber ich denke, dass ich die Callbacks als Fehlerursache ausschließen kann. Das Problem tritt nämlich auch auf, wenn weder der brickv noch mein Script laufen, also gar keine Callbacks registriert sein dürften.

 

Was den Plus-Pol angeht: Ich habe die Diode probehalber umgesteckt (siehe Foto) – keine Besserung.

 

Kann es sein, dass der Analog In nicht mit der pulsierenden Gleichspannung zurecht kommt? Soll ich’s mal mit einer Brückengleichrichtung und einem Kondensator versuchen, um die Spannung zu glätten?

 

Oder gibt’s ein anderes Bricklet, was für diesen Anwendungsfall besser geeignet wäre? Ich bin gerade auf dieses Howto gestoßen: http://www.tinkerforge.com/de/doc/Kits/HardwareHacking/DoorbellNotifier_HardwareSetup.html Dort wird ein Industrial Digital In 4 Bricklet verwendet.

IMG_5088_2.thumb.jpg.14c2a79d911df10e521dd97e2023f5c0.jpg

Link zu diesem Kommentar
Share on other sites

Das Industrial Digital In Bricklet ist für die Anwendung auf jeden Fall besser geeignet, da die negativen Spannungen dort auf Grund der galvanischen Trennung keinerlei Auswirkung haben.

 

Warum die Diode hier keine Wirkung zu zeigen scheint weiß ich allerdings auch nicht. Da müsste man genau nachmessen welche Spannungen beim Bricklet nun noch ankommen.

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...