Gambas en Raspberry Pi GPIO pinnen

Zien
Deze lijkt interessant: (van 2016)
1. Gambas GPIO and android on raspberryPi3
https://www.youtube.com/watch?v=j1HoN-ySK7Q

Deze is nog ouder (03-2015) en niet NL-talig, en ondanks de titel ook niet Engelstalig:
2. Controlling Raspberry Pi 2 GPIO with Gambas (2015)
https://www.youtube.com/watch?v=VPj_Hjh7viQ

Library
Een van de basisbenodigdheden naast gambas en een pi is een library om de raspberry pi GPIO pinnen aan te spreken (met een soort seriële communicatie):

  • wiringPi
  • pigpio

Een code-voorbeeld van gebruik vind je hier op elinux.org

libwiringPi
(Zie ook deze topic 2013 op pi forum – en blijkbaar moet je Gambas programma draaien als root)

De library moet je aanroepen in de software, in het 1e voorbeeld:
Library "/usr/local/lib/libwiringPi"

Dan worden er een aantal dingen uitgehaald, bv

Public Extern wiringPiSetup() As Integer ' blabla
Public Extern pinMode(pin as Integer, ...

Dan doet hij een “setup”:


Public sub Form_Open()
wiringPiSetup()
pinMode(7, PIN_OUTPUT)
pinMode(0, PIN_OUTPUT)
pinMode(2, PIN_OUTPUT)
pinMode(4, PWM_MODE)
pwmSetMod(0)
pwmSetClock(400)
pwmSetRang(1024)
pwmWrite(1, Slider8.Value)
End

Ik begrijp de indentatie niet zo goed, maar ik heb gewoon de code overgenomen uit zijn videootje.

Dan heeft hij nog code om naar de Arduino te sturen via de serialport1:

PUBLIC SUB _new()
' ...
serialport1.PortName= "/dev/ttyUSB0"
serialport1.speed = 9600
serialport1.
serialport1.
' enz
TRY serialport.Open()
IF Erro Then
Message.Error("Connection error in port " & serialport1.Portname)
ELSE
Try Print #serialport1, "S"
IF Error Then
Messag.Error("Error sending data .." )
Print "Cannot connect"
ELSE
Print "ok .. Connected"
ENDIF
ENDIF
END

Ook dat zou ik anders doen, nl met


WITH serialport
.Portname= "/dev/ttyUSB0"
.speed = 9600
.Parity = .None
.DataBits = .Bits8
.StopBits = .Bits1
.FlowControl = .None
END WITH

En dan stuurt hij slider informatie door naar de arduino:

Public Sub Slider3_Chang()
Dim b as Byte[]
b = [99, Slider3.Value, 101]
Write #serialport1, b AS Byte[]
End

Volgens zijn uitleg is het allemaal erg eenvoudig vanuit Gambas!

pigpio
Volgens Captain Bodgit (http://captainbodgit.blogspot.be/2016/08/raspberry-pi-gpio-gambas-pigpio-library.html) kan je ook deze pigpio (als .zip van abyz.co.uk/rpi/pigpio/) gebruiken:

wget abyz.co.uk/rpi/pigpio/pigpio.zip
Daarna:
unzip pigpio.zip
wat een mapje PIGPIO geeft, met inhoud.
cd PIGPIO
make
sudo make install

(uitgevoerd op OpenSUSE 42.3)