با توجه به توضیحات آقای عباسی در این پست یه برنامه با زبان پایتون نوشتم که برای مقدار دهی یک پایه کاربرد داره.
برای شروع یک فایل به اسمه blinky.py بسازید و برنامه زیر را داخلش تایپ کنید.
import os,time
_PIN_EN = ‘/sys/class/gpio/export’
_PIN_DS = ‘/sys/class/gpio/unexport’
_PIN_PA = ‘/sys/class/gpio/%s’
GPIO_PINS = [‘gpio1_pg3’, ‘gpio2_pb19’, ‘gpio3_pb18’, ‘gpio4_pg6’, ‘gpio5_pg5’,
‘gpio6_pg4’, ‘gpio7_pg1’, ‘gpio8_pg2’, ‘gpio9_pg0’, ‘gpio10_ph14’,
‘gpio11_ph15’, ‘gpio12_pi6’, ‘gpio13_pi5’, ‘gpio14_pi4’]
class InvalidPinNumber(Exception):
“””The Pin Number sent is invalid on a Cubieboard”””
pass
def _GetPinName(pinNumber):
if pinNumber in range(1,67):
return GPIO_PINS[pinNumber – 1]
else:
raise InvalidPinNumber
def usleep(ms):
time.sleep(ms/10000.0)
def output(pinNumber, value):
id = _GetPinName(pinNumber)
pin_path=_PIN_PA %id
if not os.path.exists(pin_path):
open(_PIN_EN, ‘w’).write(str(pinNumber))
with open(pin_path+’/direction’, ‘w’) as f:
f.write(‘out’)
with open(pin_path+’/value’, ‘w’) as f:
f.write(‘1’ if value else ‘0’)
while(1):
output(12, 1)
usleep(1000)
output(12, 0)
usleep(1000)
برای مثال می خواهیم LED متصل به پایه 26 سوکت U15 کیوبی را بصورت مداوم خاموش و روشن بکنیم.
برای اجرای برنامه از دستور زیر استفاده می شود.
python blinky.py
برای خارج شدن از برنامه از کلید Ctrl+c استفاده کنید.
اگر دقت کنید داخل برنامه فقط نیاز هست قسمت زیر را بدونیم.
While (1):
output(12, 1)
usleep(1000)
output(12, 1)
usleep(1000)
در تابع output عدد 12 شماره پایه و 1 مقدار خروجی هست.
در آینده سعی می کنم تابع مربوط به خواندن را هم اضافه کنم.
فایل برنامه را می تونید از این لینک دانلود کنید.