
photron
Administrators-
Gesamte Inhalte
3.182 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
52
Alle erstellten Inhalte von photron
-
RED Dateisystem schreiben?!
Thema antwortete auf photrons mchott in: Software, Programmierung und externe Tools
Hm, da fehlt wohl ein Neustart nach dem "sudo usermod -a -G tf www-data" denke ich. Anyway, mit dem nächsten RED Brick Image wird das automatisch richtig funktionieren. -
Verbindungsprobleme JS-HTML-HTTP(S)
Thema antwortete auf photrons mchott in: Software, Programmierung und externe Tools
Deine PHP Datei wird vom Apache auf dem RED Brick ausgeliefert. Das hat erstmal nichts mit brickd oder WebSockets zu tun. Der Apache auf dem RED Brick ist nicht für HTTPS konfiguriert, daher liefert er die keine Seite über HTTPS. -
Das ist alles genau richtig so. Ich nehme mal an du hast das Solarpanel an die Eingangsklemme angeschlossen und an der Ausgangsklemme ist nichts, oder das Multimeter angeschlossen. Die Spannung misst das Bricklet zwischen dem + und - Seite der Eingangsklemme. Daher siehst du die 5,4V die ein Panel erzeugt. Den Strom misst das Bricklet zwischen den beiden + Seiten der Eingangs- und Ausgangsklemme. Sprich es misst den Strom der über das Bricklet zwischen Eingang und Ausgang fließt. Wenn du also nichts am Ausgang angeschlossen hast fließt kein Strom über das Bricklet, daher 0A. Wenn du aber das Multimeter am Ausgang anschließt, dann fließt ein Strom über das Multimeter und den misst dann das Bricklet.
-
Dann hast du die alte Tinkerforge.dll nicht richtig ersetzt. Der Fehler 1386 besagt, dass LabVIEW die entsprechende .NET Klasse nicht finden kann. Das liegt in diesem Fall daran, dass die Tinkerforge.dll die im Moment den LabVIEW Bindings beiliegt für .NET 2.0 kompiliert ist. Damit kommen neuere Versionen von LabVIEW nicht parat und brauchen die Tinkerforge.dll für .NET 4.0. Genau eine solche Tinkerforge.dll habe ich dir gegeben. Mach mal folgendes: - Schließe LabVIEW komplett - Lösche die alte Tinkerforge.dll - Pack die neue Tinkerforge.dll und das Example für das NFC/RFID Bricklet in den gleichen Ordner - Öffne das Beispiel in LabVIEW Wenn das nicht hilft, dann auf den IPConnection Node doppelt klicken. Im "Select .NET Constructor" Dialog muss als Assembly "Tinkerforge(2.1.4.0)" ausgewählt sein. Wenn das nicht der Fall ist, oder einfach nur zur Sichereit, über den Browse Knopf die neue Tinkerforge.dll auswählen. Dann solle in der Objects-Liste darunter auch die IPConnection auftauchen (neben vielen anderen Dingen). Diese Auswählen und den Dialog mit Ok verlassen.
-
Nimm mal die angehängte Tinkerforge.dll statt die aus dem ZIP. Tinkerforge.dll
-
jgmischke, Brick Viewer ist nach 30 Sekunden fertig, weil er nur den Resize Befehl in rc.local einträgt und dann einen Neustart auslöst. Das eigentliche Resize passiert dann beim Neustart. Was du da siehst ist also erwartet. Ob jetzt aber 4 Minuten okay, oder schon zu lang sind bin ich mir nicht sicher.
-
Also eine parallele Schnittstelle mit 16Bit. Da sehe ich gerade keinen Grund warum, das nicht funktionieren sollte,
-
Die neuen Bricklets sind ab heute bei unserem Bestücker in Produktion.
-
Wenn es im Brick Viewer geht, dann kann es kein elektrisches Problem sein. Es muss also im Beispiel stecken. Das Beispiel tätigt viele Einstellungen die nicht unbedingt nötig sind. Daher jetzt mal ein einfacheres Beispiel, das den Servo nur ein paar mal hin und her bewegen lässt. Bevor du dieses Beispiel testest solltest du einmal den Servo Brick resetten, damit alle Einstellungen zurückgesetzt werden auf Standard. #!/usr/bin/env python # -*- coding: utf-8 -*- HOST = "localhost" PORT = 4223 UID = "5VF7gc" # Change to your UID from tinkerforge.ip_connection import IPConnection from tinkerforge.brick_servo import Servo import time if __name__ == "__main__": ipcon = IPConnection() # Create IP connection servo = Servo(UID, ipcon) # Create device object ipcon.connect(HOST, PORT) # Connect to brickd # Don't use device before ipcon is connected if servo.get_identity().device_identifier != Servo.DEVICE_IDENTIFIER: print("This is not a Servo Brick") else: servo.set_position(0, 9000) servo.enable(0) time.sleep(2) servo.set_position(0, -9000) time.sleep(2) servo.set_position(0, 9000) time.sleep(2) servo.set_position(0, -9000) input('Press key to exit\n') # Use input() in Python 3 ipcon.disconnect()
-
[GELÖST] HTML5 Worker implementieren geht nicht .. geht doch
Thema antwortete auf photrons mchott in: Software, Programmierung und externe Tools
Die Zeilen stammen auf dem letzten Release der JavaScript Bindings. Das ist nicht die korrigierte Datei aus meinem Post. Teste mal die angehängte Version, bei der jetzt auch die Crypto Verwendung korrigiert ist. Tinkerforge_window_fixes.js -
RED Dateisystem schreiben?!
Thema antwortete auf photrons mchott in: Software, Programmierung und externe Tools
. (Punkt) steht für das aktuelle Verzeichnis, da sich die Angabe des Arbeitsverzeichnis (da wo es angegeben werden kann) immer relative auf das bin Verzeichnis des Programms bezieht. Der absolute Pfad des bin Verzeichnis leitet sich so her: /home/tf/programs/<program-id>/bin Jetzt zum eigentlichen Problem. Wenn du jetzt dein PHP Programm im Web Interface Modus über http://<red-brick>/programs/<program-id>/bin/index.php aufrufst führt Apache das PHP Skript aus. Dabei ist das aktuelle Verzeichnis das bin Verzeichnis des Programms. Das Problem dabei ist jetzt das Apache als User www-data läuft und damit auch das PHP Skript. Das bin Verzeichnis gehört aber dem User tf und www-data hat da keine Schreibrechte. Das werde ich für die nächste RED Brick Image Version per ACL beheben, so das www-data auch im bin Verzeichnis schreiben kann. Bis dahin kannst du den User www-data zur tf Group hinzufügen und dann der tf Group im bin Verzeichnis Schreibrechte geben. Dazu folgende Befehle auf dem RED Brick ausführen (<program-id> durch den Namen deines Programms ersetzen): sudo usermod -a -G tf www-data chmod 0775 /home/tf/programs/<program-id>/bin -
Du möchtest also ein Bricklet Kabel trennen. Wenn das nicht schön werden muss kannst du dein eines Bricklet Kabel durch zwei kürzere ersetzen, die über einen Adapter verbunden werden. Also Bricklet <---Kabel1---> Adapter <---Kabel2---> Brick Der Adapter besteht aus zwei Breakout Bricklets die an ihren Stiftleisten 1:1 durchverbunden sind.
-
Jetzt mal ganz zurück. Wie kompliziert sind den deine Befehle? Hier ein ganz einfacher Ansatz: Du könntest ein IO-4 Bricklet an deine 4 übrigen Pins anschließen. Jeder Pin stellt dabei einen Befehl da. Ein Wechsel von Low auf High an einem Pin bedeutet dann, dass der Befehl für diesen Pin ausgeführt werden soll. Der Wechsel zurück von High auf Low hat keine Bedeutung.
-
[GELÖST] HTML5 Worker implementieren geht nicht .. geht doch
Thema antwortete auf photrons mchott in: Software, Programmierung und externe Tools
In meiner Zeile 12810 steht ein langer Kommentar. Kannst du mal deine Zeile 12810 mit 5 Zeilen davor und danach posten, damit ich sehe was du meinst. Die letzte Verwendung von window bei mir ist in der getRandomUInt32() Funktion um an die Crypto Funktionen zu kommen. Das muss ich gleich noch ändern. -
[GELÖST] HTML5 Worker implementieren geht nicht .. geht doch
Thema antwortete auf photrons mchott in: Software, Programmierung und externe Tools
Habe es gerade so abgeändert im git. Die nächste Version wird diese Änderung beinhalten. -
[GELÖST] HTML5 Worker implementieren geht nicht .. geht doch
Thema antwortete auf photrons mchott in: Software, Programmierung und externe Tools
"global.window.Tinkerforge" ist redundant, es reicht auch "global.Tinkerforge" für das gleiche Ergebnis. Damit funktionieren die Bindings hier auch in einem einfachem WebWorker Test. Tinkerforge.js -
[Python] LCD callback funktioniert nach einer Weile nicht mehr
Thema antwortete auf photrons da3 in: Software, Programmierung und externe Tools
Wenn es reicht dein Python Script neuzustarten, dann deutet das darauf hin, dass das Problem eher dort liegt. Ich hab mir dein Script angesehen, aber das ist auf den ersten Blick alles in Ordnung. Wenn das Problem auftritt, funktionieren die Buttons dann noch in Brick Viewer? -
Da steht sich das perl Package mit einigen anderen Packages auf den Füssen. Ich denke, dass ist ein Bug im perl Package selbst. In dieser Situation verweigert apt-get die Arbeit, weil es erst diese Problem beseitigt haben will. Ich konnte das Problem reproduzieren und so auflösen: sudo dpkg --purge cpanminus sudo dpkg --purge liblocal-lib-perl sudo dpkg --purge libmodule-build-perl sudo dpkg --purge libjson-pp-perl sudo dpkg --purge perl-doc sudo apt-get -f install sudo apt-get upgrade Jetzt stehen sich systemd und systemd-shim im Weg: sudo dpkg --purge systemd-shim sudo apt-get -f install sudo apt-get install systemd-shim sudo apt-get upgrade
-
[Python] LCD callback funktioniert nach einer Weile nicht mehr
Thema antwortete auf photrons da3 in: Software, Programmierung und externe Tools
Kannst du denn noch auf das LCD schreiben, wenn die Callbacks nicht mehr funktionieren? Hängt das funktionierende Moisture Bricklet am gleichen Brick wie das LCD 20x4 Bricklet? Was musst du tun, damit die Callbacks wieder funktionieren? Den Brick neustarten, oder dein Programm neustarten, oder etwas anderes? -
Programmierung in AHK / Autohotkey
Thema antwortete auf photrons hemir in: Software, Programmierung und externe Tools
Hier hat das mal wer für AutoIt gemacht: http://www.tinkerunity.org/forum/index.php/topic,2706.msg17355.html -
Wird es, mit fest 3,3V.
-
What's the SamplingPeriod? One different between WIFI and USB is the throughput. Typically, WIFI has less throughput than USB. If your SamplingPeriod is very small then the Bricklets might try to send more callbacks then the WIFI connection can handle. I assume you don't have USB connected to the stack while you're using WIFI, is this correct?
-
Dass heißt, du brauchst für dein eigentlichen Zeichnen kein OpenGL, sondern es geht dir darum die GPU zu verwenden. Für dein eigentliches Zeichnen würde auch QPainter reichen? Hast du mal eine Kombination aus QOpenGLWidget und QPainter getestet, wie hier beschrieben: http://doc.qt.io/qt-5/qopenglwidget.html#painting-techniques
-
Okay, jetzt können wir sicher sein, dass das Problem nicht von deinen OpenGL Headern kommt. Ich habe mit die Fehler noch mal genauer angesehen. Ich denke, dass du da zwei Probleme hast: Zum einen sind die OpenGL Header zu neu oder die Qt5 Version zu alt. Die OpenGL Header beinhalten Definitionen für OpenGL 4.3, damit scheint die Qt5 Version nicht zurecht zu kommen. Den einen Definitions-Konflikt kannst du möglicherweise lösen indem du diese Zeile #define GL_KHR_debug 1 in deinen Code einfügst, bevor zu irgendwelche anderen Header includest. Zum anderen will Qt5 auf dem RED Brick OpenGL ES 2 verwenden, du willst aber normales OpenGL verwenden. Das scheint sich auch nicht zu vertragen. Brauchst du normales OpenGL, oder könntest du auch OpenGL ES 2 verwenden?
-
Aus der Make Ausgabe sehe ich folgendes: - dein Programm bringt mindestens gl.h und glu.h mit - auf deinem RED Brick sind /usr/include/GL/gl.h, /usr/include/GL/glext.h, usw. vorhanden Teste bitte mal folgendes: - alle OpenGL Header (gl.h, glu.h, usw.) aus deinem Programmverzeichnis entfernen - in deinem Programm Code alle Includes für OpenGL (#include "gl.h" usw.) durch Includes dieser Form ersetzen: #include <GL/gl.h> Dadurch werden dann die OpenGL Header verwendet, die der RED Brick schon mitbringt. Denn es sieht für mich immer noch so aus als ob dein Problem ist, dass deine OpenGL Header und die vom RED Brick sich durch die Verwendung den Qt OpenGL Modules vermischen und die Fehler erzeugen.