Jump to content

borg

Administrators
  • Gesamte Inhalte

    3.655
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    65

Alle erstellten Inhalte von borg

  1. Je 50m Abstand oder in Summe 50m Abstand? Das geht leider nicht, der letzte Empfänger muss ein PC/RPi o.ä. mit Brick Daemon sein. Das sollte exakt so funktionieren! Leder nicht, siehe oben. Wenn es sich um einen Radius von insgesamt 50m handelt auf denen die Knoten verteilt sind könnte es denke ich auch reichen einfach einen WLAN Router in die Mitte zu setzen und die WIFI Extensions verbinden sich ganz normal damit. Da geht dann natürlich mehr Durchsatz drüber.
  2. If all other indicators are green you probably have to hold it still for some more time (without moving) to get the system green too.
  3. No, the M/F is 1mm smaller than the F/F. You got a 9mm mounting kit: https://www.tinkerforge.com/en/shop/accessories/mounting/mounting-kit-9mm.html If you ordered them as 12mm mounting kits there must have been a mixup during packaging. Sorry! Please write an email to info@tinkerforge.com with your order number. We will of course send you the the 12mm mounting kits.
  4. The inside/inside thread spacers are allways 10. The inside/outside thread spacers are either 9mm or 12mm. There are no 10mm inside/outside thread spacers.
  5. You can't do any more than to use the provided calibration function. If the changes of the magnetic field are too big for the IMU to cope, you can try to used the sensor fusion mode with magnetometer (see set_sensor_fusion_mode in the API). In this mode the magnetometer is not used and thus can't contribute false readings. However, in this mode you can't of course use the IMU to calculate absolute heading (since the magnetometer is necessary for that)!
  6. If you purchased the 12mm mounting kit there are two kinds of spacers in there: One has one thread inside and one thread outside, the other has both threads inside. The 12mm mounting kit has 4 12mm inside/outside spacers and 4 10mm inside/inside spacers in it. You can put the 10mm spacer at the bottom and screw the 12mm spacer in the top. The small plastic washers can be used inbetween to fill the small gap. Like here: Or did you purchase the 9mm mounting kits? They can't be used for the Bricks!
  7. Mh, es scheint nicht ein Problem mit dem NMEA parsen zu sein wie ich erst gedacht hab. Dein Problem sieht so aus als würde das FireFly X1 (GPS Modul) keine Interrupts mehr senden. Dadurch lese ich nicht mehr und die Daten bleiben einfach auf einem alten Stand stehen. Hast du irgendeine Methode dieses Problem zuverlässig zu reproduzieren? Oder tritt es einfach irgendwann auf?
  8. borg

    IMU ROS node

    All of the examples that we have work over Ethernet, you just have to put in the correct IP (ip of the Ethernet Extension instead of "localhost")!
  9. borg

    IMU ROS node

    I have not done it, but you can use the Python Bindings and create a node yourself. There are Python node examples on the ROS wiki: http://wiki.ros.org/ROSNodeTutorialPython
  10. Mh, die API gibt exakt das zurück was wir per NMEA bekommen. Einfach alles mit 0 zu überschreiben wenn der Fix nicht mehr da ist, ist nicht richtig. Zum Beispiel die Uhrzeit und die Satellitenpositionen können auch noch korrekt sein wenn kein Fix vorhanden ist (dafür reicht ein Satellit). Die Latitude/Longitude können wir denke ich auf 0 setzen wenn kein Fix vorhanden ist, wie das mit Speed ist bin ich mir nicht sicher, da muss mal drüber nachlesen. Ich gucke mir das morgen genauer an .
  11. @ufechner: Ihr hattet die API leider nicht richtig verstanden. Der Index mit dem auf die Satellitennummer zugegriffen wird läuft immer von 1-32. Der Code müsste so aussehen: #include <stdio.h> #include <signal.h> #include <unistd.h> #include "ip_connection.h" #include "bricklet_gps_v2.h" //#define HOST "192.168.1.6" #define HOST "localhost" #define PORT 4223 #define UID "CHk" // Change XYZ to the UID of your GPS Bricklet 2.0 volatile sig_atomic_t terminate = 0; GPSV2 gps; void sig_handler(int signo) { if (signo == SIGINT) { printf("received SIGINT\n"); terminate = 1; } } void readSatelliteStatus() { uint8_t satellite_system; uint8_t ret_satellite_numbers_length; uint8_t ret_satellite_numbers_data[12]; int16_t ret_elevation; int16_t ret_azimuth; int16_t ret_snr; uint8_t ret_fix; uint16_t ret_pdop, ret_hdop, ret_vdop; uint8_t satellite_index; int sum_satellite = 0; for (satellite_system = 0; satellite_system < 2; satellite_system++) { if (gps_v2_get_satellite_system_status_low_level( &gps, satellite_system, &ret_satellite_numbers_length, ret_satellite_numbers_data, &ret_fix, &ret_pdop, &ret_hdop, &ret_vdop)< 0) { fprintf(stderr, "Could not get satellite status_low_level, probably timeout\n"); } if (satellite_system == 0){ printf("GPS satellite (Satellite system number = %d)\n", satellite_system); printf("Number of GPS satellite in use = %hu\n", ret_satellite_numbers_length); } else if (satellite_system == 1) { printf("Glonass satellite (Satellite system number = %d)\n", satellite_system); printf("Number of Glonass satellite in use = %hu\n", ret_satellite_numbers_length); } else { fprintf(stderr, "Not proper satellite system\n"); } for (int i=0; i<ret_satellite_numbers_length; i++) { switch (i) { case 0: printf("First "); break; case 1: printf("Second "); break; case 2: printf("Third "); break; default: printf("%dth", i); break; } printf("satellite number = %d\n", ret_satellite_numbers_data[i]); if (satellite_system == 0) { satellite_index = ret_satellite_numbers_data[i]; } else if (satellite_system == 1) { satellite_index = ret_satellite_numbers_data[i] - 64; } else { fprintf(stderr, "Not proper satellite system\n"); } if (gps_v2_get_satellite_status( &gps, satellite_system, satellite_index, &ret_elevation, &ret_azimuth, &ret_snr) < 0) { fprintf(stderr, "Could not get satellite status, probably timeout\n"); } printf("signal_noise = %d\n", ret_snr); } usleep(1e5); } } int main(void) { /* Register a signal handling function */ if (signal(SIGINT, sig_handler) == SIG_ERR) { fprintf(stderr, "Can't catch SIGINT\n"); abort(); } // Create IP connection IPConnection ipcon; ipcon_create(&ipcon); // Create device object gps_v2_create(&gps, UID, &ipcon); // Connect to brickd if(ipcon_connect(&ipcon, HOST, PORT) < 0) { fprintf(stderr, "Could not connect\n"); return 1; } readSatelliteStatus(); printf("Press key to exit\n"); getchar(); gps_v2_destroy(&gps); ipcon_destroy(&ipcon); // Calls ipcon_disconnect internally return 0; }
  12. Hast du folgendes gelesen: "Die Satellitennummer hat hier immer einen Bereich von 1 bis 32. Bei GLONASS entspricht dieser Bereich den Satelliten 65-96."?
  13. Firmwares: DC Brick 2.3.4, IMU Brick 2.3.4, IMU 2.0 Brick 2.0.9, Master Brick 2.4.5, Servo Brick 2.3.4, Silent Stepper Brick 2.0.3, Stepper Brick 2.3.5 Fix incompatibility between co-mcu support and LED Strip Bricklet [all] Add fix for W5500 (Ethernet Extension IC) ESD exposure problems [only Master Brick] Download: DC Brick, IMU Brick, IMU 2.0 Brick, Master Brick, Servo Brick, Silent Stepper Brick, Stepper Brick
  14. Firmwares: DC Brick 2.3.4, IMU Brick 2.3.4, IMU 2.0 Brick 2.0.9, Master Brick 2.4.5, Servo Brick 2.3.4, Silent Stepper Brick 2.0.3, Stepper Brick 2.3.5 Inkompatibilität zwischen co-mcu Unterstützung und LED Strip Bricklet gefixt [Alle] Fix für W5500 (Ethernet Extension IC) ESD Probleme hinzugefügt [nur Master Brick Download: DC Brick, IMU Brick, IMU 2.0 Brick, Master Brick, Servo Brick, Silent Stepper Brick, Stepper Brick
  15. So jetzt aber . master-brick-v2.4.5-beta3.bin
  16. Leider nicht, der Bootloader-Modus ist Teil des Microcontrollers (sam3s) und wird nicht von uns gesteuert.
  17. Oh man, ich befürchte das ich die falsche .bin hochgeladen hab. Ich bin mir sicher das ich es mit 240 LEDs getestet hab, allerdings hatte ich zwischendurch eine Version wo nur die ersten 80 funktioniert haben . Ich komm jetzt von hier gerade nicht an den Sourcecode, ich lade direkt morgen früh das korrekte .bin hoch.
  18. Is the IMU in bootloader mode? To bring it in bootloader mode: If it isn't in bootloader mode it won't show up as a serial device.
  19. Du musst anstatt "localhost" die IP angeben auf denen die Bricks/Bricklets angeschlossen sind. Zusätzlich muss der verwendete Port (Default = 4223) entsprechend von außen zugänglich sein. In einem normalen Heimnetz heißt das für gewöhnlich du musst in deinem Router (z.B. Fritz Box) eine Portfreigabe für Port 4223 für die passende IP einstellen.
  20. To flash the IMU Brick you have to connect it via USB directly! Did you bring it in bootloader mode? https://www.tinkerforge.com/en/doc/Software/Brickv.html#brick-firmware-flashing
  21. Die einzige Möglichkeit die ich sehe das zu fixen ist, die Erkennung wie viel RAM das LED Strip Bricklet verwenden kann auch dynamisch zu machen. Das Timeout an der Stelle ist 2 Sekunden, d.h. wenn mehr als 80 RGB LEDs angesteuert werden sollen, muss jetzt nach dem ersten Enumerate erst 2 Sekunden gewartet werden. Im Anhang ist eine Firmware die das implementiert, könnt ihr das einmal testen? master-brick-v2.4.5-beta2.bin
  22. Oh, in der Tat. Das Problem ist sogar recht offensichtlich, warum auch immer ich das vorher nicht gesehen hab. Das Problem ist, dass das LED Strip Bricklet den RAM von nicht-genutzten Bricklets mitnutzen kann. Mit den neuen Co-Prozessor Bricklets gibt es folgende Vorgehensweise: Wir gucken erst ob ein EEPROM angeschlossen ist und dieses eine UID/device identifier beinhaltet (d.h. es ist ein altes Bricklet). Falls das nicht der Fall ist gehen wir davon aus des es sich um ein Co-Prozessor Bricklet handelt. In diesem Fall wird das ganze dann dynamisch gemacht. Das LED Strip Bricklet guckt allerdings nur einmal ganz am Anfang welchen RAM es nutzen kann. Dadurch überschreibt der Code zum Handling der Co-Prozessor Bricklets dann die Daten des LED Strip Bricklets. Soweit zum Problem, eine Lösung muss ich mir jetzt noch einfallen lassen .
  23. Danke für die ausführlichen Tests! Ich werde morgen nochmal versuchen das nachzustellen, hoffentlich kann ich es reproduzieren .
  24. What version does the IMU firmware have? Sorry that all the updating is necessary, that is because the gps v2 is the first co-processor Bricklet. This will not be necessary with any of the next Bricklets .
  25. So, tinkerunity.org schickt jetzt mails als "tinkerunity@tinkerforge.com" über den tinkerforge.com mailserver. Dieser ist mit allem drum und dran inklusive Zertifikate usw eingerichtet und macht soweit wir wissen bei keinem Mail-Provider Schwierigkeiten .
×
×
  • Neu erstellen...