Forum: Digitale Signalverarbeitung / DSP / Machine Learning scicos als simulink-alternative mit avr


von Michael S. (kyromaster)


Lesenswert?

Hallo,

erst einmal sorry dass ich das in die DSP und yC-Foren gleichzeitig 
schreibe, ich bin mir nicht sicher wo es hingehört ;)
Wir wollen als Hobbyprojekt ein einfaches ABS und ESP für Modellautos 
entwickeln und dafür entweder Matlab oder wenn das nicht geht die 
Open-Source-Alternativen octave und scicos (www.scicos.org) einsetzen, 
um den Regler grafisch zu erstellen und dann zu programmieren. Ansonsten 
muss ich ihn in c coden *gg
Ich habe gesucht aber nichts zu dem Thema gefunden, ist es möglich mit 
diesen Programmen c-Code für einen AVR zu generieren? Am Besten 
eingebaut, sonst müsste man halt Templates für den Codegenerator 
schreiben. Dass keine FPU on Board ist könnte man ja durch 
fixed-point-Mathematik umgehen, bzw denke ich dass das von der Leistung 
her auch mit der FPU-Emulation gehen würde. Wie gesagt, leider habe ich 
nichts dazu gefunden.

vielen Dank schonmal für Eure Hilfe

michi

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Es gibt zu Scilab/Scicos einen Codegenerator
http://www.scilab.org/
"Scilab/Scicos code generator for DSP/micro controller
Using the Scilab/Scicos FLEX Toolbox (now update to the last Scilab 
4.1.2) it is possible to automatically generate code from Scicos 
diagrams to fast prototype digital control systems for micro controller 
and DSP embedded application."
http://www.evidence.eu.com/content/view/175/216/
scheint aber für Microchip-Controler zu sein.

von Weinga-Unity (Gast)


Lesenswert?

Hallo,

man kann ja in SCICOS den Code Generieren (Rechtsklick auf 
Regler-Block->Code-Generation) lassen und bekommt dann (z.B. unter 
WIN32) einige C-Dateien, die dann den Code des Blockes beinhalten. Es 
wäre nun interessant zu versuchen, ein AVR-Main Programm so zu 
schreiben, das den Code für den SCICOS-Block so anspricht, als würde er 
direkt in SCICOS verwendet werden. Dies würde natürlich nur für 
zeitdiskrete Systeme funktionieren. Für kontinuierliche Systeme fehlt 
hier natürlich der entsprechende Solver (Runge-Kutta auf einem AVR?).

Die ideale Lösung wäre natürlich ein eigenes Target zu erstellen, das 
direkt (mit eigenen SCICOS-Blöcken für PWM, ADC, ...) den AVR-Code und 
die HEX-Datei erstellt. Machbar ist es ja anscheinend (siehe FLEX, 
RTAI-Lab und http://scicoshdl.sourceforge.net/), nur habe ich bis jetzt 
noch keine Dokumenation gefunden, wie man sowas macht.

Falls jemand dafür nähere Informationen hat, wäre ich ebenfalls darüber 
dankbar.

mfg Weinga-Unity

von Michael S. (kyromaster)


Lesenswert?

Genau so stell ich mir das auch vor. Die Codeerstellung ist ja sicher 
Template-basiert, die Templates sollte man ja ändern können. Ich denke 
nicht dass "generischer" C-Code, auch wenn er nur die Funktionalität 
beinhaltet, für avr-gcc geeignet ist, da ja u.A. die Datentypen anders 
sind als in "plain" c und man ja eventuell für größere Projekte 
fixed-point floats etc. braucht. Ich werd mich da wohl mal selbst 
schlaumachen...

von Weinga-Unity (Gast)


Lesenswert?

@Michael Stather:
schon irgendwelche Fortschritte gemacht?

mfg Weinga-Unity

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.