Jump to content

AuronX

Members
  • Gesamte Inhalte

    887
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von AuronX

  1. Mich würden definitiv Fotos interessieren wie so ein Panzer umgerüstet aussieht :D

     

    Mechanisch hab ich leider keine Ahnung, kann dir bei den Ketten also Kaum helfen... zwei Ideen:

    - Spannung auf der Kette erhöhen

    - seitliche FÜhrung der Kette verbessern

     

    Müsste man mal schauen wie die überhaupt aussehen, ist aber möglicherweise auch totaler unsinn was ich schreibe ^^

  2. Fas Problem ist halt, dass es leider völlig transparent ist. Das heißt es gibt soweit ich weiß keinen Weg das herauszufinden. Über Implementierungsdetails könnte es gehen (glaube man könnte die Stack IDs nutzen, weil die Geräte in ner bestimmten Reihenfolge enumeriert werden -> die Stack ID also Rückschlüsse auf den Anschluss zulassen könnte), aber das ist unzuverlässig und da wäre es dann einfacher und sicherer sich lieber selbst die Funkteilnehmer zu "notieren".

  3. Dan würde ich den kürzesten Sensor nehmen. Das könnte funktionieren.

     

    Problematisch könnte sein, dass der Sensor ja im schlechtesten Fall genau zwischen die Wurzeln zweier Grashalme schaut. Dann würde dir der Wind allerdings helfen, da der ja die Halme bewegt.

     

    Du wirst vermutlich ein wenig experimentieren müssen wodurch du gute Ergebnisse erzielst, möglicherweise ist es hilfreich wenn der Sensor sich selbst etwas bewegen kann (sehr kurzes vom Wind bewegtes Pendel???). Am Ende denke ich kannst du ja einfach über einen Zeitraum von x Sekunden messen und die geringste Distanz ist dann dein Messwert (weil du annehmen kannst, dass genau dann der GRashalm vor den Sensor geweht wurde).

  4. Kurze Codeseite Frage zum WLan: Wenn ich eine mobiles Gerät am WLan habe und einen anderen Masterbrick am PC direkt... geht dies dann über eine IP Connection? Oder brauche ich dann 2?

     

    Beispiel:

    - "Bodenstation": (Master + 2 Joysticks und ein Poti zB)

    - "Roboter": (WLan, Stepper, Servo, IR usw...)

    Müsste ich Code anpssen um von der Bodenstation dann den Stepper zu bedienen?

     

    Mhhh, so wie es im Moment gedacht ist müsstest du bei der Initialisierung zwei IPConnections aufmachen, könntest aber danach alles so nutzen wie jetzt auch.

     

    @Borg: Der brickd ist in Python geschrieben oder? Ich würde mal schauen wie gut es möglich ist den von mir gemachten Vorschlag umzusetzen (brickd kann "IP-Devices" anbinden), vielleicht kannst du da auch ne Einschätzung zum Aufwand abgeben.

  5. Folgender Code stammt von dir:

    ipcon.enumerate(new IPConnection.EnumerateListener() {
    		            public void enumerate(String uid, String name, short stackID, boolean isNew) {
    		                if(isNew) {
    		                    System.out.println("New device:");
    		                    if(name.startsWith("Distance IR Bricklet")){
    		                    	
    		                    }
    		                } else {
    		                    System.out.println("Removed device:");
    		                }
    		                
    		                System.out.println(" Name:     " + name);
    		                System.out.println(" UID:      " + uid);
    		                System.out.println(" Stack ID: " + stackID);
    		            }
    		        });
    		        //ipcon.joinThread();

     

    Das ist auseinandergefummelt einmal der Code drumerhum:

    ipcon.enumerate(DER_TEIL_INNEN_DRIN);
    		        //ipcon.joinThread();

     

    und eben der Teil innen drin:

    new IPConnection.EnumerateListener() {
    		            public void enumerate(String uid, String name, short stackID, boolean isNew) {
    		                if(isNew) {
    		                    System.out.println("New device:");
    		                    if(name.startsWith("Distance IR Bricklet")){
    		                    	
    		                    }
    		                } else {
    		                    System.out.println("Removed device:");
    		                }
    		                
    		                System.out.println(" Name:     " + name);
    		                System.out.println(" UID:      " + uid);
    		                System.out.println(" Stack ID: " + stackID);
    		            }
    		        }

     

    Den Teil innen drin nennt man anonyme Klasse, weil du eine ganze Klasse definierst ohne ihr einen Namen zu geben. Wenn du ihr einen Namen geben willst, dann kannst du den inneren Code irgendwo anders hinschreiben und statt

    new IPConnection.EnumerateListener()

    schreibst du dann eben

    class MeineNeueKlasse implements ActionListener

    (oder müsste das statt ActionListener eher IPConnection.EnumerateListener sein?)

     

    Der dazu passende äußere Code wäre dann

    ipcon.enumerate(new MeineNeueKlasse());
    		        //ipcon.joinThread();

  6. Du musst halt immer schauen, mein Rechtsverständnis ist ja, dass jeder dem Boden (also ein Grundstück) gehört auch das Recht über dessen Luftraum hat (zumindest bis zu einer gewissen Höhe). Das heißt einfach aml über ein beliebiges Gebäude fliegen und dann villt auch ncoh Fotos/Videos amchen ist ganz fix ein Landfriedensbruch ;)

     

    Zum Bastel-Thema: Habe auch zu Anfang überlegt ein Fluggerät zu bauen, aber aufgrund der Verzögerung auch erstmal ausgelassen. Wenn die Steuersoftware auf nem Raspberry Pi oder anderem PC mit Standard-betriebssystem läuft auf jeden Fall daran denken, dass der Steuerungsprozess mit ner hohen Priorität laufen sollte. Allgemein sollten natürlich kaum andere Programme laufen, die die Steuerung unterbrechen können.

  7. 2) Wäre es auch möglich die Motoren über das Servo Brick zu steuern

     

    kleine DC Motoren lassen sich mit dem Servobrick und einem zusätzlichen Transistor steuern. Dabei ist natürlich auf die Daten des Motors zu achten.

     

    Wenn die Motoren größer werden brauchst du einen elektronischen Fahrtenregler (ESC). Das wurde hier im Forum schon öfter vorgeschlagen, ich starte demnächst auch ein Projekt wo ich das nochmal aufzeigen werde :D

  8. Also grundsätzlich wären 2 IPConnections nötig, aber ich denke es sollte gehen, dass man den Brickd dazu ermächtigt andere Brickd's zu kontaktieren und als "local" einzubinden. Also ich hoffe zumindest, dass es dort keine Protokoll-seitigen Einwände gibt. Die Idee wäre, dass der lokale Brickd-Service so tut als hätte er angeschlossene USB-Devices obwohl er nur andere Brickd's kennt.

     

    Achso, die Frage nach der IPv6-Unterstützung ist ja gar nicht so blöd ^^ Aber ich befürchte, dass selbst heute noch die vorherrschende Meinung ist: "Darüber kann man später mal nachdenken"

  9. Also das Raspberry kann die USB-Stromversorgung eigentlich nicht Spezifikationskonform erledigen ^^

     

    1. Es ist selbst nur ein USB-Gast-Gerät, darf also laut Spec nicht mehr als 500mA ziehen (alles drüber ist ja out-of-spec)

    2. Es ist ein USB-Host-Gerät muss also mit Gästen bis zu 500mA klarkommen

    3. Es verbraucht Strom ^^

     

    Allerdings weiß ich nicht welche konkreten Toleranzen der Standard hergibt, aber das wäre die einzige Chance da was zu reißen, ansonsten muss ja in eine Richtung die Spec verlassen werden ^^

  10. Die Frage ist wie viele Messung benötige ich wenn die Kiste mal Räder bekommt um eine Wegfindung umzusetzen.

     

    Tatsächlich sind es ja immer zwei Auflösungen die du Gegeneinander veränderst. Du kannst alle 1° Messen, brauchst dann aber insgesamt sehr lange bis du eine volle Schwenkung geschafft hast:

    - Hohe räumliche Auflösung (wenige Lücken)

    - geringe Zeitliche Auflösung (in Bewegung schwierig)

     

    Alternativ könntest du halt die Abstände vergrößern, damit würde ein Durchlauf schneller gehen, aber die Lücken würden halt größer und du könntest was übersehen.

     

    Wie lange Dauert im Moment ein Scan von 180° wenn du in 1° Schritten misst?

  11. @Borg: Deswegen habe ich ja jederzeit das Hintertürchen offen gelassen, dass man int haben kann wenn es auf 100% Präzision ankommt. Aber Holy hat halt recht, dass schon alleine durch die Messungenauigkeit jegliche Vergleiche mit == halbwegs unsinnig sind.

     

    Ich behaupte noch immer ganz dreist, dass in 99% der Anwendungsfälle die float-genauigkeit ausreicht und dort eine bequeme Programmierung den Verlust rechtfertigt.

     

    Ich finde es btw. auch Klasse, dass ihr euch schon Gedanken gemacht habt, dass eben nicht mal eben fix alles nach Gleitkomma gewandelt wird. Vielerorts wird dieses Problem auch gerne weg-ignoriert.

  12. Es ist auch nur eingeschränkt möglich den C-Code für den PC mal eben einfach auf den Brick zu Portieren. Zum einen bietet der Brick viel weniger Luxus was das Programmieren an sich betrifft, zum anderen hast du auf dem Brick ja auch viel weniger Ressourcen (Speicher, Rechenleistung). Deswegen bringt es aus dieser Richtung keinen Vorteil deine "normalen" TF-Programme in C zu schreiben, da würde ich dringend zu was leichtem raten, Java ist z.B. okay ^^

×
×
  • Neu erstellen...