Hallo
bei mir gibts nur das RP6-Fahrwerk, die Elektronik ist selbst gebaut, basiert auf einem PIC (dsPIC30F4013), programmiert wird in klassischem C, so neumodisches Zeug wie Rost, sorry Rust, kenn ich nur vom Hörensagen..
Gruß
Gerhard
Hallo
bei mir gibts nur das RP6-Fahrwerk, die Elektronik ist selbst gebaut, basiert auf einem PIC (dsPIC30F4013), programmiert wird in klassischem C, so neumodisches Zeug wie Rost, sorry Rust, kenn ich nur vom Hörensagen..
Gruß
Gerhard
Oje, dann kommst du ja gar nicht in den Genuss dieser schönen Hardware/Elektronik des RP6 samt seinen guten C-Bibliotheken! Schade
Ich kaufe gerade auch noch einige RP6 auf Ebay etc, ich würde die gerne mit dem ESP32 fit machen für Programmierkurse für Kinder/Jugendliche. Also: es gibt noch welche
Ja, als Elektroniker war das eigentlich auch mein Ziel, Hardware und Software alles selber zu bauen, auch für den Preis, dass ich da nur ne Lochrasterplatine habe und auch nicht soviel Features, wie da auf der Platine so drauf sind. Da ich aber öfter mal was mit PIC's mache, ist das nicht so dramatisch, auf unterster Ebene zu programmieren, also auch ohne Bibliotheken auskommen zu müssen. Oft haben die ja auch Einschränkungen in dem Sinne, dass die jetzt nicht genau das machen, was ich will. Aber dass du Kurse für Kids machst, finde ich toll. Des ESP32 kenn ich auch nicht. 32-Bit-Prozessor gegen meinen 16-Bitter, wobei ich meist eh nur die 8-Bitter von Microchip verwende. Das bisschen Bit-Schupserei braucht noch keinen 16-Bitter. Für den RP6 werd ich vielleicht ne neue Hardware bauen, und da dann nen anderen 16-Bitter von Microchip verwenden, nen PIC24. Aber auch nur aus Neugierde, und weniger weil es für den Roboter notwendig wäre...
Gruß
Gerhard
Geändert von gunzelg (29.01.2023 um 11:52 Uhr)
Hey super, hier kommt ja richtig Bewegung in die Sache!
Die Idee den RP6 für Programmierkurse zu nutzen finde ich super! Ich fand eben C zu... schwierig? Klar, die RP6Lib nimmt einem schon einiges ab, aber wenn man dann doch mal schauen geht was die Library-Funktionen dahinter so machen bzw. wie die implementiert sind... dann findet man dort schon eher "kryptische" Funktionen. Aber klar, wenn man jemanden zur Seite hat der sich damit auskennt, kann man dann schon gut etwas basteln! Das ist auch eine Motivation für mich um das in Rust zu übertragen. Und eben einiges über Rust zu lernen.
LG Roland
Als 60+ Elektroniker frag ich mich jetzt, welche Bedeutung Rust hat? Bei meinem letzten Job vor der Rente waren in meinem Betrieb drei Programmiersprachen gefragt: C/C++, LabView und Phyton. Rust ist wohl was neueres, und wofür wird das verwendet? Im PC-Bereich oder auch/nur für uC?
Gruß
Gerhard
Hallo Gerhard,
also prinzipiell ist Rust eine sehr moderne Sprache mit vielen High-Level Konstrukten und einem sehr fähigen Paketmanager (cargo) wie man sie aus Python/Java/Javascript kennt, aber gleichzeitig ist Rust hinsichtlich der Performanz vergleichbar mit C/C++. Da es eine kompilierte Sprache ist, braucht es für jegliche Plattformen einfach entsprechende Compiler. Der für AVRs ist als Standard bereits mitinstalliert.
Designt wurde Rust von Mozilla als moderne Sprache für System-Programmierung. Rust basiert auf 2-3 Grundprinzipien:
- einem starken Typsystem, und davon dass sie einen zwingt jegliche Fehler die auftreten könnten bereits im Code handzuhaben. Ein Programm läuft dafür oft direkt ohne jemals groß Probleme zu machen.
- dem Ownership-Prinzip. Zu jeder Variable (Memory-Adresse) darf es nur eine exklusive Referenz geben. Man kann von vielen Programmteilen (oder Threads) von einer Zelle lesen, solange der Compiler garantieren kann dass während dieser Zeit kein Schreibvorgang stattfindet. Was erst mal kompliziert klingt, ist am Schluss beim Programmieren eigentlich recht logisch. Dadurch gibt es keine Memory-Leaks, aber der Compiler ist auch relativ strikt und es kann durchaus dauern bis man Code mal zum kompilieren bringt.
- Dokumentation ist integrierter Bestandteil des Paket- und Buildtools (cargo). Man hat also direkt hübsche (und einheitliche!) Doku für alle Pakete die man in seinem Projekt benutzt. Siehe auch: https://doc.rust-lang.org/std/macro.println.html als Beispiel.
Naja also zusammengefasst kann man sagen, die Zielgruppe ist jeglicher Code bei dem es auf Performance ankommt, aber auch dass der Code stabil läuft. Auf einem AVR wird man aber wohl kaum die Vielfalt an Features ausnutzen können. Ich denke aber dass die modernen Programmierkonzepte es erlauben, den Code übersichtlicher und langfristig wartbarer zu gestalten.
Als Beispiel für den Einsatzzweck von Rust könnte man das wohl prominenteste open-source Projekt anführen: den Linux-Kernel. Gerade vor ein paar Monaten wurde bekanntgegeben, dass in Zukunft mehr und mehr vom Linux Kernel in Rust implementiert werden soll. Macht aus meiner Sicht auch Sinn.
Hilft das soweit? Hier noch ein Link mit ein paar Beispielen zu ein paar Features von Rust.
https://learnxinyminutes.com/docs/rust/
LG Roland
Dank für die Einführung !
Lesezeichen