Jump to content

borg

Administrators
  • Gesamte Inhalte

    3.592
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    58

Alle erstellten Inhalte von borg

  1. We found a bug in version 2.0.2 of the Thermal Imaging Bicklet with the communication between Brick and Bricklet. This bug could result in an incease of unnecessary CRC errors in the communication (if you were using the Thermal-Image-Getter). After a long runtime this could result in some kind of error-loop between the Brick and Bricklet which could result in an unreachable Thermal Imaging Bricklet. The bugfix is in the general implementation of the Tinkerforge SPI Protocol (SPITFP). Because of this there is a new firmware (with this bugfix) for all Bricklets with 7 pole connector. Firmware: CAN Bricklet 2.0 2.0.2, Temperature IR Bricklet 2.0 2.0.4, NFC Bricklet 2.0.4, Linear Poti Bricklet 2.0 2.0.1, Segment Display 4x7 Bricklet 2.0 2.0.1, Joystick Bricklet 2.0 2.0.1, LCD 128x64 Bricklet 2.0.7, Particulate Matter Bricklet 2.0.2, DMX Bricklet 2.0.2, Outdoor Weather Bricklet 2.0.3, Thermal Imaging Bricklet 2.0.3, LED Strip Bricklet 2.0 2.0.2, OLED 128x64 Bricklet 2.0 2.0.4, RS485 Bricklet 2.0.4, Industrial Dual 0-20mA Bricklet 2.0 2.0.1, Rotary Encoder Bricklet 2.0 2.0.4, CO2 Bricklet 2.0 2.0.1, RGB LED Button Bricklet 2.0.2, UV Light Bricklet 2.0 2.0.1, Motion Detector Bricklet 2.0 2.0.2, IO-16 Bricklet 2.0 2.0.2, Remote Switch Bricklet 2.0 2.0.3, Dual Button Bricklet 2.0 2.0.1, Accelerometer Bricklet 2.0 2.0.1, IO-4 Bricklet 2.0 2.0.4, Motorized Linear Poti Bricklet 2.0.4, ePaper 128x296 Bricklet 2.0.1, Industrial Analog Out Bricklet 2.0 2.0.1, Voltage/Current Bricklet 2.0 2.0.3, Analog Out Bricklet 3.0 2.0.1, Distance IR Bricklet 2.0 2.0.1, Analog In Bricklet 3.0 2.0.3, One Wire Bricklet 2.0.1, GPS Bricklet 2.0 2.0.5, Industrial Quad Relay Bricklet 2.0 2.0.3, RS232 Bricklet 2.0 2.0.2, Sound Pressure Level Bricklet 2.0.3, Industrial Digital In 4 Bricklet 2.0 2.0.2, Isolator Bricklet 2.0.1, RGB LED Bricklet 2.0 2.0.1, Thermocouple Bricklet 2.0 2.0.2, Temperature Bricklet 2.0 2.0.1, Solid State Relay Bricklet 2.0 2.0.3, Hall Effect Bricklet 2.0 2.0.1, Humidity Bricklet 2.0 2.0.6, Industrial Dual Relay Bricklet 2.0.3, RGB LED Matrix Bricklet 2.0.2, Industrial Dual Analog In Bricklet 2.0 2.0.1, Industrial Counter Bricklet 2.0.2, Industrial Digital Out 4 Bricklet 2.0 2.0.2, Ambient Light Bricklet 3.0 2.0.1, Piezo Speaker Bricklet 2.0 2.0.1, Load Cell Bricklet 2.0 2.0.2, Laser Range Finder Bricklet 2.0 2.0.1, PTC Bricklet 2.0 2.0.2 Fix SPITFP IRQ race condition with other higher priority IRQs Download: CAN Bricklet 2.0, Temperature IR Bricklet 2.0, NFC Bricklet, Linear Poti Bricklet 2.0, Segment Display 4x7 Bricklet 2.0, Joystick Bricklet 2.0, LCD 128x64 Bricklet, Particulate Matter Bricklet, DMX Bricklet, Outdoor Weather Bricklet, Thermal Imaging Bricklet, LED Strip Bricklet 2.0, OLED 128x64 Bricklet 2.0, RS485 Bricklet, Industrial Dual 0-20mA Bricklet 2.0, Rotary Encoder Bricklet 2.0, CO2 Bricklet 2.0, RGB LED Button Bricklet, UV Light Bricklet 2.0, Motion Detector Bricklet 2.0, IO-16 Bricklet 2.0, Remote Switch Bricklet 2.0, Dual Button Bricklet 2.0, Accelerometer Bricklet 2.0, IO-4 Bricklet 2.0, Motorized Linear Poti Bricklet, ePaper 128x296 Bricklet, Industrial Analog Out Bricklet 2.0, Voltage/Current Bricklet 2.0, Analog Out Bricklet 3.0, Distance IR Bricklet 2.0, Analog In Bricklet 3.0, One Wire Bricklet, GPS Bricklet 2.0, Industrial Quad Relay Bricklet 2.0, RS232 Bricklet 2.0, Sound Pressure Level Bricklet, Industrial Digital In 4 Bricklet 2.0, Isolator Bricklet, RGB LED Bricklet 2.0, Thermocouple Bricklet 2.0, Temperature Bricklet 2.0, Solid State Relay Bricklet 2.0, Hall Effect Bricklet 2.0, Humidity Bricklet 2.0, Industrial Dual Relay Bricklet, RGB LED Matrix Bricklet, Industrial Dual Analog In Bricklet 2.0, Industrial Counter Bricklet, Industrial Digital Out 4 Bricklet 2.0, Ambient Light Bricklet 3.0, Piezo Speaker Bricklet 2.0, Load Cell Bricklet 2.0, Laser Range Finder Bricklet 2.0, PTC Bricklet 2.0
  2. borg

    Issues beim DC-Brick

    Das Analog Out Bricklet kann nur bis zu der Spannung ausgeben die eingespeist wird. Dabei kann zur Einspeisung auch die intern im System vorhandenen 5V nutzen. Zum Video: Ich mache im Laufe der Woche wenn ich dazu komme nochmal ein Video wo ich den Trigger auf das Eingangs-PWM Signal auf einem anderen Kanal setze, dann kannst du genau sehen was mit der Waveform passiert und das Verhalten macht dann auch mehr Sinn.
  3. borg

    Issues beim DC-Brick

    Ich hab mir das genauer angeschaut. Das was du da siehst ist die "output constant-off time", siehe Seite 8 im Datenblatt: https://www.nxp.com/docs/en/data-sheet/MC33926.pdf Diese beträgt ~20us. Bei einer Frequenz von 15kHz bei einem Velocity-Wert von ~28000 hast du eine Off-Time von 20us. Das passt also genau. Was du jetzt machen kannst ist die PWM Frequenz verringern. Bei einer PWM Frequenz von 1500Hz erreicht du die 20us erst bei einer Velocity von ~32000. Das gleiche gilt natürlich symmetrisch auch für den 0-Bereich. Ich hab mal zwei Videos gemacht: * 15000Hz: * 1500Hz: Da kannst du gut sehen, dass bei der 15kHz Version die 20us "off-time" einen größeren Prozentanteil des Duty Cycle ausmacht.
  4. Sorry für die späte Antwort, ich hatte den Post irgendwie übersehen. Das abgeänderte Beispiel könnte so aussehen: import com.tinkerforge.IPConnection; import com.tinkerforge.BrickletNFC; public class ExampleScanForTags { private static final String HOST = "localhost"; private static final int PORT = 4223; // Change XYZ to the UID of your NFC Bricklet private static final String UID = "nfc2"; // Note: To make the example code cleaner we do not handle exceptions. Exceptions // you might normally want to catch are described in the documentation public static void main(String args[]) throws Exception { IPConnection ipcon = new IPConnection(); // Create IP connection BrickletNFC nfc = new BrickletNFC(UID, ipcon); // Create device object ipcon.connect(HOST, PORT); // Connect to brickd // Don't use device before ipcon is connected // Add reader state changed listener nfc.addReaderStateChangedListener(new BrickletNFC.ReaderStateChangedListener() { public void readerStateChanged(int state, boolean idle) { if (state == BrickletNFC.READER_STATE_IDLE) { try { nfc.readerRequestTagID(); } catch (Exception e) { return; } } else if(state == BrickletNFC.READER_STATE_REQUEST_TAG_ID_READY) { try{ int i = 0; StringBuilder tag = new StringBuilder(); BrickletNFC.ReaderGetTagID ret = nfc.readerGetTagID(); for (int v : ret.tagID) { if (i < ret.tagID.length - 1) { tag.append(String.format("0x%X ", v)); } else { tag.append(String.format("0x%X", v)); } i++; } System.out.format("Found tag of type %d with ID [%s]\n", ret.tagType, tag); nfc.readerRequestTagID(); } catch (Exception e) { return; } } else if (state == BrickletNFC.READER_STATE_REQUEST_TAG_ID_ERROR) { try { nfc.readerRequestTagID(); } catch (Exception e) { return; } } } }); // Enable reader mode nfc.setMode(BrickletNFC.MODE_READER); System.out.println("Press key to exit"); System.in.read(); ipcon.disconnect(); } } Im Grunde musst du nur zusehen das in jedem State in dem du landen kannst in dem das NFC Bricklet nicht irgendetwas durchführt oder auf irgendetwas wartet "nfc.readerRequestTagID()" nochmal aufgerufen wird, damit das Bricklet auch durchgängig nach Tags sucht.
  5. Es gibt wieder eine neue BSEC-Version die ich noch einbauen muss in die Firmware. Das Changelog ist allerdings nicht vielversprechend, die Berechnung des IAQ Index hat sich nicht geändert. Ob mit der neuen Version der "load/save state"-Bug gefixt ist weiß ich noch nicht, das muss ich erst noch testen.
  6. borg

    Issues beim DC-Brick

    Welche Einstellungen verwendest du dafür genau? Ich kann nachschauen ob da gerade an der Stelle ein "prescaler" umspringt oder ähnliches. Eigentlich sollte das aber nicht einen so großen Sprung machen das du es mit einer Glühlampe sehen können solltest.
  7. borg

    Issues beim DC-Brick

    Der DC Brick gibt ein PWM aus, wobei die "Velocity" die du einstellst dem Duty Cycle des PWMs entspricht. Wie der Motor auf ein spezifisches PWM reagiert hängt vom Motor ab. Die Frequenz wird so ausgegeben wie du sie einstellst (mit der Auflösung die der Microcontroller hat beim erstellen des PWMs).
  8. Master Bricks mit Hardware Version >= 2.0 haben die ADC-Kalibrierung in Hardware mit auf der Leiterplatte und sie wird automatisch beim Start ausgeführt. Das Kalibrieren ist an der Stelle also ohne Funktion. Da muss ich allerdings zugeben, das ist nicht gut dokumentiert, das einzige was ich dazu gefunden hab ist ein Blogeintrag der 6 Jahre alt ist: https://www.tinkerforge.com/de/blog/master-brick-20-and-shielded-bricklet-cables/ .
  9. Ein Rückgabewert von -1 bedeutet Timeout. Kannst du nochmal überprüfen ob du wirklich "y6V" als UID eingetragen hast?
  10. This is really hard to tell if it will work well, you will probably have to try it out. The fusion algorithm is part of the IC that we use (Bosch BNO055), the algorithm is unfortunately propitiatory and we don't exactly know how it works.
  11. If you press the save button the Brick Viewer will save the current values of the calibration on the Brick and it will use them as a starting point when it is started the next time. This does not mean that every "led" in Brick Viewer will immediately turn green again on next boot. Since from the perspective of the IMU it does not yet have gathered enough data to be sure if it calibrated correctly or not. The Brick will run the continuous calibration in any way.
  12. Welcher Wert < 0 wird denn zurück gegeben? http://download.tinkerforge.com/bindings/c/
  13. Mit setConfiguration
  14. Ich hab ein Beispiel im anderen Thread hinzugefügt: https://www.tinkerunity.org/forum/index.php/topic,4890.0.html
  15. Anbei ein Beispiel: function matlab_example_continuous_callback() import com.tinkerforge.IPConnection; import com.tinkerforge.BrickletAccelerometerV2; HOST = 'localhost'; PORT = 4223; UID = 'XYZ'; % Change XYZ to the UID of your Accelerometer Bricklet 2.0 ipcon = IPConnection(); % Create IP connection a = handle(BrickletAccelerometerV2(UID, ipcon), 'CallbackProperties'); % Create device object ipcon.connect(HOST, PORT); % Connect to brickd % Don't use device before ipcon is connected % Register acceleration callback to function cb_acceleration set(a, 'ContinuousAcceleration16BitCallback', @(h, e) cb_continuous_acceleration(e)); % Get X, Y and Z axis continuous acceleration with 16-bit resolution a.setContinuousAccelerationConfiguration(true, true, true, BrickletAccelerometerV2.RESOLUTION_16BIT); input('Press key to exit\n', 's'); ipcon.disconnect(); end % Callback function for continuous acceleration callback function cb_continuous_acceleration(e) data_all = []; data_axis = []; for i = 1:length(e.acceleration) if mod(i, 3) ~= 0 data_axis = [data_axis double(e.acceleration(i)) / 10000.0]; else data_axis = [data_axis double(e.acceleration(i)) / 10000.0]; data_all = [data_all; data_axis]; data_axis = []; end end for i = 1:length(data_all) data_axis = data_all(i,; for j = 1:length(data_axis) if j == 1 fprintf('Acceleration [X]: %g g\n', data_axis(j)); elseif j == 2 fprintf('Acceleration [Y]: %g g\n', data_axis(j)); else fprintf('Acceleration [Z]: %g g\n\n', data_axis(j)); end end end fprintf('\n'); end
  16. Die Bricklets haben eine API die in vielen Programmiersprachen zur Verfügung steht (siehe Doku). Allerdings tauchen die Joystick/Poti Bricklets nicht als Gamecontroller unter Windows auf. Es müsste also eine Art Treiber geschrieben werden der unsere API nutzt und damit ein "Gamecontroller-Device" unter Windows implementiert. Das ist sicherlich möglich, ich vermute allerdings das es recht viel Aufwand ist.
  17. So 100%ig ist mir leider immernoch nicht klar wann genau das Problem auftritt. Fangen wir erstmal mit einem Master Brick + Ethernet Extension an (um irgendwelche Funkprobleme auszuschließen). Als erstes schließt du den Master Brick per USB an und konfigurierst die Ethernet Extension (feste IP oder DHCP). Dann ziehst du USB ab und machst dafür eine USB-Stromversorgung (oder Step Down Power Supply) dran. Dann verbindest du dich per Ethernet über die feste IP oder die per DHCP vergebene IP über den Brick Viewer mit der Ethernet Extension. Das funktioniert erst, richtig? Wenn du das jetzt eine Zeitlang laufen lässt (einfach den Master Brick Tab auflassen, da werden Daten übertragen), treten dann schon Verbindungsfehler auf? Wenn das noch geht, was passiert wenn du oben im Brick Viewer mehrfach Connect/Disconnect drückst? Treten dann die Fehler auf? Wenn das noch geht, treten die Fehler irgendwann auf nachdem du dein eigenes Programm startest/neustartest? Falls ja, treten die Fehler auch auf wenn du eines der minimalen Beispiele aus der Dokumentation ausführst?
  18. Oh, das ist meine Schuld. Da hat sich ein Bug in die 2.0.4 eingeschlichen, ich hab vergessen die Länge des Pakets zu setzen: https://github.com/Tinkerforge/humidity-v2-bricklet/commit/fb6c809ea06522a4b18446c936b432239c792d1b Bitte auf 2.0.5 aktualisieren!
  19. Der kann dafür genutzt werden. Es ist durchaus möglich das sich der Sensor selbst ein wenig erhitzt ("self-heating"). Diese Selbsterhitzung beläuft sich aber für gewöhnlich nur auf 1-2°C und ist konstant, kann man also recht einfach kalibrieren.
  20. Wenn du dein eigenes Programm beendest, den Stapel neustartest und dich dann per Brick Viewer mit dem Stapel verbindest. Dann passiert was genau? Musst du ein bestimmtes Tab auswählen damit ein Problem auftritt?
  21. Die Ethernet Extension unterstützt maximal 7 gleichzeitige Verbindungen. Ein Grund warum der Brick Viewer "could not connect" melden könnte ist, dass kein Socket mehr frei ist in der Ethernet Extension. Läuft vielleicht im Hintergrund ein Programm welches neue Verbindungen öffnet ohne diese wieder zu schließen und damit alle Sockets "aufbraucht"?
  22. On Windows with GCC you can use the command line to compile one of the examples, see here: https://www.tinkerforge.com/en/doc/Software/API_Bindings_C.html#gcc Don't forget to change the UID placeholder in the example to the UID of your Bricklet.
  23. You don't have to use a Makefile. Which operating system and which compiler/IDE do you use?
  24. You need an additional WIFI Extension 2.0 and a USB Power Supply.
  25. In terms of software you need to download the Brick Daemon, Brick Viewer and C API Bindings. You can get all of them here: https://www.tinkerforge.com/en/doc/Downloads.html To get started with the C Bindings you can take a look here: https://www.tinkerforge.com/en/doc/Software/API_Bindings_C.html In terms of hardware it obviously depends what you want to do. The absolute minimum that does something useful and is easy to understand would probably be a Master Brick together with a Temperature Bricklet 2.0. Hardware wise you need: * Mini USB cable * Master Brick * Bricklet cable (7p-10p) * Temperature Bricklet 2.0 Master Brick: https://www.tinkerforge.com/en/shop/bricks/master-brick.html Temperature Bricklet 2.0: https://www.tinkerforge.com/en/shop/bricklets/sensors/temperature-v2-bricklet.html You can pick the suitable cables as options in the shop. To get started, you connect the Bricklet to the Brick with the Bricklet cable and the Brick to your PC with the USB cable. Now you can view the temperature in Brick Viewer and use the C Bindings to read out the temperature in C++.
×
×
  • Neu erstellen...