NeoPi+armbian GPIO mit Python

Gast #5714999
Lesenswert?
• ▲
▼
Hallo,

ich habe einen NeoPi mit armbian am Laufen. Mit der RPI.GPIO 
(RPI.GPIO_NP) lib für den NanoPi scheint es notwendig, Python als root 
auszuführen. armbian mappt wohl den GPIO-Speicherbereich nicht nach 
/dev/gpiomem. für den Zugriff auf /dev/mem braucht die lib dann wohl 
root Rechte.

Sofern keiner eine elegantere Lösung kennt, würde ich gerne mein 
eigentliches Python script weiterhin mit eingeschränkten rechten 
auszuführen. Ein parallel laufendes script, ausgeführt mit root rechten, 
könnte sich um die Ausführung der gpio Befehle kümmern. Evtl. geht ja 
auch ein Mini-C-Program. Nur wie lasse ich diese beiden Programme dann 
am besten miteinander kommunizieren?

Hat jemand Ideen?

Vielen Dank
Gast #5715006
Lesenswert?
• ▲
▼
Nachtrag:

eine von FriednlyElec für den NanoPineo angepasste Version der wiringPi 
lib habe ich am laufen und kann in der Kommandozeile auch mit 
eingeschränkten Rechten die gpios schalten. Nur nutzt mir das evtl. 
etwas in Python?
Gast #5715407
Lesenswert?
• ▲
▼
Ralf schrieb:
> Hallo,
>
> ich habe einen NeoPi mit armbian am Laufen. Mit der RPI.GPIO
> (RPI.GPIO_NP) lib für den NanoPi scheint es notwendig, Python als root
> auszuführen. armbian mappt wohl den GPIO-Speicherbereich nicht nach
> /dev/gpiomem. für den Zugriff auf /dev/mem braucht die lib dann wohl
> root Rechte.
>
> Sofern keiner eine elegantere Lösung kennt, würde ich gerne mein
> eigentliches Python script weiterhin mit eingeschränkten rechten
> auszuführen. Ein parallel laufendes script, ausgeführt mit root rechten,
> könnte sich um die Ausführung der gpio Befehle kümmern. Evtl. geht ja
> auch ein Mini-C-Program. Nur wie lasse ich diese beiden Programme dann
> am besten miteinander kommunizieren?

Armbian mappt die GPIO meist nach /sys/class/gpio, bei meinem Orangepi 
One habe ich das Verfahren per Udev-Rule benutzt, das in 
https://linux-sunxi.org/GPIO beschrieben ist (etwa Mitte Seite). 
Vielleicht geht das beim NanoPi auch.
Gast #5715624
Lesenswert?
• ▲
▼
Q&D:


Beispiel für Datei lesen:
1
value = open('/sys/class/gpio/filename', 'r').read()


Beispiel für Datei schreiben:
1
gpio_write = open('/sys/class/gpio/filename', w').write(value)


Geht natürlich auch mit
1
open ...
2
read ...   (bzw. write)
3
close...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.