Jump to content

jgmischke

Members
  • Gesamte Inhalte

    212
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von jgmischke

  1. Hallo, also ich habe da ein interessantes Problem.

     

    Aufbau von 4 Bricks.

     

    Ganz unten die Stromversorgung.

    Darüber einen RED

    darüber 2 Master, an die dann weitere Bricklets angeschlossen sind, darunter 2 LCD mit 20X4.

     

    Lasse ich das Ganze über USB an Master laufen, funktionieren die beiden LCDs wie gewünscht. Licht geht an und ich sehe was und alle Teile bringen ihre Werte wie sie sollen.

     

    Nehm ich allerdings den USB ab und lass es nur über die interne Stromversorgung laufen, funktionieren alle angeschlossenen Teile weiterhin, bloss die LCDs bleiben dunkel???

     

    Da alle anderen Teile einwandfrei funktionieren und Werte liefern, meine Frage: Falscher Aufbau oder was muss ich beachten?

     

     

     

  2. Hi Nic,

     

    in den Astroforen stöber ich auch ab und an rum und im Moment möchte ich kein grosses Gewicht mit dem Stepper wuchten.

     

    Un du hast recht, bei einer entsprechenden Untersetzung bliebe dann noch genug für die Kraft übrig. Mir ging es erst mal darum, das im puren Betrieb ohne Untersetzung erst einmal eine Umsetzung möglich ist. Mit der 27:1 Untersetzung bleiben gut 5.94Nm, mal schauen, im Sommer hab ich genug Zeit, dann test ich das mal aus.

     

     

  3. Habe hier ein kleines Problem mit einem C Programm. Läuft unter x86 wunderbar, aber es macht auf dem RED ein Problem.

     

    In einem seperaten Thread habe ich ein Ausgabeprogramm, welches über eine Struktur Daten für ein paar 20x4 LCD ausgeben soll. Die Daten sind global in einer Includedatei definiert.

     

    Die Struktur ist simpel und sieht so aus:

     

    struct OutLCD {

    char z[4][21];

    uint8_t virtuell; // Für NCURSES Emulation

    uint8_t aktiv; // Ist der Puffer, die LCD aktiv

    uint8_t OLCDNr; // auf welche Anzeigennr.

    uint8_t dauer; // 0 = permanenten Anzeige  > 0 wechsel nach  X sekunden

    Device lcd;

    WINDOW *LCD;

    } OLCD[20]; 

     

    Um eine Anzeige auch auf dem Bildschirm darstellen zu können, habe ich auch eine virtuelle LCD Anzeige mit ncurses ( dafür der *LCD Eintrag, für die echten LCDs die Device lcd.

     

    Für die Ausgabe gibt es jetzt den Merker virtuell. Und da beginnt mein Problem. Auf dem x86 bleibt der Wert (=1) auch im Thread erhalten, auf dem RED ist der Wert 0, obwohl er eindeutig zugewiesen wurde, allerdings vor dem Thread.

     

    Werden globale Variablen da anders behandelt? Oder wo liegt da mein Fehler?

     

     

     

     

     

     

  4. Hier mal kurz eine Frage, die ich schon mal vor Jahren für den alten Stepper Brick gestellt hatte.

     

    Liesse sich mit dem neuen Brick eine Astronachführung bauen, etwa wenn ich einen Nema17 mit 400 Schritten nehme?

     

    Wenn ich korrekt rechne würden dann ja maximal 102400 Schritte pro Umdrehung möglich sein, d.h auch, dass ich tatsächlich die Erdrotation ausgleichen könnte.

     

    Ist das prkatisch möglich, einen vernünftigen Motor mal vorausgesetzt???

     

     

  5. Hallo,

     

    da gibt es ein paar Möglichkeiten.

     

    Zum einen kannst du shared memory benutzen, was quasi ein Speicherbereich ist, der von allen Programmen benutzt werden kann. Ist relativ einfach zu synchronisieren, aber du musst dich um die Speicherbelegung selber kümmen..

     

    Oder du benutzt threads, da kannst du sogar die gleichen Variablen benutzen, d.h. du hast einen Masterprozess und der startet dann eine beliebige Anzahl Kindprozesse, die über globale Variablen kommunizieren können.

     

    Oder du benutzt ein Netzwerksocket, dann kannst du sogar über mehrere Rechner kommunizieren.

  6. Hi,

     

    alles eine Frage wie du die Werte analysieren willst. Eine Möglichkeit wäre, eine bestimmte Anzahl von Messwerten in einem einfachen Array ( bzw. einer Struktur ) zu sammeln und diese dann in einem zweiten Thread an eine Datenbank zu übermitteln.

     

    Die Datenbank hätte den Vorteil das du jederzeit über alle Daten verfügst und je nach Aufbau der DB hast du dann alle Freiheiten. ( Wann war der Luftdruck über Wert X, wie lange war die Temperatur Y usw. )

     

    Dann ist die Frage, wie oft du die Daten wirklich brauchst. Wie oft ändern sich die Daten? Unter C ist es ja kein Problem, relativ schnell grosse Mengen an Daten in den Speicher zu legen, selbst jede Sekunde würden bei einer Struktur von 100 Bytes gerade mal 8.640.000 Bytes pro Tag anfallen.

     

    Als Datenbank käme dann die MySQL in Frage, relativ schnell wenn du im ISAM Modus arbeitest, Transaktionen brauchst du meines Erachtens nicht.

     

     

     

  7. Hm, also beide Tasten haben einen kleinen Widerstand und machen wie sie es sollen ein kleines "Klick" und gehen wieder in die alte Position. Hab das jetzt ein Dutzend mal probiert, aber es passiert leider immer noch nichts.

     

    Wie bereits geschrieben, bei allen anderen Bricks hat das letztendlich funktioniert.Was nun?

  8. Hallo Robin,

     

    nein, der Fehler ist es definitv nicht. Jedes Brick wird einzeln angesteckt und vorher wurden Sie alle im Gerätemanager angezeigt.

     

    Das Masterbrick habe ich gestern wieder zum Laufen bekommen, nachdem ich mit den Reset und Erase Knöpfchen permanent rumgespielt habe, keine Ahnung wie. Dann hat das flashen auch geklappt. Nur das IMU mag noch nicht. Habe dann noch ein paar andere Bricks geflasht, alle ohne Probleme.

     

  9. Hallo,

    jetzt wo es draussen kalt und dunkel wird, dachte ich es wäre mal an der Zeit, wieder meine Bricks hervorzukramen.

    Ich wollte die neuesten Versionen aufspielen, brav nach Anleitung in den bootable Modus geschaltet ...

     

    der erste Masterbrick funktionierte super, neue Firmware drauf ... fertig.

     

    Dann wollte ich den IMU 2.0 und einen weiteren Masterbrick aktualisieren, ab in den bootmodus .... und dann war nichts mehr. Beide Bricks werden nun nach dem Anschluss über USB NICHT mehr erkannt. Packe ich einen solchen Brick auf den funktiorenden Master, bleibt dieser Master aktiv , aber beide "defekten" Bricks werden nicht mehr erkannt. Auch wenn ich den Stapel vergrössere, werden alle anderen Bricks erkannt, nur eben diese beiden nicht.

     

    Ich habe auf einem anderen Rechner das noch mal probiert, falls meine USB Buchsen auf dem einen Rechner nicht gehen sollten, habe noch mal alle kleinen Beinchen auf den Connectoren durchgecheckt ... nichts.

     

    Gibt es irgendeinen Trick, die beiden Bricks "wiederzubeleben" und sie aus dem bootablemodus zu bekommen?

     

    Jürgen

  10. Hallo Tinkiee24-7,

     

    wenn ich dich richtig verstehe, soll der Redbrick ein Signal senden, wenn die eth Verbindung gekappt ist oder? Wohin oder wie du dieses Signal erzeugst ist dann erst einmal zweitrangig.

     

    Nehmen wir an, auf dem Redbrick ist die IP 192.168.1.2, auf dem Router die 192.168.1.1.

    Dann kannst du mit "ping -c1 -t1 192.168.1.1" auf dem Redbrick abfragen, ob der Router erreichbar ist und ggfs. dann dein Signal erzeugen.

    Oder hab ich da was falsch verstanden?

     

  11. Hallo Tinkiee24-7,

     

    wenn du die Funktion nur selten brauchst, könntest du doch einen system() Aufruf starten, der mit einem einmaligen PING testet, ob noch ein Gegenüber erreichbar ist. Wäre jetzt mal so ne schnelle Lösung, wenn es nicht zeitkritisch sein soll.

     

    Oder du fragst mit ethtool den Status deiner Karte ab. ( Auch über system() erreichbar )

  12. <<< Ja, das ist der Nachteil wenn man so offen mit der Entwicklung neuer Produkte und Ideen umgeht. Wenn dann mal etwas nicht so gut klappt ist das natürlich immer gleich sofort öffentlich >>>

     

    Aber ich glaube, das hier keiner wegen solcher Offenheit böse ist. Wenn ich weiss, das ich da noch gut 2 Monate drauf warten muss, kann ich das akzeptieren. Ist auch keine Kleinigkeit solche Teile zu entwickeln und zu testen, und das wissen wohl die meisten eurer Kunden auch.

     

     

×
×
  • Neu erstellen...