Ich wollte eigentlich wissen ob die Verbindung nötig ist (die zum UART) oder ob die über IO-Mxxx reicht?
Thorben
Ich wollte eigentlich wissen ob die Verbindung nötig ist (die zum UART) oder ob die über IO-Mxxx reicht?
Thorben
Darauf habe ich ja auch geantwortet.
Ja, Verbindung zum UART ist für GPS nötig; und nein, die Verbindung mit IO-Mxxx reicht nicht.
Gruß
Dirk
Deine Libs sind echt der Hammer
Mehrere Oktaven für den Buzzer - da können sich die RP6-Entwickler schon noch bissl was abschauen!
Ne Frage: Manche Funktionen wie alles für die LFS, Bumper, Sharps usw stehen doch nur in den Examples, nicht aber in den Libs. War das so gedacht? Oder kommen diese Funktionen noch in deine RP6M256_MultiIO.c/.h?
Grüße
und noch mal: Echt ne saubere Arbeit!
Vielen Dank!
Passend für deine "saubere" Platine, die wirklich Spaß macht!!!
Ich bin da unsicher.Ne Frage: Manche Funktionen wie alles für die LFS, Bumper, Sharps usw stehen doch nur in den Examples, nicht aber in den Libs. War das so gedacht? Oder kommen diese Funktionen noch in deine RP6M256_MultiIO.c/.h?
Ich selbst möchte es bei der "zentralen" Lib eigentlich belassen, weil dafür ganz klar ist, was da rein muss. Nämlich alle Funktionen für die fest installierten Komponenten (genau so wie bei der RP6 Lib). Eine Lib macht ja auch nur Sinn, wenn sie weitgehend unverändert bleiben kann und nicht von wechselnden Komponenten abhängig ist.
Deshalb habe ich die anderen Funktionen (LFS, Bumper) erst einmal in den Demos gelassen, aber so angelegt und voneinander getrennt, dass eigentlich jeder "seine" Funktionen aus den Demos einfach in seine zentrale Lib einfügen kann:
- Definitionen in den Header (RP6M256_MultiIOLib.h)
- Funktionen in die Source (RP6M256_MultiIOLib.c)
Der Konfigurations-Header der Lib (RP6M256_MultiIO.h) braucht dabei nicht geändert zu werden, weil er schon alle grundlegenden Definitionen (auch für LFS, Bumper, DCF77...) enthält.
Im Prinzip ist es also einfach, sich eine individuelle Lib zusammenzubasteln.
Wenn gewünscht, würde ich evtl. die LFS und Bumper-Teile einmal zur Lib dazutun, wenn sich das jemand kopieren will. Damit würde ich aber noch warten, bis evtl. Bugs raus sind.
Gruß
Dirk
Vielleicht ein "Mittelweg" : eine Lib für die beiden Boards Linie und Bumper? Vielleicht auch noch fürs Radio?
Du meinst also die MultiIO-"Hauptlib" und je eine weitere für Linie/Bumper und für Radio?
Das ist eine gute Idee. Werde ich so machen.
Gruß
Dirk
wie wäre es mit einer "hauptlib" und einer fürs "zubehör"?
gruß inka
Hi,
1. Ich habe da mal eine Frage zu der Servo Ansteuerung. Als Grenzwerte sind 147 und 471 angegeben. In diesen Bereich decke ich auch fast alles ab. Bei einem Servo brauche ich aber volle 180 Grad. Die Werte wären 90 und 460. Bei einem Versuch klappte das auch Prima. Nur wird in der Lib das nicht empfohlen.
Warum ? Ich bitte um Erleuchtung
2. Ich habe die Sharps GP2D120 und berechne die Sharps mit der Formel aus http://www.rn-wissen.de/index.php/Sensorarten Ich habe die Berechnung in der Lib ausgetauscht, alles funktioniert, alles ist schön. Trotzdem würde mich interessieren, nach welcher Formel in der Lib gerechnet wird, wo kommen die Zahlen her ?
3. Wie bekomme ich die Werte von tint, cbat ,vbat auf das Display ?. Meine Versuche mit writeIntegerLengthLCD(tint, DEC, 3) bringen nicht die Ausgabe wie im Terminal.
Gruß Trainmen
Hi TrainMen:
Zu 1:
Die Grenzwerte 143 und 471 entsprechen 0,7 bzw. 2,3ms. Das ist die Spezifikation, die die meisten Servos einhalten.
Wenn du ein Servo hast, das nur einen Impuls am linken Anschlag von 0,44ms braucht, dann kannst du natürlich auch 90 nehmen.
Zu 2:
Ich habe mit meinem Sensor eine Tabelle (ADC-Werte <-> Entfernung) angelegt und die in Excel eingetragen. Excel hat mir dann die Formel errechnet.
Zu 3:
tint, cbat, vbat sind ja keine Integer-Variablen, sondern double.
Eine Ausgabefunktion für das LCD:
Viel Erfolg!Code:/** * Write a floating point number to the LCD. * * Example: * * // Write a floating point number to the LCD (no exponent): * writeDoubleLCD(1234567.890, 11, 3); * * The value of prec (precision) defines the number of decimal places. * For 32 bit floating point variables (float, double ...) 6 is * the max. value for prec (7 relevant digits). * The value of width defines the overall number of characters in the * floating point number including the decimal point. The number of * pre-decimal positions is: (width - prec - 1). */ void writeDoubleLCD(double number, uint8_t width, uint8_t prec) {char buffer[width + 1]; dtostrf(number, width, prec, &buffer[0]); writeStringLCD(&buffer[0]); }
Gruß
Dirk
Lesezeichen