Jump to content

Tipsy Tinker

Members
  • Posts

    27
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Tipsy Tinker's Achievements

Rookie

Rookie (2/14)

  • First Post Rare
  • Collaborator Rare
  • Conversation Starter Rare
  • One Month Later Rare
  • One Year In Rare

Recent Badges

0

Reputation

  1. Moin, Ja, das konnte ich reproduzieren. Hatte ich in einem anderen Post von Dir schonmal wo gelesen. Mein Problem konnte ich lösen, in dem ich set_sensor_fusion_mode(0) gewählt habe. Hatte zunächst set_sensor_fusion_mode(2) versucht, allerdings hat das ja, wie oben beschrieben keine Abhilfe geschaffen. Hat wohl nicht ausgereicht, das Magnetometer abzuwählen. Die Verwendung von unkalibrierten und unkompensierten Sensorwerten genügt wohl im dargelegten Anwendungsfall. Im Zeitlupenvideo kann ich diese nicht erkennen. Naja, jetzt passt es ja. :) Trotzdem vielen Dank! Gruß Tipsy
  2. Hallo Zusammen, Ich hatte für ein studentisches Projekt auch den Versuch unternommen, mittels des IMU Bricks eine Rotationsbewegung aufzuzeichnen und kämpfe scheinbar mit einer Art Sensordrift, den ich aber mit imu.SetSensorFusionMode(2) wie hier vorgeschlagen, nicht wegbekomme. Am orangen Graph der ermittelten Daten erkennt man das recht gut. Die Werte der Drehbewegung laufen nach dem Nulldurchgang wieder ins Positive, was ja bedeuten würde, dass Real eine Art "Wendung" stattfindet. Allerdings ist real der Bewegungsablauf abgeschlossen. Die Beschleunigungswerte (blauer Graph) und die visuelle Beobachtung entsprechen dem. Den Versuchsaufbau habe ich mal vereinfacht dargestellt. Die Bewegung von Pos. 1.) nach Pos. 2.) soll aufgezeichnet werden. Nach dem Ablauf werden aber weiter Werte aufgezeichnet, die gegenläufig sind. Sind das eigentlich die gleichen Werte, die den IMU in der 3D Anzeige des Brickviewers weiter drehen lassen, wenn er nach dem rumspielen wieder ruhig liegt? Und könnte ein Zusammenhang mit der Kalibrierung, bzw. automatischen Dauerkalibrierung bestehen? Vielleicht hat wer einen Tip, was man prüfen könnte? Gruß Tipsy
  3. Ok, scheint soweit geklappt zu haben 🙂 Selten lagen Verwunderung und Firmware-Update so nah beieinander *gg* Vielen Dank auch für Deine Ausführungen zu den Ticks. Gruß Tipsy
  4. Hallo Zusammen, kann jemand sagen warum folgender Code kein Temperaturwert für die Kerntemperatur des IMU 2.0 Bricks zurück gibt? #!/usr/bin/env python # -*- coding: utf-8 -*- HOST = "localhost" PORT = 4223 UID = "6rGa5o" import time from tinkerforge.ip_connection import IPConnection from tinkerforge.brick_imu_v2 import BrickIMUV2 Liste = ["X","X","X","X","X","X"] def cb_quaternion(w, x, y, z): Liste[1] = (w/16383.0) Liste[2] = (x/16383.0) Liste[3] = (y/16383.0) Liste[4] = (z/16383.0) def cb_temperature(temperature): Liste[5] = temperature def main(): ipcon = IPConnection() imu = BrickIMUV2(UID, ipcon) ipcon.connect(HOST, PORT) imu.register_callback(imu.CALLBACK_QUATERNION, cb_quaternion) imu.register_callback(imu.CALLBACK_TEMPERATURE, cb_temperature) imu.set_quaternion_period(100) imu.set_temperature_period(100) time.sleep(1) i = 0 while i < 20: Liste[0] = i print("Übersicht Werte in Liste:") print("Wert 1:" + str(Liste[0])) print("Wert 2:" + str(Liste[1])) print("Wert 3:" + str(Liste[2])) print("Wert 4:" + str(Liste[3])) print("Wert 5:" + str(Liste[4])) print("Wert 6:" + str(Liste[5])) print("") i = i+1 time.sleep(0.5) ipcon.disconnect() if __name__ == "__main__": main() Benutze ich cb_all_data wie in den Beispielen gezeigt, kommt der Temperaturwert mit. Möchte ich ihn einzeln haben, so wie hier in meinem Beispiel, bekomme ich ihn nicht aufgerufen. Vielleicht hat jemand ne Idee, woran das liegen könnte?! Hintergrund ist, das mein IMU regelmäßig aussteigt, und ich die Vermutung habe, dass ihm ein bisschen zu warm ums Herz ist 😉 Das führt mich zu einer weiteren Frage: Gefühlt gibt es ein Performance-Unterschied zwischen: Alle Werte per Callback erheben, diejenigen die ich benötige loggen zu: Nur diejenigen per Callback erheben und loggen, die ich benötige liege ich da richtig? Und wenn ja, was sind so die gängigen Tricks und Kniffe, um ein möglichst hochfrequentes Loggen von spezifischen Werten zu realisieren ? Vielen Dank an alle Tinkerforger da draussen :) Grüße Tipsy
  5. Hey :) Vielleicht liegt hier ein Missverständniss vor. Wenn der Stapel samt RED komplett und gebootet ist, gibt es unter RED eigene Tabs zur IP-Konfiguration. Diese müssen entsprechend passend zum restlichen Netzwerk konfiguriert sein. Hilft das weiter? Grüßle
  6. Hi ! Bei meinen Projekten komme ich immer wieder an den Punkt, an dem ich mir eine Art "Leerbrick", also quasi einen Spacer wünsche, der mir verschiedene Handlungsfreiräume bietet. Kabeldurchführung, Verschraubungen unter dem Brickstapel zugänglich machen, Abstandshalter-Funktion oder gar mit einem Lüfter aufgerüstet sind nur ein paar Ideen. Ich stelle mir in etwa sowas wie in meiner Skizze vor. Toll wäre noch ein ausleiten von 5V auf 2 Lötpunkte, damit man zB. einen Lüfter versorgen könnte. Somit könnte man zB. seinen RED kühl halten, oder Abwärme von den PoE´s weg schaffen. Zusätzlich sind Befestigungsösen für zB. Kabelbinder o.Ä. vorgesehen. Ich habe mal 2 Varianten entworfen: Spacer "Frame" im Standard Tinkerforge Formfaktor Spacer "light" wobei man da pro Ebene jeweils 2 Stück einsetzt. Diese sind wechselseitig verwendbar. Natürlich ist zwingend erforderlich, das die Brick-Connectoren durchgeschleift werden. Interessant wäre für mich auch ein Element, welches die Brick-Connectoren jeweils versetzt trägt und somit ermöglicht, Bricks innerhalb eines Stapels um 90° zu drehen. Hat man sowas schon mal in Erwägung gezogen? Tendenziell würden es für einige Anforderungen auch Brick-Connector Aufsätze in entsprechender Länge tun. Vielleicht kann jemand Auskunft geben, oder Communitymitglieder haben Lösungsvorschläge 🙂 Gruß Tipsy
  7. Genau, aber ich raffe noch nicht, wie ich mit dem Script auf den Alarm reagiere. def main(): ipcon = IPConnection() rtc = BrickletRealTimeClockV2(UID_Clock, ipcon) led = BrickletRGBLEDV2(UID_Led, ipcon) ipcon.connect(HOST, PORT) led_green(led) time.sleep(1) led_red(led) rtc.set_alarm(-1, -1, -1, -1, -1, -1, 5) ### led_green(led) ipcon.disconnect() Vielleicht könnte mal jemand anhand des Codebeispiel zeigen, was an stelle ### stehen muss, damit die Led nach 5* Sekunden (oder eingestelltem Alarmwert) wieder auf grün schaltet. Ich hab da irgendwie grad nen Knoten. Die nächste Frage wäre, wie ich das parallel zum eigentlichen Programm bewerkstellige :) Vielen Dank. Grüßle Tipsy
  8. rtrbt, vielen Dank für deine Eingaben. Hat mir sehr weiter geholfen. import subprocess subprocess.run(["sudo", "reboot"]) Hat direkt funktioniert, wird allerdings langfristig ein Sicherheitsproblem darstellen, schätze ich. Werd mal noch ein bisschen damit herum experimentieren, wäre schon nice das auf einen Alarm zu legen. Hab allerdings noch nicht so ganz raus wie ich auf den Alarm aus dem Skript heraus reagieren kann. Den Monoflop find ich großartig :) So naheliegend und doch so fern. Langfristig wirds der wohl werden.. 🙂 Grüßle Tipsy
  9. Hallo Zusammen 🙂 Besteht die Möglichkeit, den RED Brick aus einem python-Script heraus zu rebooten? Wenn ja, wie ? Besteht die Möglichkeit, den Alarm aus dem "Real-Time Clock Bricklet 2.0" zu benutzen, um einen reboot auszulösen? Und aller guten Dinge sind 3: Besteht die Möglichkeit, irgendwie zu erkennen, das sich der RED aufgehängt hat, um ihn dann zu rebooten? Klingt irgendwie widersprüchlich, aber ihr versteht schon...🤣 Vielleicht hat wer Hinweise, wie ich diese Fragestellungen lösen kann, oder hat Recherchehinweise die mich weiter bringen. Grüßle, Tipsy
  10. Der Allwinner10s ist das SoC des RED-Brick. Für die Ethernet Extension (mit/ohne PoE) steht hier auf Seite 60 : -40 bis +85°C
  11. Hab grad nochmal in die Datensätze geschaut. Als max.Temp erreiche ich am Einsatzort des Humidty Bricklets 146 °C, im niedrigen Temperaturbereich bis zu 90% rel. Feuchtigkeit. Das hier verlinkte Allwinner 10s Datenblatt verrät auf Seite 47: -20 bis +70°C Aber ob das so für den RED-Brick im allgemeinen gilt ?! Es führt kein Weg vorbei, es muss gemessen werden. 😐
  12. Jap, wird wohl notwendig sein noch zwei Thermocouple Bricklet mit rein zu hängen. Müsste dann immer zum Aufzeichnungende hin in den Daten erkennbar sein. Bisher habe ich die deutlich über Handwarme Temperatur aussen am Gehäuse festgestellt. Jetzt werden Tatsachen geschaffen. 🙂
  13. Klink mich mal ein, betreibe ein Humiditiy 2.0 Bricklet seit Knapp 6 Monaten störungsfrei im "Hochtemperaturbereich" ... 80-120 °C / rel. Feuchtigkeit 5-20 % Wohingegen einer meiner RED-Bricks, in dessen Stapel ausserdem ein PoE-LAN Master seine Arbeit verrichtet, immer mal wieder hängt. Die Abwärme des PoE-LAN Master sorgt regelmäßig für Gehäuseinnentemperaturen im Temperaturbereich < ~60 °C . Ich habe den Verdacht, das ein Zusammenhang bestehen könnte. Grüße Tipsy
  14. Hi Zusammen, wie bildet man denn auf dem OLED 128x64 Bricklet 2.0 Sonderzeichen ab? Also zum Beispiel °C wobei hier das "°" gemeint ist. Bzw alle Zeichen die hier Abgebildet sind und ausserhalb des grünen Bereichs liegen? Aus 'C kenn ich sowas wie exit_nodes, aber zu Python finde ich dazu nichts. Hat das was mit der UTF-8 Codierung des Codes zu tun ? Besten Dank für Hinweise. Gruß Tipsy
×
×
  • Create New...