Programmiersprachen, IDE

  • Hallo,
    ich programmiere mit meinem Raspberry pi schon seit einiger Zeit Leds, Relais... mit Python. Ich wollte jetzt mal programmieren das ein Relais sich jeden tag für eine gewisse Zeit öffnet und danach wieder schließt. Das hab ich mit crontab gemacht. Jetzt wollte ich noch einen schalter hinzufügen der zu jeder Zeit auf Knopfdruck das Relais öffnet. Als ich Fertig war merkte ich das meine beiden Programme gar nicht miteinander funktionieren da in einer schleife (while 1) abgefragt wird ob der Knopf gedrückt ist und wenn nicht wird das Relais auf LOW (geschlossen) gesetzt. Das heißt wiederum das wenn durch crotab das Programm zum Relais öffnen ausgeführt wird, der wert Relais öffnen direkt wieder zu Relais schließen geändert wird. Ich habe auch versucht die beiden Programme in ein Programm zu verarbeiten aber das hat auch nicht funktioniert.
    Jetzt ist meine Frage. Gibt es eine Möglichkeit mein Plan umzusetzen?
    Mir kommt es generell so vor als wär Python sehr eingeschränkt. Gibt es eine Möglichkeit mein Plan mit C umzusetzen und würdet ihr mir vielleicht empfehlen von Python auf C zu wechseln?

    Ich habe noch eine Frage. Gibt es ein gutes IDE für den Raspberry Pi (Python oder C) das mir Fehler immer gleich anzeigt so was ähnliches wie eclipse.

    Vielen Dank :danke_ATDE: :danke_ATDE: :danke_ATDE:
    Lynix

  • Gibt es eine Möglichkeit mein Plan umzusetzen?

    Ja.

    Mir kommt es generell so vor als wär Python sehr eingeschränkt.

    Wie kommst du darauf?

    würdet ihr mir vielleicht empfehlen von Python auf C zu wechseln?

    Für Dein aktuelles Vorhaben? Nein :fies:

    Dein Problem scheint zu sein dass du innerhalb eines Scripts parallel mehrere Sachen machen möchtest. Dazu gibt es mehrere Möglichkeiten das zu lösen.
    Aber wenn du lieber einem Problem aus dem Weg gehen willst dann wechsel zu C :fies:


    Bitte poste deine Scripts und beschreibe dazu noch mal was wann passieren soll. FAQ => Nützliche Links / Linksammlung => HowTo: CODE / PHP Code im Forum posten

  • Also IDLE nimm ich das Standard mittlerweile von Python her, als Editor verwende ich Wing IDE

    Vorab, wie sehr das auf die Ressourcen geht kA, soweit bin ich selber noch nicht. Mein Vorschlag:

    (Python)Script direkt in Autostart integrieren

    #Init
    >>Festlegen wann Relais immer geöffnet werden soll

    #Hauptteil
    >>Wurde Taster gedrückt?
    >Wenn ja, Ventil öffnen

    >>Ist die aktuelle Uhrzeit eingestellt (natürlich nur auf Std, Minuten definieren)
    > Wenn ja, Ventil öffnen

    >>schlafe x Sekungen, dann mach alles von vorne im Hauptteil

  • Servus Lynix,


    ...
    Jetzt ist meine Frage. Gibt es eine Möglichkeit mein Plan umzusetzen?


    natürlich gibt es die ...


    ...
    Mir kommt es generell so vor als wär Python sehr eingeschränkt. ...


    wie kommst Du jetzt darauf?


    ... Gibt es eine Möglichkeit mein Plan mit C umzusetzen ...


    aber klar doch ... allerdings wirst Du da, wie in vermutlich jeden anderen Programmiersprache auch, auf dasselbe Problem stossen.


    ... würdet ihr mir vielleicht empfehlen von Python auf C zu wechseln?


    wegen Deines aktuellen Problems sicher nicht ... es sei denn, Du hättest andere Gründe.

    Meine Empfehlung in diesem Fall: probiere mehrere Programmiersprachen durch und verwende die, die Dir am besten liegt. Im Idealfall kann das so weit gehen, dass Du, wenn Du eine Aufgabenstellung betrachtest, bereits den Code vor Deinem geistigen Auge siehst ...
    Ich denke, es sollte Spass machen ein Programm zu entwickeln ... vollkommen unabhängig davon, was "andere" zu Deiner Wahl sagen ...
    Wenn Du also prinzipielle Zweifel hast, dass Python das Richtige für Dich ist, dann schau Dich ein wenig um und ziehe auch Sprachen in Betracht, die als "Exoten" gelten ...
    Ansonsten bleib' dabei ...

    Es könnte natürlich auch sein, dass Programmieren überhaupt nicht Dein Ding ist ... dann such' Dir erst recht was aus, was Du mehr oder weniger intuitiv verstehst und womit Du schnelle Erfolgserlebnisse hast. Sonst wird das noch öder ...
    Nicht jeder hat die Begabung Software zu entwickeln ... damit ist es genauso wie mit Schifahren, Fußball oder Briefmarken-Sammeln ...

    cu,
    -ds-

  • Hallo Lynix,


    Jetzt ist meine Frage. Gibt es eine Möglichkeit mein Plan umzusetzen?


    Klar doch!
    Ich würde das Ganze in ein Programm stecken.

    In der Hauptschleife setzt Du das Relais auf den Zustand, wie Du es vorgesehen hast. Das scheint ja zu laufen.
    Möglichkeit 1:
    In der gleichen Schleife prüfst Du, ob der Taster betätigt wurde.

    Ist das Relais offen - braucht der Taster nicht geprüft zu werden. Das Relais bleibt offen.
    Ist das Relais geschlossen, fragst Du den Taster ab. Ist er gedrückt, öffnet das Relais.

    Möglichkeit 2:
    Definieren eines Pseudo-Interrupts in Python.
    In der Pseudo-Interrupt-Routine wird nur der Status "Taster gedrückt" gesetzt.

    In der Hauptschleife passiert dann das Gleiche wie bei Möglichkeit 1.

    In der IT ist sowas als "State Machine" bekannt.



    Mir kommt es generell so vor als wär Python sehr eingeschränkt. Gibt es eine Möglichkeit mein Plan mit C umzusetzen und würdet ihr mir vielleicht empfehlen von Python auf C zu wechseln?


    Wie Dreamshader schon sagte: Du musst Dich mit einer Programmiersprache beschäftigen. Prinzipiell unterscheiden sich die meisten Programmiersprachen nur geringfügig voneinander. Der Ablauf ist immer sehr ähnlich. Die verwendeten Schlüsselworte, Funktionen, Befehle, Operationen sind sehr übersichtlich und vergleichbar.
    Dein Vorhaben kannst Du mit Python umsetzen, mit C auch, mit 100 anderen Programmiersprachen dürfte es ebenfalls keine Probleme dabei geben.



    Ich habe noch eine Frage. Gibt es ein gutes IDE für den Raspberry Pi (Python oder C) das mir Fehler immer gleich anzeigt so was ähnliches wie eclipse.


    Nimm Geany - unterstützt Python, C und etliche andere Programiersprachen.
    Oder TextAdept - unterstützt knapp 100 Programmiersprachen.

    Die können Dir aber nur Syntax-Fehler durch Highlighting anzeigen. Aber die unterstützen Dich auch durch Auto-Code-Vervollständigung, was Tippfehler vorbeugt. Du kannst aber sog. Code-Schnipsel definieren. Das vermeidet Fehler in strukturierten Einheiten (Schleifen, Vergleiche).

    Aber bei logischen Fehlern, wie Du es hier als Problem beschreibst, ist meines Wissens momentan kein Kraut gewachsen. Da hilft nur, die Programmiersprache zu essen, zu träumen, zu sprechen - und immer aufpassen, dass das was auf dem Bildschirm an Code erscheint, auch das ist, was man haben wollte. Schnell wird aus < ein >, aus ODER ein UND ... Solche logischen Fehler sind schwer zu erkennen und aufzuspüren. Man wundert sich nur, dass das Programm "sich in bestimmten Situationen so eigenartig verhält".

    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 01:29)

  • Hi Dreamshader,

    so spät noch so wach?


    das ist eine nette Formulierung ... bringt's aber ziemlich genau auf den Punkt ;)


    Auf Seite 345 der Icon-Tutorials ist sogar noch von Denken die Rede. Aber in diese Richtung wollte ich zu der Uhrzeit nichts mehr andeuten.

    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.

  • Ich werfe mal die "PyCharm" - IDE als Python-Entwicklungsumgebung in den Ring...

    Ist meine seit Jahren favorisierte IDE, weil sie einen ähnlichen Funktionsumfang wie Eclipse hat ohne so derart "schwergewichtig" zu sein (mit etwas Langmut läuft die auch auf einem RasPi 3 direkt, ich bevorzuge allerdings "CrossDevelopment") ...

Jetzt mitmachen!

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