exilant Geschrieben January 3, 2013 at 11:56 Geschrieben January 3, 2013 at 11:56 Hallo zusammen, ich bin totaler elektronik Laie. Ein paar Kleinigkeiten habe ich zwar schon gemacht aber nichts ernstes. Ich habe da ein Problem und frage mich ob und wie ich es eventuell mit Tinkerforge lösen kann: Ich muss Impulse zählen. Diese treten vergleichsweise selten auf, also im niedrigen einstelligen Hz Bereich, so max. so drei bis vier Impulse/Sek. Diese sollen von einer Lichtschranke oder einem Reed Schalter geliefert werden. Es geht um die Mengenmessung von durchlaufender Textilware. Vereinfacht gesagt wird mit nicht besonders hoher Geschwindigkeit Gewebe von einer Rolle auf eind andere gerollt . Dabei möchte ich zählen, wie oft ein bestimmtes Metallteil (eine Art "Speiche") an einer Lichtschranke oder einem Reedkontakt vorbeiläuft. Dadurch würde ich mit ausreichender Genauigkeit die Menge der umgerollten Ware erfassen können. Allerdings sollten die Impulse quasi gepuffert werden bis meine Software den "Zählerstand" abholt und zurücksetzt. Die Hardware besteht aus einem Raspberry (mit Akkupack) und verwendet zur Anzeige des Zählerstandes ein LCD Bricklet. Versuche mit dem IR Bricklet verliefen schon vielversprechend, sind aber bauartbedingt nicht für alle diese Rollen geeignet. Obendrein gingen mir ab und zu Impulse verloren, da - warum auch immer - callbacks nicht ausgeführt wurden. Irgendeine Idee? Grüße, Martin Zitieren
AuronX Geschrieben January 3, 2013 at 12:54 Geschrieben January 3, 2013 at 12:54 Wenn du die TF-Hardware ganz normal benutzen möchtest, dann kannst du auf deinem Pi per Callback lauschen und dort "puffern". Das wirst du vermutlich im Moment genau so tun. Es sollten eigentlich keine Callbacks "verloren" gehen. Wie meinst du das? Weißt du, dass die Lichtschranke den Impuls wahrgenommen haben muss und der Callback blieb aus? Zum Puffern: Wenn du möchtest, dass dein IR-Bricklet den Zählerstand puffert, dann vermute ich, dass das möglich ist. Allerdings müsstest du dafür das Distance-IR-Plugin modifizieren. Dieses ist in C geschrieben (mit einigen Einschränkungen) und öffentlich verfügbar. Standardmäßig kann es sowas aber noch nicht. Ich habe aber zeit- und lust-bedingt bisher noch nie selbst versucht ein eigenes Plugin zu kompilieren, kann dir also leider keine tiefergehende Hilfestellung geben. Zitieren
Nic Geschrieben January 3, 2013 at 13:36 Geschrieben January 3, 2013 at 13:36 Welches IR-Bricklet ist es denn - Distanz oder Temp-IR ? Wenn ich dich richtig verstehe möchtest Du sowas ähnliches machen, wie man mit einem Fahrrad-Computer die Geschwindigkeit des Rades misst ? Dazu werden eig. auch die Impulse gemessen. Nur liegt der Sensor zwar an den Speichen, aber dieser muss sehr nahe zum Empfänger ausgerichtet sein. Mit IR-Sensoren habe ich eher schlechte Erfahrungen gemacht: z.B. IR-Fernauslöser für Kameras/Blitze sind nicht immer zuverlässig in der Detection/Auslösung. Starke Winkelabhängigkeit, Reflexionsgrad der Oberfläche, störlichtempfindlich etc. M.W. funktionieren deshalb die Fahrradcomputer zuverlässiger mit einem Magneten(Sender) der in einer Spule (Empfänger) an der Radgabel ein Spannungsimpuls induziert. Ev. würde ich mal nach so einem Sensor googeln und diesen ev. an ein IO-Bricklet anschliessen. Gut möglich das der IR für die Erfassung der dünnen Speichen bei Deinen Textilrollen zu langsam, bzw. unzuverlässig ist. Mit der niedr. Frequenz sollten die Callbacks aber allemal funktionieren. Zitieren
exilant Geschrieben January 3, 2013 at 15:37 Autor Geschrieben January 3, 2013 at 15:37 >Welches IR-Bricklet ist es denn - Distanz oder Temp-IR ? Distanz. >Wenn ich dich richtig verstehe möchtest Du sowas >ähnliches machen, wie man mit einem Fahrrad-Computer >die Geschwindigkeit des Rades misst ? Exakt. Ich denke auch, dass ich mit einem Magnetschalter und 'nem IO Bricklet sowas besser als jetzt hinkriege. Ich werde da mal googlen. Vielen Dank. Zitieren
exilant Geschrieben January 3, 2013 at 16:15 Autor Geschrieben January 3, 2013 at 16:15 >...dann kannst du auf deinem Pi per Callback lauschen > und dort "puffern". Das wirst du vermutlich im Moment > genau so tun. Ja. So mache ich das im Moment. >Es sollten eigentlich keine Callbacks "verloren" >gehen. Da habe ich mich falsch ausgedrückt: Da ist kein Callback "verloren gegangen" sondern der Distanz Sensor hat nicht mitgekriegt das die "Speiche" vorbeigerauscht ist und folglich gab es keinen Callback. Kommt nicht oft vor, aber öfter als ich es tolerieren kann. Zitieren
FabianB Geschrieben January 3, 2013 at 16:42 Geschrieben January 3, 2013 at 16:42 Ich habe den Thread nur überflogen, sorry, wenn ich was Sinnfreies schreibe: Das Shannon-Theorem besagt, dass eine Abtastfrequenz mindestens doppelt so hoch sein muss wie die höchste Frequenz im abgehörten Signal. Das kann man vom Schema her wohl übertragen würde ich sagen: Wenn die Speiche also vorbeirauscht und dabei jeweils(je nachdem, wie dick sie ist) eine 100stel Sekunde vor dem Sensor ist, dann muss der Sensor mindestens jede 50stel Sekunde abtasten, damit die Speiche nie "übersehen" wird. kannst du über die Abtastfrequenz nichts verbessern? Hilft der Hinweis? EDIT: Sorry, hab gerade erst gesehen, dass Nic das in etwa schon gesagt hat. Zitieren
Nic Geschrieben January 3, 2013 at 17:02 Geschrieben January 3, 2013 at 17:02 Ich würde vielleicht mal einen unipolaren Hallsensor TLE 4905L http://www.reichelt.de/?ARTICLE=25717;PROVID=1024 ausprobieren, Nachteil bei diesem hier er braucht min. 3,8V VersorgSp. Der IO4 liefert nur 3,3V dann eher zum IO16 greifen. Vielleicht gibt es so ein gutes Teil irgendwann mal als Bricklet Zitieren
exilant Geschrieben January 4, 2013 at 10:25 Autor Geschrieben January 4, 2013 at 10:25 @Nic: Danke für den Link. Auf "Hallsensoren" bin ich auch gestossen. Aber jetzt tut sich eine weitere Anforderung auf die ich mit TF wohl nicht mehr erfüllen kann: Der Zähler soll Resetfest sein. Er soll den Reset des angeschlossenen Rechners überleben. Da gibt es fertige Lösungen, die sind aber schweineteuer und leider nur via RS232 / RS485 anzuschließen und können viel mehr als ich brauche. Muss ich mich wirklich bei Arduino umtun.... Zitieren
AuronX Geschrieben January 4, 2013 at 11:20 Geschrieben January 4, 2013 at 11:20 @exilant: Reset des angeschlossenen Rechners heißt der RaspberryPi? Ansonsten würde ich empfehlen die Modifikation des Plugins zu machen und den Stack per WLAN/Ethernet-Extension (letzteres hoffentlich bald erhältlich) zu realisieren. Mit eigener Stromversorgung, z.B. per USB-Netzteil. Dann ist der Stack unabhängig vom PC. Dann müsste im Fehlerfall sowohl der Host-PC, als auch der STack ausfallen, damit du DInge übersiehst: Falls nur der PC ausfällt, dann zählt dein Stack einfach intern weiter (dank neuem Plugin) bis der PC wieder da ist. Falls der Strom vom Stack ausfällt... naja, da gibt es keine Hardware die das per se toleriert Und ne USV davor zu tun ist überall möglich ^^ Zitieren
Nic Geschrieben January 4, 2013 at 11:48 Geschrieben January 4, 2013 at 11:48 Ansonsten würde ich empfehlen die Modifikation des Plugins zu machen Man sollte aber schon erwähnen, dass das keine triviale Angelegenheit ist und Erfahrung und Motivation in hardwarenaher C-Programmierung voraussetzt. Verschärfend kommt hinzu, dass es (noch) keine hilfreiche Einführung zur Modifikation des Bricklet-Codes (Plugin ins Eeprom des Master-Bricks) hier im Portal gibt. Ev. wird das einfacher mit der OnDevice-API, hierzu wurde schon heute eine http://www.tinkerunity.org/forum/index.php/topic,1266.msg7787.html#msg7787 von vielen Anfragen gestellt. Der Wunsch nach einem RS232-Bricklet wurde auch schon oft gestellt, und die Chance auf Realisierung dürfte steigen je mehr Interesse es dafür gibt. Zitieren
exilant Geschrieben January 4, 2013 at 13:14 Autor Geschrieben January 4, 2013 at 13:14 @exilant: Reset des angeschlossenen Rechners heißt der RaspberryPi? Ja, Reset des Hosts an dem der Masterbrick angeschlossen ist. Falls der Strom vom Stack ausfällt... naja, da gibt es keine Hardware die das per se toleriert Und ne USV davor zu tun ist überall möglich Nein, es muss nicht hochverfügbar sein. Es soll aber möglich sein, den Host neu zu starten ohne den Zählerstand zu verlieren und der Zähler muss weiter inkrementiert werden. Ich denke aber, das übersteigt meine Fähigkeiten deutlich-> Elektronik-Laie. Ich kann nur programmieren.... Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.