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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren