
photron
Administrators-
Gesamte Inhalte
3.184 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
52
Alle erstellten Inhalte von photron
-
ceraner, was ist das andere funktionierende Bricklet, das du hast? Funktionieren am LCD Bricklet die Knöpfe, oder tun's die auch nicht?
-
Beschreiben von NFC/RFID-Tags über den BrickViewer
Thema antwortete auf photrons derAngler in: Anfängerfragen und FAQ
Die Tags die wir verkaufen sind alle vom Typ "NFC Forum Type 2". Bei diesem Typ sind Page 0-1 nur lesbar und in Page 3-4 stehen Lockbits die man nicht einfach so überschreiben sollte: http://www.tinkerforge.com/de/doc/Hardware/Bricklets/NFC_RFID.html#page-groszen-und-andere-dinge-die-man-wissen-sollte Da könnte brickv schlauer sein und die Start Page auf 5 setzen. Wenn du versucht Page 0-3 zu schreiben solltest du als Fehler "Could not write page 0" in Textfeld stehen. Das ist leider in grau geschrieben und daher nicht unbedingt sofort erkenntlich. Wenn du das mit Page 5-8 testest wird es gehen. Wenn du auf den Tag Text schreiben willst dann muss du dir überlegen in welchem Encoding. Die Tags speichern einfach nur Bytes, was diese Bytes bedeuten ist deine Sache. Der String "tag=color|content=red" (ohne Anführungszeichen) in ASCII encodet und hexadezimal dargestellt: 0x74 0x61 0x67 0x3d 0x63 0x6f 0x6c 0x6f 0x72 0x7c 0x63 0x6f 0x6e 0x74 0x65 0x6e 0x74 0x3d 0x72 0x65 0x64 Diese Byte Folge kannst du auf den Tag schreiben. -
[Delphi] Programme für MacOS X
Thema antwortete auf photrons whes in: Software, Programmierung und externe Tools
Ah, sorry, mein Fehler. Da waren noch zwei Bugs drin. Ich denke du hast schon alles richtig gemacht Hier noch eine Version zum testen, mit der sollte es jetzt endlich klappen. tinkerforge_delphi_bindings_2_1_2_eef9bdd8d1fcf525095bf3dfa2de32d8c14db322.zip -
[Delphi] Programme für MacOS X
Thema antwortete auf photrons whes in: Software, Programmierung und externe Tools
Hast den den Host auch entsprechend angegeben? Standardmäßig wird in den Beispielen immer localhost (127.0.0.1) verwendet. Die Beispiele verbinden sich also immer zu brickd auf dem lokalen Rechner und haben damit Zugriff auf die lokal per USB angeschlossenen Bricks. Wenn du das Beispiel also mit localhost auf Windows ausführst und der Master Brick auch an diesem Rechner angeschlossen ist dann klappt die Kommunikation. Wenn du das Beispiel aber mit localhost auf Mac OS X ausführst, dann muss der Master Brick auch am Mac angeschlossen sein und dort brickd laufen. Oder du muss im Beispiel die Host Einstellung auf die IP Adresse des Windows PCs ändern, um die dort angeschlossenen Bricks zu erreichen. -
[Delphi] Programme für MacOS X
Thema antwortete auf photrons whes in: Software, Programmierung und externe Tools
Hast du in Zeile 21 des ExampleStackStatus Beispiels die UID deines Master Bricks eingetragen: UID = 'ap8MjSchCcU'; { Change to your UID } -
[Delphi] Programme für MacOS X
Thema antwortete auf photrons whes in: Software, Programmierung und externe Tools
Nic, danke für den Test. In der angehängten Version wird jetzt wieder der vorherige Code für Windows verwendet und der neue Code nur noch für nicht-Windows. whes, das 'Deklaration suchen' klappt hier bein manchen Funktionen, bei machen passiert nichts und manchmal kommt eine Fehlermeldung über fehlende Dateien. Etwas komisch, aber auch nicht so wichtig. Liegt wahrscheinlich an meiner Installation hier. tinkerforge_delphi_bindings_2_1_2_7d2e81f35aa7502fa2e6ed6fd47651cc373674ac.zip -
RED Brick SPI Protokoll Betatest
Thema antwortete auf photrons borg in: Software, Programmierung und externe Tools
remotecontrol, du verstehst das richtig. -
[Delphi] Programme für MacOS X
Thema antwortete auf photrons whes in: Software, Programmierung und externe Tools
Hier die nächste Version zum testen. Diese verwendet jetzt getaddrinfo statt gethostbyname. tinkerforge_delphi_bindings_2_1_2_3e2a3debec6336db653a4f367e9a0b7bea21e433.zip -
[Delphi] Programme für MacOS X
Thema antwortete auf photrons whes in: Software, Programmierung und externe Tools
Hier unter Delphi XE6 kommt gethostbyname aus Posix.NetDB für OSX32. Mal sehen was ich da alternativ für XE3 nehmen kann, wenn gethostbyname da wirklich fehlt. Woher weißt du welche Funktionen in welchen Units sind? Aus der Dokumentation, oder gibts da eine Möglichkeit, dass die IDE mir für jede Unit, die eingebunden wird, das anzeigen kann? Für die Posix Module kann ich nur raten/annehmen welche Funktionen diese anbieten. -
[Delphi] Programme für MacOS X
Thema antwortete auf photrons whes in: Software, Programmierung und externe Tools
Okay, hier eine erste Version zum testen. tinkerforge_delphi_bindings_2_1_2_40737439d7c1882d1395ec4a006bdceccd660fe4.zip -
Richtig, die bis zu 27V, die du an der Step-Down Power Supply einspeist, werden über den Stack übertragen. Der Stepper Brick nutzt diese dann für die Versorgung des Schrittmotors, wenn an seinem eigenen schwarzen Stecker keine Spannung anliegt.
-
Eigentlich sollte sich brickv auf 1024x768 noch normal bedienen lassen. Zumindest war das mal das Ziel, möglicherweise müssen wir das mal nachkontrollieren, ob das noch alles hinkommt. Die Knöpf auf dem Setup Tab nach oben zu verlegen ist dann ja keine allgemeine Abhilfe. Wenn das brickv Fenster zu hoch ist, dann kommst du ja auch auf anderen Tabs nicht unbedingt an alle Bedienelemente. Als Workaround kannst du einfach den Update Dialog schon aufrufen bevor du die Verbindung zum Stack herstellst. Dann sollte das Fenster noch klein genug sein, oder?
-
Die API des NFC Chips auf dem Bricket ist so, dass man bei der Anfrage ob ein Tag in der Nähe ist angeben muss mit welchem Protokoll der NFC Chip nach Tags suchen soll. Die verschiedene Tags haben verschiedene Protokolle. Dein Smartphone geht einfach alle Protokolle zyklisch durch. Genau das kannst du auch mit dem Bricklet tun. Dies wird z.B. in den Beispielen des NFC/RFID Bricklet demonstriert. Du hast recht, tag_type ist nicht ausreichend dokumentiert. Das werde ich verbessern. Fürs erste: Mifare Classic = 0 NFC Forum Type 1 = 1 NFC Forum Type 2 = 2
-
I released 2.0.2 today, see the announcements thread. You pointed out a missing feature that was easy to add, so I added it. Changing the changelog format is not that easy, so that won't happen today
-
Piezo Speaker Bricklet Plugin 2.0.2 now treats beep() with a duration of 0 as "stop current beep" and beep() with a duration of 4294967295 (UINT32_MAX) as "beep forever".
-
Plugin: Piezo Speaker Bricklet 2.0.2 Duration 0 stops beep, duration 4294967295 (UINT32_MAX) results in an infinite beep Download: Piezo Speaker Bricklet
-
Plugin: Piezo Speaker Bricklet 2.0.2 Duration 0 stoppt den Piepton, Duration 4294967295 (UINT32_MAX) erzeugt einen unendlich langen Piepton Download: Piezo Speaker Bricklet
-
Wetterstation Demo Applikation OS X
Thema antwortete auf photrons superbird in: Software, Programmierung und externe Tools
Die Demo Anwendung für die Wetterstation ist in Python geschrieben, nicht in C. Da gibt es nichts zu kompilieren. Einfach demo.py mit Python aus einem Terminal heraus ausführen: python demo.py -
... CONTINUE. Irgendwie habe ich mich beim Schreiben verhaspelt und einen halbfertigen Beitrag gepostet. Also weiter mit Problem 2). Mittels einer Queued-Signal-Slot Verbindung kann man aus jedem Thread heraus eine Funktion so aufrufen, dass sie mit dem GUI arbeiten darf. Dazu hier ein Beispiel Programm: mainwindow.h: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QtGui/QMainWindow> #include <QtGui/QLabel> #include "ip_connection.h" #include "bricklet_temperature.h" #include "bricklet_segment_display_4x7.h" class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); signals: void temperatureChanged(int temperature); private slots: void displayTemperature(int temperature); private: static void temperatureCallback(int16_t temperature, void *user_data); IPConnection ipcon; Temperature temp; SegmentDisplay4x7 sd4x7; QLabel *label; }; #endif // MAINWINDOW_H mainwindow.cpp: #include "mainwindow.h" static const uint8_t digits[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x63}; // 0~9,A,b,C,d,E,F,° MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { label = new QLabel(this); QObject::connect(this, SIGNAL(temperatureChanged(int)), this, SLOT(displayTemperature(int)), Qt::QueuedConnection); ipcon_create(&ipcon); temperature_create(&temp, "dX3", &ipcon); segment_display_4x7_create(&sd4x7, "iX8", &ipcon); ipcon_connect(&ipcon, "localhost", 4223); temperature_set_temperature_callback_period(&temp, 1000); temperature_register_callback(&temp, TEMPERATURE_CALLBACK_TEMPERATURE, (void *)MainWindow::temperatureCallback, this); int16_t temperature = 0; temperature_get_temperature(&temp, &temperature); displayTemperature(temperature); } void MainWindow::displayTemperature(int temperature) { temperature = temperature / 100; uint8_t segments[4] = { digits[temperature / 10], digits[temperature % 10], digits[16], digits[12] }; segment_display_4x7_set_segments(&sd4x7, segments, 7, false); label->setText(QString::number(temperature) + " deg C"); } void MainWindow::temperatureCallback(int16_t temperature, void *user_data) { MainWindow *that = (MainWindow *)user_data; emit that->temperatureChanged(temperature); } Die MainWindow Klasse hat ein temperatureChanged Signal und einen displayTemperature Slot. Diese beiden werden dann Queued verbunden. Dadurch kann die temperatureCallback Funktion dann die displayTemperature Funktion so aufrufen, dass die mit dem GUI arbeiten darf und die Temperatur in ein QLabel schreiben kann. Das sind jetzt möglicherweise ein paar viele Qt Konzepte und Details auf einmal. Wenn du noch Fragen hast, immer raus damit
-
Zuerst solltest du die Signatur der cb_temperature Funktion korrigieren. Sie muss so sein: void cb_temperature(int16_t temperature, void *user_data) Dann brauchst du in der Callback Funktion die Temperatur auch nicht mehr zu erfragen, denn der Callback liefert sie dir. Dann solltest du cb_temperature nicht mehr aus on_verticalSliderlicht_actionTriggered heraus aufrufen. Wenn du hier die Temperatur abfragen und anzeigen solltest du dafür eine eigene Funktion erstellen die die Temperatur abfragt und anzeigt, anstatt die Callback Funktion dazu zu verwenden. Wenn dann die Callback Funktion so ist wie sie eigentlich sein sollte, dann kann es ans eigentliche Problem gehen, die Temperatur auf einem QLabel anzuzeigen. Dazu sind zwei Probleme zu lösen. 1) Die cb_temperature Funktion muss auf das MainWindow zugreifen können. 2) Die cb_temperature Funktion wird aus einem Thread aufgerufen. Qt GUI Elemente dürfen aber nicht aus Threads heraus benutzt werden. Das lässt sich aber alles lösen. Für Problem 1) kann das user_data Parameter der cb_temperature Funktion benutzt werden. du übergibst als letztes Parameter this an die temperature_register_callback Funktion. Dann bekommt die cb_temperature Funktion diese als user_data Parameter übergeben: void cb_temperature(int16_t temperature, void *user_data) { MainWindow *that = (MainWindow *)user_data; // ... } // ... temperature_register_callback(&t,TEMPERATURE_CALLBACK_TEMPERATURE,(void*)cb_temperature,this); TO BE CONTINUED...
-
Neues Solid State Relay Bricklet
Thema antwortete auf photrons Sorcuring in: Allgemeine Diskussionen
Schaltfrequenzen im kHz Bereich, kannst du mit unserem KS33 SSR für DC 50V/80A nicht erreichen. Das hat eine maximale Einschaltzeit von 1ms und Ausschaltzeit von 0,5ms. Dadurch könnte es theoretisch mit maximal 666Hz geschaltete werden. Praktisch sieht das anders aus. Wir haben es mit 400Hz bei 10A Last getestet und die Hitzeentwicklung ist so enorm, dass wir den Test nach einigen Sekunden abgebrochen haben. Wir haben dann den Hersteller gefragt und der rät dazu 30Hz nicht zu überschreiten. Unabhängig von den Einschränkungen durch das eingesetzte SSR wirst du Schaltfrequenzen im kHz Bereich nicht erreichen können, weil du dem Bricklet nur 1000 Nachrichten pro Sekunde schicken kannst. -
Brick Viewer 2.1.2 Add support for Color, NFC/RFID and Solid State Relay Bricklet Rename main.exe to brickv.exe on Windows Make rainbow work better on small LED counts and add moving-dot mode to LED Strip Bricklet plugin Allow double click anywhere in a device tree row to jump to the corresponding tab Downloads: Windows, Linux, Mac OS X
-
Bindings: C/C++ 2.1.4, C# 2.1.2, Delphi/Lazarus 2.1.2, Java 2.1.2, JavaScript 2.0.2, LabVIEW 2.1.2, Mathematica 2.1.2, MATLAB/Octave 2.0.2, Perl 2.1.2, PHP 2.1.2, Python 2.1.2, Ruby 2.1.2, Shell 2.1.2, Visual Basic .NET 2.1.2 Add support for Color, NFC/RFID and Solid State Relay Bricklet [all] Rename bindings/ folder to source/ in ZIP file [C/C++, Delphi] Replace System.console() usage with an Eclipse compatible pattern in examples [Java] Move NPM package into nodejs/ folder of ZIP file [JavaScript] Add main Tinkerforge.js script to simplify direct usage of the Node.js source code [JavaScript] Only use MSG_NOSIGNAL if it's really defined [Perl] Remove CPAN package from ZIP file, include relevant files into the source/ folder [Perl] Get rid of the egg and easy_install, use setuptools directly or pip instead [Python] Download: C/C++, C#, Delphi/Lazarus, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, Perl, PHP, Python, Ruby, Shell, Visual Basic .NET
-
Brick Viewer 2.1.2 Support für Color, NFC/RFID and Solid State Relay Bricklet hinzugefügt main.exe in brickv.exe umbenannt auf Windows Regenbogen-Modus für das LED Strip Bricklet funktioniert besser bei wenigen LEDs und Moving-Dot-Modus hinzugefügt Doppelklick irgendwo in einer Zeile Der Device-Tabelle springt zum entsprechenden Tab Downloads: Windows, Linux, Mac OS X