Jump to content

photron

Administrators
  • Gesamte Inhalte

    3.189
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    52

Alle erstellten Inhalte von photron

  1. gcc -pthread -o Temperaturanzeige.c ip_connection.c bricklet_temperature.c bricklet_ptc.c bricklet_lcd_20x4.c Mit "-o Temperaturanzeige.c" sagst du gcc er soll das Programm nach Temperaturanzeige.c schreiben, statt Temperaturanzeige.c auch mitzukompilieren. Daher auch das "undefined reference to `main'", weil Temperaturanzeige.c nicht mitkompiliert wurde findet gcc keine main() Funktion und beschwert sich. So sollte das funktionieren: gcc -pthread -o Temperaturanzeige Temperaturanzeige.c ip_connection.c bricklet_temperature.c bricklet_ptc.c bricklet_lcd_20x4.c Jetzt wird Temperaturanzeige.c mitkompiliert und das kompilierte Programm in die Datei Temperaturanzeige geschrieben.
  2. Das hört sich an, als ob das Motion Detektor Bricklet nicht mehr richtig geflashed ist. Um das zu beheben musst du das Bricklet neu flashen. Da der Brick aber in diesem Zustand nicht richtig startet muss du das Bricklet hotpluggen, entgegen dem üblichen Vorgaben. Also erst den Brick per USB anschließen und dann erst das Bricklet an den schon laufenden Brick anschließen und über brickv neu flashen. Siehe http://www.tinkerforge.com/de/doc/FAQ.html#eines-meiner-bricklets-wird-im-brick-viewer-nicht-angezeigt -> Defektes Plugin
  3. Nein, die Bricks sind selbst USB Geräte und können nicht als USB Host agieren, um andere USB Geräte daran anschließen zu können. Sprich ein Master Brick mit WIFI Extension kann nicht als Brücke zwischen WLAN und einem weiteren USB Gerät genutzt werden.
  4. Da springen mir direkt keine richtig groben Fehler ins Auge. Was mir aber auffällt ist diese Zeile strecke = (zaehler - zwSpeicher1) * (radUmfang / 1000); Wobei zaehler, zwSpeicher1 und radUmfang Integerwerte sind. Dies führt dazu, dass radUmfang / 1000 == 2 ist und nicht 2.184 (bei radUmfang == 2184). Das verfälscht deine Werte etwas. Dann ist da noch das Busy Waiting: while(waitingStartTime + 1000 > System.currentTimeMillis()){} Da könnte man stattdessen Thread.sleep(1000) nehmen. Aber das hat denke ich nichts mit deinem Problem zu tun, außer das Busy Waiting wäre recht ungenau und führt nicht zu 1 Sekunde Wartezeit, was sich auch wieder auf die Genauigkeit deiner Berechnung auswirkt. Ansonsten schlage ich vor, dass du dein Programm und deinen Aufbau auf ein Minimum reduzierst. Also nur Master Brick und Industrial Digital In 4 Bricklet und in deinem Programm nur noch den Flankenzähler abfragst und den Wert umrechnest. Wenn das funktioniert liegt das Problem im entfernten Teil des Aufbaus. Wenn das nicht funktioniert, muss man sich nur noch den minimalen Aufbau genauer ansehen.
  5. Per Bindings fertig Blogeintrag
  6. Perl bindings ready Blog entry
  7. Ich glaube, die Frage, ob das im BrickD oder in einem vorgeschalteten Proxy passiert, ist für den Endbenutzer/Entwickler letztlich egal. Wichtig ist, *wo* das läuft, d.h. würde der vorgeschaltete Proxy dann auch auf dem Stapel laufen oder auf einem zusätzlichen Rechner. Wenn das auch auf dem Stapel ginge, dann wäre es wirklich genial. Das Problem, dass brickd dann aufmal alle Funktionen mit Namen usw. kennen müsste gilt auch für den Stapel. Dann müssten dort auf einmal auch alle Funktionen mit Namen usw. bekannt sein. Diese Information ist dort nicht vorhanden. Diese Informationen stecken nur in den Bindings. So ein Proxy würde also wahrscheinlich nicht auf dem Master Brick selbst laufen, sondern wie die Shell Bindings im Listen-Modus auf einem extra Rechner.
  8. So wie ich das verstehe würde der Web Server im brickd dann aber nur für den initialen Verbindungsaufbau HTTP sprechen, um dann eine WebSocket Verbindung aufzumachen. Sonst könnte er keine HTTP Verarbeitung. Die Abfrage von Bricklets wäre dann erstmal nur über die WebSockets Verbindung möglich. HTTP Abfragen wie z.B. http://server:port/<brickletID>/getTemperature wären dann nicht möglich. Richtig, brickd kann einen WebSocket öffnen, weil er dazu nicht wissen muss welche Bricks und Bricklets es gibt und welche Funktionen sie haben. Denn nach dem HTTP Websocket Handshake würde einfach das normale TCP/IP Protokoll über den WebSocket gesprochen, das brickd jetzt auch schon behandelt. Für RESTartige Dinge die wie http://server:port/<brickletID>/getTemperature müsste brickd aufmal wissen, wie das Paket für getTemperature aussieht. Er muss also die Informationen kennen, die in den Bindings stecken. Das wollen wir vermeiden, brickd soll hier generisch bleiben. Eine RESTartige Schnittstelle würde also eher als extra Proxy realisiert werden, der brickd vorgeschaltet wird. So ein Proxy stellt z.B. der listen Befehl der Shell Bindings dar, der über einen Socket Textbefehle entgegennimmt und dann weiss wie die getTemperature aussieht.
  9. Ich hab das hier mit 5mm Glas und 10x10cm Alufolie unter dem Glas getestet und die Erkennung funktioniert problemlos auch noch 1cm über dem Glas. Denke das sollte auch bei 10mm Glas und auch bei etwas kleineren Elektroden noch gut funktionieren.
  10. Robin, das Verhalten bleibt gleich, wenn du die beiden Bricklets vertauscht? Du hast also nicht einfach ein zweites kaputtes Industrial Quad Relay Bricklet, dass das Problem verursacht? tatzemax, das sind keine einfachen Widerstände, sondern Varistoren, die dem Schutz des Bricklets dienen.
  11. Richtig, der Bootloader ist fest im Mikrocontroller integriert. Allerdings machen nicht wir das, sondern Atmel liefert die Chips schon so aus.
  12. Yes, you can probably do that. It depends on the specific interface of your load cells. The Voltage/Current Bricklet can be used to measure a single voltage and current. For 8 load cells you'd need 8 Voltage/Current Bricklets and two Master Bricks to connect them to your PC. The Industrial Dual 0-20mA Bricklet can be used to read out two sensors with 4-20mA type 2 or 3 interface (IEC 60381-1). For 8 load cells you'd need 4 Industrial Dual 0-20mA Bricklets and one Master Bricks to connect them to your PC. The PTC Bricklet can be used to read out a single Pt100/Pt1000 temperature sensor. If your load cells have a similar resistance interface as a Pt100/Pt1000 sensor then you can probably used it to read out your load cells. For 8 load cells you'd need 8 PTC Bricklets and two Master Bricks to connect them to your PC.
  13. Die Signatur ist so void BrickletIndustrialQuadRelay::setMonoflop(int $selection_mask, int $value_mask, int $time) Das zweite Parameter ist nicht bool, sondern int. Mit der $selection_mask wählst du per Bitmaske aus auf welchen Pins einen Monoflop starten willst. Mit der $value_mask wählst du per Bitmaske per Pin aus ob ein Monoflop auf High oder Low erfolgen soll. setMonoflop(1, true, 1000) ist also eigentlich setMonoflop(0b0001, 0b0001, 1000) wobei PHP diese Binärschreibweise nicht kennt und die hier nur zur Verdeutlichung steht. Das funktioniert also zufällig. Aber setMonoflop(2, true, 1000) ist eigentlich setMonoflop(0b0010, 0b0001, 1000) Also Pin 2 auf Low, die 1 in der $value_mask wird ignoriert. Für Monoflop an Pin 2 auf High muss du also setMonoflop(2, 2, 1000) aufrufen. Nachtrag: Ah, ich sehe die Dokumentation redet da an einer Stelle verwirrender weise von true/false. Ich werde das gleich verbessern.
  14. Nein, kann nur DC, weil kein Gleichrichter drauf ist. Den müsste man extern vorschalten. Ich habe in der Doku jetzt ein DC bei der Eingangsspannung hinzugefügt.
  15. Brick Viewer 2.0.9 Support Get/SetClockFrequency in LED Strip Bricklet plugin Show "motion detected" in red in Motion Detector Bricklet plugin Support Intertechno and ELRO Home Easy addressing types in Remote Switch Bricklet plugin Downloads: Windows, Linux, Mac OS X
  16. Brick Viewer 2.0.9 Support für Get/SetClockFrequency zum LED Strip Bricklet Plugin hinzugefügt "motion detected" wird im Motion Detector Bricklet Plugin in Rot angezeigt Support für Intertechno und ELRO Home Easy Addressierung zum Remote Switch Bricklet Plugin hinzugefügt Downloads: Windows, Linux, Mac OS X
  17. Callbacks bekommst du nur wenn sich der Wert ändert. Die Period gibt die minimale Zeit zwischen zwei Callbacks an. Eine Period von 500 heißt nicht, dass du immer alle 500ms einen Callback bekommst. Im Zeifelsfall ist die Temperatur einfach recht stabil im Verhältnis zu den anderen Werten. Soll heißen, dass funktioniert alles wie erwartet.
  18. Plugins: LED Strip Bricklet 2.0.1 Add Get/SetClockFrequency function Download: LED Strip Bricklet
  19. Plugins: LED Strip Bricklet 2.0.1 Get/SetClockFrequency Funktion hinzugefügt Download: LED Strip Bricklet
  20. Bindings: C/C++ 2.0.13, C# 2.0.13, Delphi 2.0.15, Java 2.0.14, PHP 2.0.12, Python 2.0.13, Ruby 2.0.13, Shell 2.0.5, VB.NET 2.0.9 Add Get/SetClockFrequency function to LED Strip Bricklet API [all] Fix mixup of Set/GetDateTimeCallbackPeriod and Set/GetMotionCallbackPeriod in GPS Bricklet API [all] Support addressing types of Intertechno and ELRO Home Easy devices in Remote Switch Bricklet API [all] Download: C/C++, C#, Delphi, Java, PHP, Python, Ruby, Shell, VB.NET
  21. Bindings: C/C++ 2.0.13, C# 2.0.13, Delphi 2.0.15, Java 2.0.14, PHP 2.0.12, Python 2.0.13, Ruby 2.0.13, Shell 2.0.5, VB.NET 2.0.9 Get/SetClockFrequency Funktion zur LED Strip Bricklet API hinzugefügt [alle] Vertauschung von Set/GetDateTimeCallbackPeriod und Set/GetMotionCallbackPeriod in der GPS Bricklet API korrigiert [alle] Adressierungsarten für Intertechno und ELRO Home Easy Geräte zur Remote Switch Bricklet API hinzugefügt [alle] Download: C/C++, C#, Delphi, Java, PHP, Python, Ruby, Shell, VB.NET
  22. Plugins: Remote Switch Bricklet 2.0.1 Support addressing types of Intertechno and ELRO Home Easy devices Download: Remote Switch Bricklet
  23. Plugins: Remote Switch Bricklet 2.0.1 Adressierungsarten für Intertechno und ELRO Home Easy Geräte werden jetzt unterstützt Download: Remote Switch Bricklet
  24. Da bist du bei Tinkerforge richtig gelandet, das Raspberry Pi ist ein guter Partner für unsere Bausteine. Der Master Brick wird per USB ans Raspberry Pi angeschlossen. Über die (W)LAN Verbindung des Raspberry Pis kannst du dann auch unsere Bausteine erreichen. Dazu wird dort unser Brick Daemon (gibts auch für Linux) installiert, der als Brücke zwischen USB und (W)LAN dient. Eine Android App kann dann über (W)LAN die Relais auf einem Industrial Quad Relay Bricklet steuern. Das Industrial Quad Relay Bricklet hat 4 Relais, kann somit 4 Schalter überbrücken. Für weitere Schalter können dann einfach noch weitere Industrial Quad Relay Bricklets an den Master Brick angeschlossen werden, bis zu 4 Stück. Macht also 16 Schalter pro Master Brick mit 4 Industrial Quad Relay Bricklets. Wenn das auch noch nicht reicht kann man dann noch weitere Master Bricks dazu stecken, um mehr Bricklet Anschlüssen zu erhalten. Als kleinsten Aufbau für den Anfang brauchst du: 1x Master Brick 1x Mini-USB Kabel, um Master Brick mit Raspberry Pi zu verbinden 1x Industrial Quad Relay Bricklet 1x Bricklet Kabel, um Industrial Quad Relay Bricklet mit Master Brick zu verbinden Dann brauchst du noch Drähte, um die Relais mit den Tasten der Fernbedienung zu verbinden. Im einfachsten Fall 2 Drähte pro Taste. Abhängig von der Verschaltung der Tasten auf der Fernbedienung kann man auch mit 5 Drähten für 4 Taster auskommen, wie im Fall der Steckdosen im Hardware Hacking Kit. Aus dem Kit gibt es die Drähte auch einzeln im Shop. Wenn dein Freund aber eh schon ein Bastler ist habt ihr ein paar Drähte für diesen Zweck vielleicht auch schon im Haus. Für Brick und Bricklet kannst du dann noch eine Montageplatte 22x10 dazunehmen, auf der beides mit den Befestignungs Kits aufgeschraubt werden kann, die du im Shop zu Brick und Bricklet dazu wählen kannst. Mit einem Industrial Quad Relay Bricklet kannst du wie gesagt 4 Tasten überbrücken. Das IO-16 Bricklet sieht das verlockend aus, hat aber keine 16 Relais, sondern kann auf seinen 16 Pins High (3,3V bzw. 5V) oder Low (0V) ausgeben (es kann dies auch wieder einlesen, aber das spielt für diese Anwendung keine Rolle). Abhängig davon wie die Tasten der Fernbedienung gebaut sind kann man diese (16 Stück) auch mit deinem IO-16 Bricklet auslösen, indem man statt diese zu überbrücken einfach ein High Signal an der Taste einspeist. Das setzt aber mehr Elektronik-Kenntnisse voraus, denn wenn man das IO-16 Bricklet falsch anschließt und an der falschen Stelle etwas einspeist kann man die Fernbedienung auch zerstören. Das alles kann mit dem Industrial Quad Relay Bricklet nicht passieren, daher würde ich für den Einstieg ein Industrial Quad Relay Bricklet vorschlagen.
  25. Funktioniert denn eines der PHP Beispiele auf der Kommandozeile? Hast du also die PHP Bindings so eingerichtet, dass PHP sie auch finden? Hat dein PHP die bcmath und sockets Extensions aktiviert?
×
×
  • Neu erstellen...