Forum: Mikrocontroller und Digitale Elektronik NeoPi+armbian GPIO mit Python


von Ralf (Gast)


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

von Ralf (Gast)


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?

von uxdx (Gast)


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.

von Ralf (Gast)


Lesenswert?

Hi, vielen Dankfür deine Antwort

uxdx schrieb:
> Armbian mappt die GPIO meist nach /sys/class/gpio

davon habe ich gelesen, aber wie erreiche ich /sys/class/gpio dann aus 
python heraus?

von uxdx (Gast)


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...

von Analogon (Gast)


Lesenswert?

Hi,

hatte vor ein paar Jahren dasselbe Problem und wollte ohne Root Rechte 
den Zugang zu gewissen Scripten ermöglichen.

Ich habe mir durch die PiGpio Bibliothek helfen können. Diese ist in der 
Lage einen daemon zu starten und somit die Scripte über deine "normalen" 
Zugriffsrechte auszuführen.
http://abyz.me.uk/rpi/pigpio/


vG

von bingo (Gast)


Lesenswert?

Analogon schrieb:
> Ich habe mir durch die PiGpio Bibliothek helfen können.

Läuft nicht auf dem neoPi (zumindest bei mir nicht).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.