Empfehlung für eine (oder zwei) IDE

  • Hallo,
    meine Genossen Mitschüler und ich sind in der Planung für ein Robotik-Projekt. Wir möchten einen Roboter bauen, der einer Linie folgt. Wahlweise mithilfe von Infrarotsensoren und wenn wir sehr gut klarkommen sogar mit einer Kamera und Bildauswertung. (Wegen dieser Option haben wir uns gegen einen Arduino entschieden, was ansonsten evtl. etwas leichter zu machen wäre).
    Der einzige in der Gruppe der gerne Python gelernt hätte bin ich. Daher werden wir in C programmieren. Das hat immerhin den Vorteil, dass wir Lehrer, Eltern und Freunde haben die uns Notfalls bei unterstützen können, anders als bei Python.

    Jetzt fehlen uns noch eine oder zwei passende IDEs. Und da wir beim Programmieren blutige Anfänger sind, kennen wir da noch gar nichts.
    Aber wir haben unsere Wünsche:

    1.[font="Times New Roman"] [/font]a) Ein Interpreter, der auf dem Raspi läuft wäre gut, so dass man schnell Anpassungen vornehmen kann. Das wäre beim Parametrieren am Ende bestimmt eine große Hilfe.
    b) Der Interpreter sollte halbwegs schlank sein, da wir nur einen Rapsberry A+ (700Mhz, 256MB RAM) verwenden können (Grund: Siehe unten).

    2.[font="Times New Roman"] [/font]Ein Compiler, der unser Programm dann zu einem eigenständigen Programm macht. Laut einem unserer Lehrer würde das Programm dadurch deutlich weniger Prozessorleistung benötigen. (Und das wäre wichtig, denn das ganze machen wir für einen Wettbewerb, bei dem nur ein sehr kleiner Akku für den Controller erlaubt ist. Die Motoren werden mit einer Solarzelle betrieben). Dass sich das Programm dann nicht mehr unbedingt genauso verhält, wie im Interpreter hat man uns auch gesagt. Da muss man dann eben gucken.


    3.[font="Times New Roman"] [/font]Es wäre gut, aber nicht Pflicht, wenn man OpenCV Bibliotheken einbinden kann (wegen der Sache mit der Kamera. Das steht aber erstmal nicht im Vordergrund.

    Wenn man Punkt eins und zwei auf verschiedene IDEs verteilt, müsste das natürlich untereinander kompatibel sein.

    Auf unseren PCs läuft Windows, falls wir diese brauchen sollten und ansonsten könnte man natürlich noch Linux installieren

    Das wäre erstmal das, was für mich wichtig erscheint. Ich hoffe, ihr könnt mit meinen Angaben etwas anfangen und könnt uns gute Tipps geben.
    Wenn ihr euch nicht sicher seid, ob ein Interpeter auf unserem Modell gut läuft, sagt es ruhig, wir können das ja dann mal ausprobieren.

    Danke schonmal.

    Einmal editiert, zuletzt von Wonnegrausen (26. Februar 2017 um 02:28)

  • Zu 1:
    a) Nahezu alle Plattform unabhängigen (und natürlich speziell für Linux) Programmiersprachen laufen auf dem Pi - da es sich um ein vollwertiges Linux System handelt.
    b) Das ist nicht direkt vom Interpreter abhängig sondern eher von Art der Umsetzung. Man kann auch eher kleine Dinge aufplüstern und ausbremsen.

    Zu 2.:
    Compiler und Interpreter? :-/ Ich glaub da solltest du dich noch mal drüber schlau lesen, das passt nicht zusammen ;)
    Weniger Prozessorleistung ist auch abhängig von 1b.
    Ob ein Pi A+ für euer Vorhaben tatsächlich geeignet wäre würde ich allerdings anhand der Anforderung anzweifeln... Selbst ein winziger PiZero verballert mehr Strom als ein Mikrocontroller, der zum "Linie folgen" reichen würde. Ein PiZero verballert übrigens weniger als ein A+, den man auch nicht unbedingt auf 1GHz laufen lassen müsste.


    Wie lange hast du/ihr denn für das Projekt Zeit?

  • Hallo,

    Zitat

    Ein Interpreter, der auf dem Raspi läuft wäre gut, so dass man schnell Anpassungen vornehmen kann.

    C ist keine Interpretersprache, sondern eine Compilersprache. Vergiss den Interpreter, der kommt z.B. bei Python zum Einsatz. Ihr müsst also immer kompilieren und linken, ein Ansatz hier wäre Crosscompiling auf einem Win PC.


    Zitat

    Ein Compiler, der unser Programm dann zu einer Eigenständig macht. Laut einem unserer Lehrer würde das Programm dadurch deutlich weniger Prozessorleistung benötigen ... Dass sich das Programm dann nicht mehr unbedingt genauso verhält, wie im Interpreter hat man uns auch gesagt. Da muss man dann eben gucken.

    Sorry, dass ist Bullshit. Ich weiß ja nicht, was euer Lehrer schon programmiert hat, aber C ist und bleibt eine Compilersprache. Nix interpreter, siehe oben. Ja, Compilersprachen sind i.d.R. schneller als Interpretierte, aber eine Sprache kann ja nicht beides sein... Ich denke, du hast da was verwechstelt. Mach dich zu den Unterschieden doch mal schlau :)

    EDIT: Cool, "Schimpfwörter" werden zensiert! Original stand da Bullsh1t...

    meigrafd: OpenCV auf einem Arduino oder was :lol:

    LG

  • Servus,


    ... für ein Robotik-Projekt. ... der einer Linie folgt. ... Infrarotsensoren ... mit einer Kamera und Bildauswertung.


    Dazu vielleicht folgendes:
    prinzipiell ist das mit der Bildauswertung möglich ...
    Allerdings hat der Raspi da eine unschöne Eigenschaft: durch das Multitasking OS auf dem Raspi ist es praktisch unmöglich Echtzeit-Anwendungen zu implementieren.
    Hier ist immer mit gewissen Latenzzeiten zu rechnen, die u.a. auch von der Systemleistung und den zur Verfügung stehenden Resourcen abhängig sind.
    Für die meisten Anwendungen spielt das keine große Rollem aber bei zeitkritischen Funktionen, wie z.B. der Steuerung von (Schritt-)Motoren könnte es eine Überlegung wert sein, diese Teilaufgaben mit Mikrocontrollern zu realisieren.
    Wie auch meigrafd schon schrieb, ist ein nicht unerheblicher Faktor der Stromverbrauch des gesamten Systems im Endaufbau, weil davon abhängig wieder die Akkus dimensioniert werden müssen, die letztendlich wieder den größten Anteil beim Gesamtgewicht spielen ( und damit wieder Einflus auf die Akku-Kapazität haben).
    Wenn es um den Pi geht, habt ihr da ja die Wahl zwischen verschiedenen Modellen ... wobei mein Favorit bei solchen Anwendungen der Zero wäre, der sich dann aber fast ausschliesslich mit der Kamera beschäftigt und alle andere Funktionen an mehr oder weniger autonome Subsysteme delegiert ( z.B. -> so was hier <- ).

    An IDEs fallen mir ad hoc -> GEANY <- und -> Code::Blocks <- ein ...
    Welche ihr da verwendet ist letztenendes Geschmackssache ...


    ...
    1. ...Ein Interpreter, ...


    Das wird schwierig ... mir ist jedenfalls kein C-Interpreter bekannt, der jetzt auch auf dem Raspi läuft.


    ...
    2. ...Ein Compiler, ...


    Das ist der "normale" Weg bei C: Source -> Compiler -> Linker -> ausführbares Programm.


    ...
    3.... [b]OpenCV

    Bibliotheken einbinden ...


    geht definitiv und hat auch nix mit der IDE zu tun ...


    ... verschiedene IDEs verteilt, müsste das natürlich untereinander kompatibel sein.


    das wäre Unsinn ... klar kann man Projekt-Dateien untereinander austauschen ... aber wozu soll das gut sein?
    Ausserdem verbirgt sich da wieder eine mögliche Fehlerquelle ...


    ... Auf unseren PCs läuft Windows, ...


    braucht kein Mensch :fies:
    Nein, ernsthaft, mit Linux wärt ihr imho besser bedient, weil da schon mal die Problematik der unterschiedlichen Zeilen-Umbrüche wegfällt.

    //EDIT:


    Sorry, dass ist *****. Ich weiß ja nicht, ...
    EDIT: Cool, "Schimpfwörter" werden zensiert! Original stand da Bullsh1t...


    Kann es sein, dass unser TO mit "Interpreter" evtl. "symbolischen Debugger" meint?
    Da würde das meiste zutreffen ... und der verhält sich ja "irgendwie" wie ein Interpreter ...
    In diesem Fall ... ja, ist möglich, ist aber ebenfalls komplett unabhängig von der IDE ...
    btw: Autozensur ... nicht gewusst ... was meinst Du, warum ich so viele Sternchen habe :lol:

    cu,
    -ds-

  • [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]> Und da wir beim Programmieren blutige [/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Anfänger [/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]sind[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Dann lasst besser die Finger von C. Das ist nicht wirklich Anfaengertauglich.[/font]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]> dass wir Lehrer, Eltern und Freunde haben die uns Notfalls bei unterstützen können[/font][/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Und wieviel verstehen Eure Unterstuetzer wirklich von C, wenn ihr hier solche Fragen stellt?[/font][/font]


  • Dann lasst besser die Finger von C. Das ist nicht wirklich Anfaengertauglich.
    ...


    das würde ich so nicht unterschreiben ...
    C++ mag für einen Einsteiger ziemlich nebulös sein, mit all den Klassen und Vererbungen und haste nicht gesehn ... da hab' ich bis heute nicht alles verstanden.
    Den Vorteil mit C einzusteigen sehe ich eindeutig darin, dass man praktisch zur Disziplin gezwungen wird.
    Je laxer die Sprache, desto chaotischer später der Code ... ist zumindest meine Erfahrung.
    Zudem steht die Sprache hier gar nicht zur Disposition ... das artet bloss wieder in einer mehr oder weniger sinnlosen Diskussion aus, die den Fragesteller lediglich verwirrt statt ihm zu nutzen.

    cu,
    -ds-

  • Hallo Wonnegrausen,

    herzlich Willkommen in unserem Forum!


    Wieviel Zeit habt Ihr denn überhaupt? Wann ist für den Wettbewerb der späteste Abgabetermin?

    Denn wenn Ihr allesamt noch nicht programmieren könnt, keine Linux-Erfahrung habt und niemand in Eurem Umfeld zu sein scheint, den Ihr bei Problemen befragen könnt, dann ist jeder Schritt, den Ihr gehen müsst, in seinem zeitlichen Umfang nicht planbar.


    Ich würde das Minimum ansetzen, das für die Aufgabe erforderlich ist.
    Eine Kamera mit Bildauswertung setzt einiges voraus. Ein Raspberry Pi ist nicht echtzeitfähig. Das heißt, mal habt Ihr Daten schneller, mal langsamer zur Verfügung. Mal "sieht" der Raspberry Pi die Linie, dann verliert er sie aus dem Blickfeld.
    Eine Bildauswertung ist auch nicht mal so am Wochenende geschrieben. Erst recht nicht, wenn keine Programmiererfahrung vorhanden ist.

    Vor Jahren hatte ich mal ein Schulprojekt betreut, dass genau daran gescheitert ist. Bei mir lief die Software schon in vollem Umfang - und die Gruppe diskutierte noch, welche Programmiersprache, welche IDE, welches Framework, welche Bibliotheken, ... dann war die Zeit rum.


    Ein Minimum besteht für mich in Hell-Dunkel-Entscheidungen, um einer Linie zu folgen. Dazu brauchst Du lediglich einen Phototransistopr oder eine Photodiode. Die ist wesentlich schneller abgefragt als es über eine Kamera, einen Stream und einer Bildverarbeitung möglich wäre. Letzteres würde den Raspberry Pi sehr auslasten. Und eine Entscheidung, ob das Gefährt jetzt mehr links oder mehr rechts fahren muss, um auf der Linie zu bleiben, käme dann definitiv zu spät.

    Dazu braucht Ihr noch einen Distanz-Sensor / Ultraschall-Sensor, um z.B. zwischen Weg und Abgrund / Brücke und Abgrund unterscheiden zu können, um sicher auf dem Weg zu bleiben. Und weiter für Fahrtrichtung und seitlich vorne, um nicht gegen eine Wand odr ein anderes Hindernis zu knallen. Wenn das Gefährt auch rückwärts fahren soll, dann weitere Sensoren nach hinten und seitlich hinten.

    Und ein paar LEDs zur Beleuchtung und zur Richtungsanzeige wären auch ganz lustig.

    Was ich auch mal gebastelt habe, ist ein Servo mit zwei aufgestecktem Ultraschallsensoren. Der Servo hat sich um 180 ° gedreht - die Ultraschallsensoren haben ionnerhalb von etwas über einer Sekunde über 360 ° gradgenau die Abstände zu Hindernissen ermittelt und auf diese Weise Hindernisse und deren Abstände lokalisiert.

    Und so allmählich stellt sich dann uch die Frage nach der Anzahl der digitalen Ein- und Ausgänge, die der Raspberry zur Verfügung stellen muss. Braucht Ihr auch Analog-Eingänge? Wenn ja, dann geht dies nur mit zusätzlicher Hardware (sog. A/D-Wandler).


    Die Entscheidung zur Programmiersprache C halte ich für gut, da dies die einzige halbwegs schnell erlernbare Programmiersprache ist, mit der so schnelle Anwendungen geschrieben werden können, die für Euren Zweck erforderlich sind. Aber da müssen sich mindestens zwei oder drei von Euch mehrere Stunden am Tag reinknieen, um nach vielleicht 14 Tagen soviel von der Programmiersprache C zu erlernen, zu verstehen und anwenden zu können, dass es für die Umsetzung der Projektidee ausreicht. Und Zuckerschlecken ist das dann immer noch nicht.


    Als IDE würde ich Euch - bei der Programmierung in C - ebenfalls Geany empfehlen. Dort ist alles vorhanden, was man braucht. Ein Knopfdruck und das ausführbare Programm startet. Geany ist nicht so überfrachtet wie andere IDEs. Geany ist für die Programmierung in C komplett konfiguriert - Ihr braucht da also nichts selber einzustellen.

    Auch hier möchte ich eine Alternative ins Spiel bringen: TextAdapt. Lässt sich ebenso einfach bedienen und verfügt über alle sinnvollen und für die Programmierung erforderlichen Features.

    Eine andere Programmiersprache, mit der Ihr schneller zu einer Anwendung gelangen könntet, ist beispielsweise Lazarus / FreePascal. Es gibt dazu ein Forum, bei dem mehr als die Hälfte einen Raspberry Pi besitzt und - wenn Ihr Euch zu dieser Programmiersprache durchringt - ebenso gern helfen werden wie in diesem Forum. Hier entfällt dann auch das Problem der IDE und der Bibliothek. Das gibt's mit Lazarus "on-the-top".


    Es gibt zwar C-Interpreter - aber die werdet Ihr Euch nicht leisten wollen. Und ein Interpreter für C ist alles andere als üblich. Und bietet für Euer Projekt keinen Vorteil.


    Ansonsten gilt es, möglichst wenig Gewicht zu verbauen, damit die überschaubaren Energie-Ressourcen länger reichen. Wenn der Akku zum Betrieb des "Controllers" der Knackpunkt ist, dann bleibt Euch eigentlich nur der Raspberry Pi Zero übrig. Dieses Modell ist aber sehr schwer zu bekommen, weil nicht immer verfügbar. Als Einstieg bietet sich dann ein RPi B+ oder auch A+ an (falls es diese Modelle überhaupt noch gibt). Die Modelle 2B und 3B dürften an ihrem Stromhunger scheitern. Das kann man aber ausrechnen, wenn der einzusetzende Akku bekannt ist.


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (25. Februar 2017 um 23:56)

  • Vielen Dank euch Allen schonmal.

    Ich habe erst morgen wieder Zeit mich mit der Thematik Interpreter / Compiler auseinander zu setzen. Mir wurde es so erklärt, es sei möglich den Code in C mit einem Interpreter ausführen zu lassen und dabei live Anpassungen im Programm zu machen um zu gucken was passiert. Und später könne man dann kompilieren, so dass das Programm weniger Prozessorleistung und damit weniger Energie verbraucht.

    Zitat

    Ob ein Pi A+ für euer Vorhaben tatsächlich geeignet wäre würde ich allerdings anhand der Anforderung anzweifeln...


    Was den Energieverbrauch betrifft, haben wir mit Messdaten gerechnet, die auf das Abspielen eines HD-Videos bezogen waren. Ergebnis war, dass wir gerade so hinkommen müssten. Der Controller muss mit einem 100mAh 20 min. laufen. Da hätten wir noch ca. 10min. Reserve.

    Zitat

    Wie lange hast du/ihr denn für das Projekt Zeit?

    19. Mai ist der Wettbewerb.

    Zitat


    Allerdings hat der Raspi da eine unschöne Eigenschaft: durch das Multitasking OS auf dem Raspi ist es praktisch unmöglich Echtzeit-Anwendungen zu implementieren.
    Hier ist immer mit gewissen Latenzzeiten zu rechnen, die u.a. auch von der Systemleistung und den zur Verfügung stehenden Resourcen abhängig sind.
    Für die meisten Anwendungen spielt das keine große Rollem aber bei zeitkritischen Funktionen, wie z.B. der Steuerung von (Schritt-)Motoren könnte es eine Überlegung wert sein, diese Teilaufgaben mit Mikrocontrollern zu realisieren.

    Ok, damit werden wir uns wohl erstmal auseinandersetzen müssen. Allerdings ist ein Linienfolger mit Raspberry ja eigentlich ein alter Hut. Das merkt man spätestens, wenn man „Raspberry + line follower“ googled. Es gibt auch schöne Projekte mit Kamera. Auffällig aber, dass tatsächlich viele davon mit einem Arduino kombiniert sind. Das können wir uns aus Energietechnischen Gründen aber nicht leisten. Letztlich müssen wir wahrscheinlich allein aus mangelnder Kompetenz auf die Kamera verzichten.

    Wir würden keine Schrittmotoren verwenden, sondern ganz normale Getriebemotoren und Motortreiber, die wir mit PWM ansteuern.

    Zitat


    Wie auch meigrafd schon schrieb, ist ein nicht unerheblicher Faktor der Stromverbrauch des gesamten Systems im Endaufbau, weil davon abhängig wieder die Akkus dimensioniert werden müssen, die letztendlich wieder den größten Anteil beim Gesamtgewicht spielen ( und damit wieder Einflus auf die Akku-Kapazität haben).


    Also der 100mAh-Akku den das Reglement für den Controller vorschreibt ist winzig und die Motoren sollen wie gesagt mit Solarstrom laufen (Bei schlechtem Wetter läuft der ganze Wettbewerb anders, aber das gehört nicht hierher.)

    Zitat

    An IDEs fallen mir ad hoc -> GEANY <- und -> Code::Blocks <- ein ...
    Welche ihr da verwendet ist letztenendes Geschmackssache ...


    Werde ich mir ansehen.

    Zitat


    Dann lasst besser die Finger von C. Das ist nicht wirklich Anfaengertauglich.

    Diese Diskussion möchte ich mit meinen Teamkollegen nicht nochmal führen.
    Automatisch zusammengefügt:
    Hallo Andreas. Sorry, dass ich deinen Post übersehen habe, aber einige deiner Punkte habe ich ja zufällig eh gerade beantwortet.

    Die ganze sensorische Minimalusstattung, die für diesen Wettbewerb nötig ist, ist aus Erfahrung bekannt (findet jährlich statt). Wir sind dort nur die ersten Kandidaten, die es mit einem Raspberry machen wollen. Ich glaube mit Analogen Infrarotsensoren bekommt man die Linienerkennung einfach geschmeidiger hin, als mit Fototransistoren. Für die Analogeingeänge gucken wir mal ob wir I2C oder SPI nehmen.

    Von C ist leider kein Abrücken mehr. TextAdapt gucken wir uns dann auch mal an.

    Kennt jemand denn solchen einen C-Interpreter für Linux beim Namen? Dann kann man ja mal gucken ob man da irgendwie dran kommt.

    Einmal editiert, zuletzt von Wonnegrausen (26. Februar 2017 um 02:26)

  • Hallo Wonnegrausen,

    um nochmal auf die Thematik Interpreter für C zurückzukommen. Es gibt da Experimantal-Interporeter, z.B. der nach dem C90-Standard arbeitende Ch. Damit würdest Du in C arbeiten, wie es vor knapp 30 Jahren üblich war. Das heißt, die aktuellen C-Sprachstandards dieses Jahrzehnts könntet Ihr als Informationsquelle nicht nutzen. Ich habe mich beruflich mal mit dem aktuellen und dem zukünftigen C-Standard beschäftigt. Da sind Sachen zum Abgewöhnen dabei - bei denen selbst gestandenen C-Programmierer nach dem Sinn und der Anwendungsmöglichkeit fragen.

    Ansonsten habe ich mal von ebenfalls experimentellen C-Interpretern gehört, die in Konzernen verwendet werden. Da dürfte ein (legaler) Zugriff nicht möglich sein.

    Und wenn Du das alles nicht glaubst, dann hilft es nur selber zu suchen.

    Da wirst Du dann auf TCC stoßen. Ich bezweifle aber schon jetzt, dass Ihr damit weiter kommt. Ihr bewegt Euch damit abseits des Standards - Hilfe speziell dazu dürfte hier im Forum schwer zu erhalten sein.

    Dann gibt es noch cint und PicoC, ccons, cling, CompCert.

    @Dreamhader: Hast Du von diesen Sachen jemals etwas gehört? Ich kann mit an Ch ganz dunkel erinnern.


    Allen gemein ist diesen Programmen eine Lizenz, die es Euch schwer machen dürfte, diese C-Interpreter zusammen mit dem restlichen Code weitergeben zu dürfen. Aber da müsstet Ihr Euch mit den einzelnen Lizenzmodellen beschäftigen. Eine weitere Baustelle, die Zeit frisst und Euch keinen Schritt im Gesamtprojekt weiterbringt.

    Weitere Frage sind dann auch,

    • ob diese C-Interpreter die Einbindung von GPIO-Libraries erlauben. Ohne einer solchen Library ist Euer Vorhaben schlichtweg unmöglich. Auch das müsstet Ihr vorab versuchen herauszufinden.
    • ob es auch ARM-kompatible Versionen dieser C-Interpreter gibt. Denn diese C-Interpreter laufen meist nur auf Intel- oder AMD-Prozessoren. Wenn es keinen Quellcode dieser C-Interpreter gibt, dann stellt dieses Unterthema eine Sackgasse dar.


    Wie viele Leute seid Ihr denn im Team?



    Ich habe erst morgen wieder Zeit mich mit der Thematik Interpreter / Compiler auseinander zu setzen. Mir wurde es so erklärt, es sei möglich den Code in C mit einem Interpreter ausführen zu lassen und dabei live Anpassungen im Programm zu machen um zu gucken was passiert. Und später könne man dann kompilieren, so dass das Programm weniger Prozessorleistung und damit weniger Energie verbraucht.


    Der Sinn erschließt sich mir (Programmiererfahrung seit nunmehr 37 Jahren) nicht wirklich.


    Was den Energieverbrauch betrifft, haben wir mit Messdaten gerechnet, die auf das Abspielen eines HD-Videos bezogen waren. Ergebnis war, dass wir gerade so hinkommen müssten. Der Controller muss mit einem 100mAh 20 min. laufen. Da hätten wir noch ca. 10min. Reserve.


    Auch das bezweifle ich. Ich habe mal einen 4000 mAh-Powerblock eingesetzt. Voll aufgeladen brachte er es auf rund 8 Stunden. Angeschlossen war ein RPi B+ mit Kamera, die nur gelegentlich was gemacht hat. In der Zeit habe ich eine Anwendung entwickelt. Teile 8 Stunden durch 40. Das wird 'ne ganz knappe Sache.


    19. Mai ist der Wettbewerb.


    Der März dürfte drauf gehen, sich mit der Programmiersprache C vertraut zu machen und erste Schritte zu gehen. Je nach Eurer Elektronik-Erfahrung müsst Ihr auch Zeit für die Elektronik-Schaltung berücksichtigen. Entwurf, Prototyp - bis dahin muss dann auch der Erstentwurf der Software soweit laufen, um mit der Elektronik zusammen zu arbeiten. Dann die eigentliche Hardware.
    Das ist sportlich, wenn man unterstellen kann, dass der gesamte Software-Teil für Euch Neuland ist und Ihr auf "Unterstützer" zurückgreifen könnt, deren Wissen aus meiner Sicht leicht absurd ist (wegen unbedingt C-Interpreter etc.).


    Es gibt auch schöne Projekte mit Kamera. Auffällig aber, dass tatsächlich viele davon mit einem Arduino kombiniert sind. Das können wir uns aus Energietechnischen Gründen aber nicht leisten. Letztlich müssen wir wahrscheinlich allein aus mangelnder Kompetenz auf die Kamera verzichten.


    Wie ich schon geschrieben habe, ist eine Kamera in alleiniger Verbindung mit dem Raspberry Pi für die Realisierung des Gesamtprojekts eher hinderlich.
    - Zu viele offene Baustellen für Euch, die Ihr ohne fremde Hilfe in der zur Verfügung stehenden Zeit kaum bewältigen könnt
    - Energie-Thematik



    Also der 100mAh-Akku den das Reglement für den Controller vorschreibt ist winzig und die Motoren sollen wie gesagt mit Solarstrom laufen (Bei schlechtem Wetter läuft der ganze Wettbewerb anders, aber das gehört nicht hierher.)


    Deine Beschreibung hatte ich auch so verstanden. Ist es denn erlaubt, von der Solarzelle etwas für den Betrieb des RPi abzuzweigen? Ich bin mir sicher, dass es arg eng wird, den 100 mAh-Akku alleine zu nutzen.


    Hallo Andreas. Sorry, dass ich deinen Post übersehen habe, aber einige deiner Punkte habe ich ja zufällig eh gerade beantwortet.

    Die ganze sensorische Minimalusstattung, die für diesen Wettbewerb nötig ist, ist aus Erfahrung bekannt (findet jährlich statt). Wir sind dort nur die ersten Kandidaten, die es mit einem Raspberry machen wollen. Ich glaube mit Analogen Infrarotsensoren bekommt man die Linienerkennung einfach geschmeidiger hin, als mit Fototransistoren. Für die Analogeingeänge gucken wir mal ob wir I2C oder SPI nehmen.


    Habt Ihr da schon Erfahrungen gesammelt? Da wäre ich skeptisch. Ich lasse mich da aber gern eines Besseren belehren.


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (26. Februar 2017 um 09:19)

  • Wie gesagt würde es für euch viel mehr Sinn machen statt eines A+ einen PiZero einzusetzen - der begnügt sich nicht nur mit weitaus weniger Strom obwohl er 300MHz mehr Leistung hat, sondern ist auch weitaus kleiner und leichter.

    Wenn das Projekt bis zum 19. Mai fertig und erprobt sein muss solltet ihr auf jeden Fall eine Umsetzung wählen die kein OpenCV beinhaltet und nicht allzu viele Sensoren umfasst ;) Einfach nur einer Linie folgen, vielleicht noch einem Hindernis ausweichen und Linie wiederfinden, aber mehr braucht ihr eigentlich nicht.

    Solche Spielerein wie ne Kamera usw frisst halt auch alles Strom und gerade das solltet ihr auf gar keinen Fall unterschätzen, denn ein HD Video abspielen ist etwas völlig anderes als einen Videostream der RaspiCam in Echtzeit zu analisieren. Beim HD Video wird nur der SoC belastet, bei OpenCV kommt aber noch das strom hungrige CamDevice dazu, was noch mal zusätzlich soviel frisst wie der SoC selbst.

    Einfach nur einer Linie zu folgen und ggf noch einem Hindernis auszuweichen, kann man aber auch mit einem Mikrocontroller umsetzen!


  • Allen gemein ist diesen Programmen eine Lizenz, die es Euch schwer machen dürfte, diese C-Interpreter zusammen mit dem restlichen Code weitergeben zu dürfen.

    Wie kommst Du denn darauf? Ich habe jetzt nur TCC, CINT und cling angeschaut, die sind aber alle unter ziemlich freien Lizenzen verfügbar. Abgesehen davon, soll der Interpreter doch eh nur als Entwicklungswerkzeug dienen, der fertige Code soll ja dann compiliert werden.

    Wenn ich einen C-Interpreter bräuchte, würde ich mir vermutlich als erstes cling ansehen - die CERN-Softwareleute wissen erfahrungsgemäß relativ genau, was sie tun. Prinzipiell teile ich aber auch die Skepsis gegenüber dem Interpreteransatz. Was Ihr da ggfs. an Zeit spart, müsst Ihr für das doppelte Einarbeiten vermutlich dicke wieder investieren - von Inkompatibilitäten zwischen Interpreter und Compiler, die mit ziemlicher Sicherheit bestehen werden und die Euch zusätzlich Zeit kosten, ganz abgesehen.

  • Servus Andreas,


    ... @Dreamhader: Hast Du von diesen Sachen jemals etwas gehört? Ich kann mit an Ch ganz dunkel erinnern.


    sorry ... ich hab' da noch irgendwas im Hinterkopf, dass mal jemand während meiner IT-Ausbildung, das war zu Zeiten von MS-/PC-DOS, mit irgendeinem C-Interpreter daherkam. Ernsthaft eingesetzt habe ich das Teil nie ...

    Allerdings kann man z.B. auch im gdb Variablen-Inhalte ändern. Neben anfangs "debug.com" kamen dann später jeweils die mit dem Compiler mitgelieferten Debugger ziemlich oft und intensiv zum Einsatz ...

    cu,
    -ds-

  • Guten Morgen.

    - Was den C-Interpreter betrifft, wurden wir jetzt wohl davor bewahrt in die Irre zu laufen. Das Thema ist für mich abgehakt.

    - Wir sind drei Leute im Team.

    - Wegen dem Akku: Es steht ehrlich gesagt nicht ausdrücklich im Regelwerk, dass man den Akku nicht mit dem Solarpanel nachladen darf. Wir sind wohl auch die ersten in dem Wettbewerb, die mit dem Stromverbrauch am oder hinter dem Limit arbeiten (Grund dafür, s.unten) Unser Plan ist es ein Nachladen hardwaretechnisch erstmal vorzusehen und wenn wir es wirklich brauchen, lassen wir es drauf ankommen.

    - Warum wir uns gegen Pi-Zero entschieden hatten, weiß ich jetzt leider gar nicht mehr. Da muss ich nochmal meine Kollegen fragen. Evtl. schwenken wir noch um, der Zero kostet ja nicht viel.

    - Ja man kann die Linienverfolgung ohne Kamera auch mit einem Microcontroller umsetzen. Deshalb nehmen ja sonst alle einen Arduino. Unsere Wahl fiel auf den Raspi, weil der uns mehr interessiert und wir so für spätere private Projekte was lernen können und wegen der Option mit Linienverfolgung per Bildverarbeitung. Letztere ist aber hinten angestellt, bis wir eine funktionierende Konfiguration mit IR-Sensoren am laufen haben (respektive Fototransistoren, da machen wir uns auch nochmal schlau).

    Ansosnten habe ich jetzt drei relevante Empfehlungen für IDE und C: Geany, Code::Blocks und TextAdapt.

    Fällt noch jemandem was ein? Für weitere Vorschläge gilt jetzt nicht mehr, dass er flüssig auf dem A+ laufen muss, da wir ohne einen Interpreter den Code ja genauso gut auf unseren Laptops schreiben können. Das Programm ist dann per VNC schnell rüberkopiert.

    Einmal editiert, zuletzt von Wonnegrausen (26. Februar 2017 um 11:49)


  • Das Programm ist dann per VNC schnell rüberkopiert.

    Ähm, nein :fies:

    VNC setzt eine grafische Umgebung voraus, die ihr aber nicht haben solltet da diese permanent viel zu viel Ressourcen (RAM+CPU) verballert. Ihr solltet also ein möglichst schlankes OS installieren ohne Klimbim einer Desktopumgebung, wie zum Beispiel Raspbian Lite, es gibt aber noch etliche andere die evtl. besser geeignet wären wie zB ArchLinux usw.

    Übertragt die Dateien entweder via ssh bzw sftp (nicht ftps!) oder wenns sein muss via cifs also Samba.
    Siehe dazu auch FAQ => Welche SSH Clients gibt es?

  • Zitat


    VNC setzt eine grafische Umgebung voraus, die ihr aber nicht haben solltet da diese permanent viel zu viel Ressourcen (RAM+CPU) verballert. Ihr solltet also ein möglichst schlankes OS installieren ohne Klimbim einer Desktopumgebung, wie zum Beispiel Raspbian Lite, es gibt aber noch etliche andere die evtl. besser geeignet wären wie zB ArchLinux usw.

    Ich habe hier (ganz unten auf der Seite) gelesen, dass der VNC-Server die grafische Umgebung im RAM simulieren kann, ohne dass sie tatsächlich "so richtig" läuft. Habe das auch schon ausprobiert. Man bekommt dann so eine verkleinerte Version des Desktops von PIXEL. Dazu muss es ja aber irgendwie schon am laufen sein und entsprechend Ressourcen verbrauchen, oder nicht?

    Es spricht ja nichts dagegen erstmal mit PIXEL zu arbeiten und am Ende Raspbian Lite zu installieren? Bzw. die grafische Umgebung dann ganz einfach zu deaktivieren, das ist dann doch quasi ein Raspbian Lite, oder?

    Vielleicht geht das kopieren ja aber mit ssh ohnehin genauso schnell, ich habe das nur noch nicht gemacht.

    Einmal editiert, zuletzt von Wonnegrausen (26. Februar 2017 um 12:58)

  • Naja ... was das Aufsetzen des Systems selbst betrifft, kommt es darauf an, wie die Aufgaben verteilt sind.
    Ich für meinen Teil verzichte grötenteils auf eine IDE. IN den meisten Fällen reicht mir der Soucecode, den ich per nfs-share auf einem Ubuntu-Laptop editiere und ein makefile dazu, das ich in einer ssh-session direkt auf dem Raspi aufrufe.
    Von der Compiler-Geschwindigkeit reicht mir das allemal ... ich denke nicht, dass Euer Vorhaben so komplex wird, dass ihr da tatsächlich einen Crosscompiler nutzen müsst (was wiederum Installations- und Setup-Aufwand benötigt und zudem eine weitere, mögliche Fehlerquelle darstellt).
    Ob ihr dann noch eine Versions-Verwaltung benötigt, hängt wiederum von der Aufgaben-Verteilung ab. Ich z.B. habe meine nfs-shares so wie sie sind auf github eingepflegt und aktualisiere bei Änderungen das Repo dort.
    Auf die grafische Oberfläche würde ich ebenfalls verzichten. Inwieweit sich Jessie mit Pixel aber deaktiviertem Desktop genau so verhält, wie Jessie Lite, vermag ich allerdings nicht zu sagen ...
    Im Prinzip würde wohl ein simpler ftp- und ssh-Server reichen, der die gesamte Entwicklungs-Umgebung (gcc, gdb, ...) zur Verfügung stellt und evtl. noch ein cvs oder ähnlich beinhaltet.
    Auf Verschlüsselung könnt ihr imho verzichten, wenn ihr Euch eh nur im eigenen Netz bewegt - das kostet wieder Rechenleistung und bringt u.U. andere Probleme mit sich.
    Also frei nach dem Motto: so einfach wie möglich und nur so komplex wie unbedingt nötig ...

    cu,
    -ds-

  • Es tut mir leid, dass ich jetzt nicht recherchiert habe, wie das mit einem ssh- oder ftp Server funktionieren könnte. Ich hole das nach wenn es sich unbedingt lohnt, muss aber bereits jetzt ein bisschchen darauf achten mir meine Zeit einzuteilen.

    Nach den bisherigen Erkenntnissen hier wüsste ich gerne ob folgendes möglich ist:

    1. Einen leicht zu bedienenenden Editor auf dem Laptop zu verwenden, mit einer grafischen Oberfläche.
    2. Den Sourcecode dann mit einem Compiler auf dem Raspi kompilieren.

    Dadurch möchte ich
    a) Ein OS für den Raspi ohne Grafik verwenden.
    b) Crosscompiling vermeiden
    c) Das Programmieren und das Austauschen unter meinen Teamkollegen jeweils unkompliziert halten.

    Wenn das geht, wüsste ich noch gerne noch wie und womit. Mas müsste also jeweils auf dem Laptop und auf dem Raspi vorhanden sein?

    Anmerkung dazu noch: Wir haben eine Wifi-AdHoc-Verbindung zum Raspi hinbekommen. Die würden wir ganz gerne nutzen. Alternativ könnte man noch irgendwo einen Wlan Router auftreiben (die in der Schule dürfen wir nicht nutzen) oder schlimmstenfalls einen Accespoint auf dem Raspi einrichten (kostet eben Zeit).

    Einmal editiert, zuletzt von Wonnegrausen (26. Februar 2017 um 14:52)

  • Hi,


    ... muss aber bereits jetzt ein bisschchen darauf achten mir meine Zeit einzuteilen.


    das sehe ich genau so, deshalb ja der HInweis mit nfs und ssh



    ...
    1. Einen leicht zu bedienenenden Editor auf dem Laptop zu verwenden, mit einer grafischen Oberfläche.


    ich nutze z.B. gvim. Unter Linux ist es ziemlich Banane, welchen Editor ihr nutzt ...
    Unter Windows fällt mir da jetzt nur UltraEdit ein ...


    ...
    3. Den Sourcecode dann mit einem Compiler auf dem Raspi kompilieren.


    da braucht ihr nur den gcc mit z.B. der -> pigpio Library <- für GPIO Zugriffe ...
    Ich schwöre auf die, andere mögen es anders sehen ...
    Der gcc dürfte eh komplett dabei sein, die Lib müsst ihr evtl. nachinstallieren.
    Auf dem Raspi muss dann ein ssh-Server laufen. Der ist i.d.R. schon installiert, unter PIXEL afaik aber deaktiviert und muss entsprechend aktiviert werden. Bei Jessie Lite ist er imho aktiv und sofort nutzbar ...


    a) Ein OS für den Raspi ohne Grafik verwenden.


    Da bietet sich imho Jessie Lite an ...


    b) Crosscompiling vermeiden


    s.o.


    c) Das Programmieren und das Austauschen unter meinen Teamkollegen jeweils unkompliziert halten.


    wie gesagt dürfte da ein simpler nfs-share für Euch ausreichen. Wenn einer die Programmierung, einer das Testen und einer die Doku übernimmt, kommt ihr Euch gegenseitig nicht ins Gehege und braucht nur diesen einen share.
    Ein nfs-Kernel-Server ist in 5 Minuten installiert und eingerichtet.
    Das Ganze läuft bei einem Linux-Laptop dann z.B. mit -> autofs <- ... unter Windows braucht ihr da einen NFS-Client ... aber da bin ich raus, das ist schon viel zu lange her ...
    Für Autofs unter Linux sind ebenfalls ca. 5 Minuten Installations-Aufwand nötig.


    Wenn das geht, wüsste ich noch gerne noch wie und womit. Mas müsste also jeweils auf dem Laptop und auf dem Raspi vorhanden sein?


    s.o.



    ...
    Anmerkung dazu noch: Wir haben eine Wifi-AdHoc-Verbindung zum Raspi hinbekommen. Die würden wir ganz gerne nutzen.

    Nutzt, wenn irgend möglich, eine LAN-Verbindung ...
    Vielleicht könnt ihr Euche irgendwo einen switch ausleihen ... WLAN würde ich nur nutzen, wenn es keine andere Möglichkeit gibt oder ihr einen Zero einsetzt.

    //EDIT: stimmt ... wie Manul im nächsten Post schreibt: ich würde ein repo auf github o.ä. anlegen. Selbst cvs oder so installieren braucht wieder Zeit zum Einlesen, einrichten und ggf. anpassen und ist wieder Zusatzaufwand und mögliche Fehlerquelle ...

    cu,
    -ds-

  • Noch ein Tip vorneweg, zumal Ihr zu mehreren daran arbeitet: Verwendet von Anfang an eine Versionsverwaltung wie mercurial oder git. Da könnt Ihr dann auch ein zentrales repository (z.B. auf bitbucket oder github) einrichten, auf das alle Zugriff haben, dann habt Ihr gleich ein Backup Eures Codes dazu. Ihr müsst Euch da nicht in alle Feinheiten einarbeiten, die grundlegenden Funktionen reichen schon aus.

  • dreamshader: Achso du meinst den ssh-Server der auf dem Raspberry läuft. Ich dachte du meinst eine dritte Maschine, weil du schriebst, der Server solle dann die Entwicklungsumgebung mit Compiler bereitstellen. Meinen tust du damit also den Raspberry.

    Der A+, den wir bis jetzt vorgesehen haben, hat leider auch keine LAN Schnittstelle. Ich dachte auch Wifi ist attraktiver, weil man sich so evtl. Mess- und Reglergrößen während der Fahrt angucken kann. Ich wüsste jetzt auch nicht, was gegen WLAN spricht.

    Ob wir dann zum austauschen untereinander ftp oder nfs oder Github nehmen, werden wir dann mal sehen.

    Also ist es völlig egal mit welchem Editor ich schreibe? Ich könnte also auch Visual Studio nehmen, den Sourcecode abspeichern und dann mit gcc auf dem Raspberry kompilieren?

    Einmal editiert, zuletzt von Wonnegrausen (26. Februar 2017 um 15:40)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!