Jump to content

ThomasKl

Members
  • Gesamte Inhalte

    100
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von ThomasKl

  1. ThomasKl

    ServoBrick PWM

    super habs gerade gesehen, werde es bei Gelegenheit mal testen.
  2. was willst du denn mit den LEDS machen nur an/aus oder auch dimmen in einem anderen thread wurden die leds über ein io16 bricklet getrieben http://www.tinkerunity.org/forum/index.php/topic,591.0.html
  3. Der BrickViewer verwendet z.B. Qt und lässt sich sicher als Basis für eigene Dinge verwenden
  4. da beschwert er sich aber dass glibmm.h nicht da ist gibt es denn die Datei. wie wäre es den mit qt
  5. probiermal anstatt #include <gtkmm.h> ein #include "gtkmm.h" wenn ich mich recht erinnere sind die <> Zeichen für systembibliotheken
  6. Hmm eigentlich sollte die Spannung (zumindest bei den normalen Einstabmessketten dich kenne) sowas wie 57 mV pro pH Schritt sein, hast du schon mal eine andere Lösung als destilliertes Wasser gemessen z.B. pH 4 , da sollten je nach offset +160-200 mV rauskommen?
  7. Ich bin da auch kein Experte, habe mir die günstigsten bei Conrad geholt um ein bisschen zu spielen. Dafür haben sie auf jedenfall gereicht. Da kommt es natürlich auf die Anforderungen an. Wenn der Servo innerhalb von 0.1 s seine Position erreicht haben soll ist das natürlich was anderes als wenn man 2 s Zeit hat.
  8. Ja nur um ein Display zu bewegen sollte doch ein kleiner Modellbauservo ausreichen.
  9. wenn du die Dioden hintereinander hängst (in Reihe) brauchst du nur entsprechend mehr Spannung aber der Strom ist durch alle der selbe.
  10. Wenn der Weg klein ist, würde sich dass auch sehr gut mit einem Servomotor erledigen lassen. Die sind in der Regel auch deutlich billiger als Schrittmotoren.
  11. was mir bei den Erklärungen fehlt ist irgendwie die Information von welchem Bezugssystem ausgegangen wird. In meiner Vorstellung gibt es zwei Koordinatensysteme das des Bricks mit den x,y,z Achsen so wie sie auf dem brick aufgedruckt sind und das Äußere also die Welt mit Nord-Süd (NS), Ost-West (OW) und dem gefühlten Unten-Oben (UO). Jetzt braucht man die Transformation für Weltkoordinaten (NS,OW,UO) in Brickkoordinaten (x,y,z) und für die Transformation von Brick zu Welt koordinaten. Um das Problem von Plenz zu lösen müsste man einmal den Punkt (1,0,0) von Brick zu Welt transformieren und dann den Winkel zur UO-Achse bestimmen. Und dann das gleiche nochmal mit dem Punkt (0,1,0). wenn ich das richtig verstanden habe dann Transformiert die in der Api angegebene Matrix Brickkoordinaten in Weltkoordinaten. EDIT: Das was plenz möchte müsste eigentlich auch einfach anhand der Gyroskopdaten möglich sein.
  12. Also ich denke dass man die Einstabmesskette für den pH Wert direkt mit dem AnalogIn Bricklet auslesen kann, ohne zwischengeschaltete Elektronik. Die Kalibration muss man ja eh machen und die könnte man dann auch in einem eigenen Programm erledigen.
  13. ich glaube was borg meinte ist dass man sensoren nimmt die ihren messwert analog über eine Spannung aus geben also z.b. 0V -> kleinster messwert 10V->größter messwert dann muss man nur ursprung und steigung kennen (oder sonst eine kalibrationskurve) und kann jeden Spannungswert zu einem messwert umrechnen.
  14. Der Winkel hängt natürlich von dem bei der Kalibration gesetzten Richtungsvektor ab, wo der tatsächlich liegt weiß ich nicht, der einfachheithalber habe ich die USBBuchse angenommen. aber das nach oben berechnete w sollte konstant sein wenn du das Brick um die ZAchse drehst, wenn ich dich richtig verstanden habe ist dem so oder?
  15. Im Prinzip geht das bestimmt aber das müsstest du vermutlich selbst probieren, da die TF Leute schon relativ viel Arbeit vor sich haben http://www.tinkerforge.com/doc/Timeline.html
  16. Ja dass gibt es auch und nennt sich PFM (pulse frequency modulation) da ist die Pulsbreite dann vorgegeben und die Frequenz wird verändert.
  17. der winkel w zwischen zwei vektoren (a,b,c) und (x,y,z) lässt sich mit w = acos((a*x+b*y+c*z)/(sqrt(a*a+b*b+c*c)*sqrt(x*x+y*y+z*z))) berechnen wenn a=b=0 und c=1 ergibt sich w = acos(z/sqrt(x*x+y*y+z*z))) was aus der Documentation nicht ganz klar wird, ist in welche Richtung die angegeben Transformation abläuft also vom äußerem Koordinatensytsem (festgelegt bei der Kalibration) zu Koordinaten relativ zur Platine oder anders herum
  18. Eigentlich sollte dem Treiber die Frequenz der PWM egal sein, die Menge an Strom wird nicht durch diese Periode (1ms bei 1kHz, bzw 2ms bei 500 Hz) bestimmt sondern wie lange pro Periode "angeschaltet" bleibt. PWM heißt praktisch das du in einem festen Rythmus einen Schalter anmachst, z.b immer am Anfang einer Minute, und dann eine gewisse Zeit wartest bis du wieder ausmachst z.b. 30 Sekunden. Wie viel Strom dann fließt ergibt sich aus dem Verhältnis von Anzeit pro Periode zur Periodendauer. Den vollen Strom erhälst du also wenn du einfach die gesamte Periode über anbleibst, unabhängig davon wie lange die Periode ist. Bei Lichtquellen brauchst du natürlich eine gewisse Frequenz damit man kein Flackern sieht aber 500Hz sollten da dicke ausreichen.
  19. Hi, ja die 1000 gelten insgesamt pro USB Verbindung. Man darf also sonst nichts machen. Da brauchst du für jeden IO16 ein eigenes Brick. Dass man zwei Befehle mit einer USB-Message schicken kann geht glaube ich nicht, wurde zumindest noch nie erwähnt. Da müsste vermutlich die USB-Behandlung im BrickD und auf den Bricks umgestellt werden. Wäre natürlich eine tolle Idee dass der BrickD alle Messages die in einer ms auflaufen bündelt und dann zusammen über den USB-Port schickt. Ansonsten könntest du natürlich auch zwei Dioden parallel an einen IO Port hängen, dann geht dir halt die räumliche Auflösung verloren. Benutzt du eigentlich eine StepDown Powersupply? weil 60x20mA ist ja deutlich mehr als so ein USB-Port typischerweise schafft.
  20. also im Moment kann der Servo-Brick PWM mit bis zu 500Hz aber borg wollte das noch etwas hoch schrauben 8kHz wurden da mal genannt. Allerdings sollte das Dimmen auch bei 500Hz gut funktionieren. Die Angaben zu den Anforderungen an die PWM sind ja nicht gerade üppig also nehme ich mal an, dass es mit einem Standard PWM Signal (3-5V) wie es der Servo liefert funktionieren wird.
  21. Also eher kleine Leistung, da kann man sicher einfach mittels der Spannung steuern. wenn du dass mit dem IO16 machen möchtest müssen die LEDs mit 3.3 oder 5V betrieben werden können. Die Helligkeit würdest du dann über schnelles ein und ausschalten regeln. Das IO16 kanst du etwa 1000x pro sekunde schalten. Um eine flackerfreies leuchten zu bekommen braucht man mindesten 25Hz. Das heist du hättest maximal 40 Stufen um die Helligkeit zu regeln. Deutlich feiner (auch feiner als 8bit) könntest du es mit dem Servo Brick steuern, da kommen aber "nur" 7 Ausgänge raus.
  22. wie hoch sind den die maximalen Ströme die durch die LEDs fließen sollen. Sollen alle 60 LEDS unabhängig von einander operieren oder gibt es Gruppen von LEDS die sich gleich Verhalten sollen. Generell gibt es kein TF Produkt, dass eine Konstantstromquelle (KSQ) bereitstellt. Für LEDs mit hohen Leistungen sollte zur Sicherheit aber besser eine KSQ verwendet werden.
  23. Wenn ich es richtig verstanden habe besteht ein Quaternion im Prinzip aus zwei Elementen einem Richtungsvektor (x,y,z) und einem Winkel (w). Den Richtungsvektor kann man sich nun als einen Pfeil auf der Platine vorstellen z.B. vom Mittelpunkt der Platine zur USB Buchse. x,y,z sind jetzt Koordinaten in einem äußeren Koordinatensystem, dessen Ursprung mit dem Mittelpunkt der Platine zusammenfällt. Um nun zu einer mittels xyzw vorgegebenen Position zu kommen kann ich zwei Wege gehe entweder ich drehe erst die Platine um den winkel w, die Drehachse ist dabei der aufgezeichnete Pfeil und bewege dann die USB Buchse zur mit xyz angegebenen Position ohne dass sich der Mittelpunkt verschiebt, oder ich bewege erst die USB Buchse und drehe dann um den angegebenen Winkel. Die Koordinaten beziehen sich aber immer auf ein festes Äußeres koordinatensystem also z.b. x=nord y=süd Wenn ich richtig verstanden habe was Plenz möchte, dann ist ihm das äußere Koordinatensystem relativ egal und er ist nur an den beiden Winkeln zur Z-Achse interessiert, Das ist einmal der Winkel USBBuchse-Mittelpunkt-äußereZAchse und einmal StackVerbinder-Mittelpunkt-außereZAchse der erste Winkel ist einfach da es der Winkel zwischen den Vektoren (x,y,z) und (0,0,1) um den zweite Winkel zu berechnen muss man erst den Vektor (a,b,c) ableiten der senkrecht auf dem Richtungsvektor steht und den winkel w erfüllt, dass ist vermutlich etwas mehr Aufwand, da fällt mir spontan auch keine einfache Ableitung ein. Insgesamt wäre es mal interessant zu wissen wie xyzw aussehen wenn man neu kalibriert hat, ist es möglich die Orientierung des Richtungsvektor zur Platine selbst bestimmen oder wird da immer mit dem gleichen gerechnet. EDIT: In der Docu sind ja beispiele genannt um einen vektor zu transformieren, also um plenz anforderung zu erfüllen muss einmal der Vektor (1,0,0) transformiert werden und einmal der Vektor (0,1,0) bestimmt man nun für jeden der beiden transformierten vektoren den winkel zur zAchse (0,0,1) sollte das Problem eigentlich gelöst sein.
×
×
  • Neu erstellen...