Tau Labs Software unterstützt vielfältige Hardware

ernieift

Erfahrener Benutzer
Heute ist mein neues Spielzeug angekommen...

Warum das nun verkehrt herum ist?... egal!
Das STM32F429I-DISCO ist noch ein wenig grösser und es gibt natürlich auch kein Adapterboard aber hier ein paar Eckdaten:
2MB Flash, 256KB SRAM, L3GD20 Sensor. Dazu noch ein Touchscreen (320x240) und 8MB SDRAM. Zum Fliegen fast Verschwendung. Was da zu sehen ist, ist die Demo-App. Eventuell könnte es auch ohne zusätzliche Sensoren schon fliegen (Das blanke DiscoveryF4 nicht). Der L3GD20 würde fürs Erste reichen. Ob es nun sinnvoll ist, dafür ein target aufzusetzen, weiss ich selber nicht. Aber wer auf der Suche nach einer richtig grossen CPU ist: bitte sehr. Ich fand den Touchscreen nur cool, da ich vorher nichts davon gelesen hatte. Das Ganze für ca. 21€ netto ist es schon wert.
vg ernieift
 

Anhänge

cGiesen

Erfahrener Benutzer
@ernieift
Ich wollte jetzt mal ans testen gehen.
Aber ich komme beim Revo nicht ans die Serielle dran.
Oder ich müsste meinen Hammerhead schon wieder auseinandernehmen.

Was kann ich sonst tun?
 

ernieift

Erfahrener Benutzer
Hi Carsten,
nach dem letzten Update (von gestern) brauchst Du keine serielle. Stelle einfach den VCP Port (bei Hardware) auf PicoC und dann kannst Du einfach über die virtuelle COM mit dem Interpreter reden. Also nichts auseinander bauen.
vg ernieift
 
Ich lach mich kaputt:
Heute ist mein neues Spielzeug angekommen...

Warum das nun verkehrt herum ist?... egal!
Das STM32F429I-DISCO ist noch ein wenig grösser und es gibt natürlich auch kein Adapterboard aber hier ein paar Eckdaten:
...
vg ernieift
Da ich die Woche mein F3 geschlachtet habe ... , falls jemand einen StLink sucht der müsste noch gehen,
habe ich mir ein neues bestellt und dazu das obige F429 :)
Auch noch gleich die Sensoren aus der Reihe einen LSM303 Kompass/Accel und einen LPS331 als Baro.
 

cGiesen

Erfahrener Benutzer

cGiesen

Erfahrener Benutzer
Erste Erfolge mit PicoC.
Ein Prompt wenn ich was falsches eingebe.

Allerdings ist der Cursor, bzw. die Eingabe immer versetzt um 10(?) Zeichen.
Vermutlich liegt es am Putty.
Hat einer mal einen Tipp wie ich das richtig einstelle?

Und wie bekomme ich jetzt ein Script hochgeladen.

ABER:
Beim Revo Mini klappt es auf Anhieb, so wie es aussieht
 

ernieift

Erfahrener Benutzer
Hallo Carsten,
der Prompt wird von picoC so vorgegeben. Den habe ich nicht geändert.
Du kannst die beiden Scripts aus dem PR nehmen, oder einfach die hier...

Sinus-LED über Accessorychannel:
Code:
#include "system.h"
#include "math.h"

void main() {
 sync(0);
 float f = 0;
 while (!armed()) {
  AccessoryValSet(0,sin(f));
  f=f+0.1;
  printf("%f\n", sin(f));
  sync(20);
 }
 AccessoryValSet(0,-1);
}
Sonar über einen PWM-Input:
Code:
#include "system.h"
#include "pwm.h"

PWMFreqSet(2,10); /* set channel 5-6 to 10Hz */
PWMMinSet(5,0);   /* set channel 5 Min to 0 */
PWMValSet(5,10);  /* set channel 5 to 10µs pulse */
while (getchar() != 27) {
 float distance = PWMValGet(1)/58.0;
 printf("Distance = %f cm\n", distance);
 delay(500);
}
Beim ersten wird nur main() definiert. Es muss noch mit main(); im Interaktiven Modus aufgerufen werden. Man hat also die Wahl einfach ein Script ähnlich einer autoexec.bat laufen zu lassen oder es richtig zu programmieren.
Wenn Du noch eine Weile weiterspielst, dann findest Du bestimmt noch etwas besseres. Funktioniert denn der VCP-Port auf dem Revo?
vg ernieift

PS: muss noch die Möglichkeit der direkten Kanaleingabe einbauen. Dann kannst Du die zusätzlichen Kanäle als µs-Werte in picoC verwenden. Damit sparst Du Dir die Accessories und kannst Graupners maximal 32 Kanäle benutzen.
 

ernieift

Erfahrener Benutzer
Sorry Carsten,
kann gerade nicht telefonieren - später ja. Aber schon mal soviel:
Den Interaktiven Modus kannst Du mit ESC oder CTRL-C beenden. Das löscht alles, was Du bis dahin eingegeben hast. Falls man etwas anderes probieren will, ist das hilfreich. Wenn Du Startup=OnBoot drin hast, kommt der natürlich gleich wieder.
Um also ein Script in den Flash zu bekommen zunächst Startup=Disable oder (bei Interaktiv) ESC drücken.
Vorher noch im PicoCStatus->Command=USARTmode wählen.
Wenn Du jetzt ESC drückst, kommt kein neues Prompt.

