So I thought, let's try a simple Python program on the R_PI. I know, build some traffic lights. I found a solution on the web, but getting it going was another matter.
1. I ran the desktop environment over VNC to my iMac, this means connecting by "ssh", running the server R_PI "vncserver :0" then starting the VNC Viewer program on my iMac pointing to "raspberrypi.local" and entering the password. (I had already installed the R_PI app "tightvncserver" to enable this... and the bonjour system to avoid the need to enter IP addresses)
2. On the desktop environment I opened Programming > Python3 and File >New
3. I typed in the code for the program:
#pin definitions GPIO_SWITCH = 17 GPIO_RED = 22 GPIO_AMBER = 23 GPIO_GREEN = 24 # timings TIME_CHANGE = 1 TIME_RED = 5 TIME_GREEN = 5 # libraries import RPi.GPIO as GPIO import time # system settings GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) # pin setups GPIO.setup(GPIO_RED, GPIO.OUT) GPIO.setup(GPIO_AMBER, GPIO.OUT) GPIO.setup(GPIO_GREEN, GPIO.OUT) GPIO.setup(GPIO_SWITCH, GPIO.IN, pull_up_down=GPIO.PUD_UP) # initial state GPIO.output(GPIO_RED, True) GPIO.output(GPIO_AMBER, False) GPIO.output(GPIO_GREEN, False) # loop while 1: time.sleep(TIME_RED) GPIO.output(GPIO_AMBER, True) time.sleep(TIME_CHANGE) GPIO.output(GPIO_RED, False) GPIO.output(GPIO_AMBER, False) GPIO.output(GPIO_GREEN, True) while GPIO.input(GPIO_SWITCH): time.sleep(0.25) GPIO.output(GPIO_AMBER, True) GPIO.output(GPIO_GREEN, False) time.sleep(TIME_CHANGE) GPIO.output(GPIO_RED, True) GPIO.output(GPIO_AMBER, False)and saved it as "traffic.py" in my "PGM" folder.
4. I then chose Run from the Python menu, PROBLEM! The GPIO stuff can only access the board pins if run as super user. So you can't run the program from the desktop python environment!!! How stupid can you get??? Or maybe no one has explained this to me yet... the documentation for the R_PI is a disaster...
5. So I closed the desktop python3 environment and connected to the R_PI from my Terminal program on the iMac and changed to the folder where I keep my programs "PGM", the program is called "traffic.py".
ssh pi@raspberrypi.local pi@raspberrypi ~ $ pi@raspberrypi ~ $ cd PGM pi@raspberrypi ~/PGM $Now I ran the program with
pi@raspberrypi ~/PGM $ sudo python3 traffic.pyand off we go. it works. It also works fine if I start it the same way from a terminal window on the R_PI desktop (using LXTerminal).
6 BUT WHAT STUPIDITY that you cannot run the RPi.GPIO program from the desktop Python3 IDE!!!
No comments:
Post a Comment