Der USARTmode kennt folgende Controlcodes:
CTRL-A: Puffer löschen und Schreibzeiger auf Null
CTRL-B: Puffer freigeben (ab jetzt gehen alle Zeichen in den Puffer)
CTRL-C: Puffer sperren (Pufferzeiger bleibt erhalten. Es kann mit CTRL-B weitergeschrieben werden)
CTRL-D: Puffer sperren und Zeiger wieder auf NULL
CTRL-E: den ganzen Puffer auslesen (damit kann man sich ansehen, was im Puffer ist)

PicoCStatus->Command hat folgende Funktionen:
Idle: nichts machen (picoC fällt nach einem Kommando immer wieder dahin zurück, ist gleichzeitig die Quittung für einen Auftrag)
USARTmode: s.o. (muss explizit abgewählt werden)
GetSector: kopiert einen Teil des Sources nach PicoCStatus->Sector. Startadresse = SectorID*sizeof(Sector)
SetSector: wie GetSector nur andersrum. Beide Funktionen sind später für die gcs gedacht.
LoadFile: lädt aus dem Flash einen Source in den Puffer. Der Dateiname ist dabei 'FileID'
SaveFile: speichert den Puffer mit der 'FileID' im Flash
DeleteFile: löscht einen Source mit Namen 'FileID'
FormatPartition: löscht alles in der Waypoint-Partition (Vorsicht!)

Alle Kommandos (ausser USARTmode) werden mit PicoCStatus->Command=Idle quittiert. Eventuelle Fehler (!=0) kann man bei PicoCStatus->CommandError ablesen. Es gibt dafür aber keine Codeliste. Die Fehler kommen direkt aus den PIOS-Funktionen.

vg ernieift
 

ernieift

Erfahrener Benutzer
Hab' noch was vergessen:
Da man im interaktiven Modus kaum korrigieren kann, empfehle ich den Source in einem Editor zu schreiben und einfach mit copy&paste zu übertragen. Falls es einen Fehler gibt, kann man den im Editor bereinigen und mit ESC einen neuen Versuch starten...
 

cGiesen

Erfahrener Benutzer
So weit so gut, oder auch nicht.

Aber wie bekomme ich denn aber jetzt z.B. die LED Geschichte in die FC rein?
Einfach mit Ctrl-V im Putty?
Wie bekomme ich das dauerhaft rein?

Ich meine so ganz praktisch.
 

ernieift

Erfahrener Benutzer
Genau so. Interaktiv ausprobierten bis es läuft. Für die LED Geschichte habe ich noch die Output-Grenzen vom verwendeten Kanal geändert (Min=0, Max=20000µs) bei 50Hz Rate.
Wichtig beim LED-Beispiel ist noch der anschliessende Aufruf mit 'main();' am Ende (sonst wird nur die Funktion erzeugt). Wenn es also richtig läuft, dann kannst Du es im USARTmode in den Puffer spielen und mit Save abspeichern. Wenn Du nun in den PicoCSettings->Source auf File stellst, versucht der Task beim Starten das BootFile vom Flash zu laden und unter der Startup-Bedingung auszuführen.
 

cGiesen

Erfahrener Benutzer
Sind die Ctrl Commands vorgegeben?
Ctrl-C ist eigentlich Copy
Ctrl-E sendet bei Putty einen Text (Default Putty)

Also mit Putty habe ich keinen Erfolg.
Was ich mache:
1 Ctrl-A
2 Ctrl-B

Ctrl-A im Text Editor und dann Ctrl-C

Zurück nach Putty

3 Ctrl-V (Zwischenablage einfügen)

Jetzt würde ich erwarten, das ich mit Ctrl-E mir den Inhalt anzeigen lassen kann.
Das passiert aber eben nicht

Edit:
USARTmode soll sicher der Filemode sein?!?!?!
 
Zuletzt bearbeitet:

ernieift

Erfahrener Benutzer
Alle Kommandos werden mit einer Meldung quittiert. Die Controlcodes sind Standard nach ASCII (Wiki):

#define SOH 0x01 /* (^A) start of heading */
#define STX 0x02 /* (^B) start of text */
#define ETX 0x03 /* (^C) end of text */
#define EOT 0x04 /* (^D) end of transmission */
#define ENQ 0x05 /* (^E) enquiry */

Eventuell ist Putty das falsche Programm dafür (ist ja für SSH u.ä.). Unter Windows gab es mal Hyperterm. Ich nehme Coolterm. Probiere doch mal mit Arduinos Terminal.

Also im Terminal:
1. CTRL-A, Meldung: "start of heading"
2. CTRL-B, Meldung: "start of text"
3. kopierten Text aus Editor mit CTRL-V einfügen...
4. CTRL-C, Meldung: "end of text"
5. CTRL-D, Meldung: "end of text"

Zur Kontrolle CTRL-E: Der gesamte Source wird aus dem Puffer ins Terminalfenster übertragen...
 

cGiesen

Erfahrener Benutzer
Wie ist das denn mit diesem USARTmode
Ist das nun File ?

Ich habe jetzt drei Terminals ausprobiert. Wenn ich auf File bin kommt nix....

viertes Tool: auch nix
 
Zuletzt bearbeitet:

ernieift

Erfahrener Benutzer
File bedeutet nur, dass PicoC den Source aus dem Puffer nimmt. Den Puffer kannst Du auch im Interactive Modus lesen/schreiben. Es geht aber nur eins. Kommandos aus der gcs ausführen oder den Interpreter laufen lassen. Wobei die gcs Vorrang hat. Wenn der Interpreter aber schon läuft, muss er erst beendet werden. Sonst könntest Du ja den Source ändern während er läuft.
 
FPV1

Banggood

Oben Unten