Edison上程序开发——Python API 六大类事例
话说上回我们提到Edison一共就这么7组API: Aio I2c Gpio Pwm Spi Uart Common光有API可能同学们还不是很容易接受,来我们马不停蹄的来看下各自的例程,希望对大家有所帮助:p
1, GPIO
首先看看最最最最简单的一个例子
import mraa
print (mraa.getVersion())#打印mraa的版本
x = mraa.Gpio(13) #创建一个GPIO对象
x.dir(mraa.DIR_OUT) #设置GPIO为输出
x.write(1) #写入1这是你会看到Arduino for Edison扩展板上有一个LED灯来起来了。
2, AIO
第二个当然是同样简单低调的模拟IO
import mraa
print (mraa.getVersion())
x = mraa.Aio(0) #创建一个模拟IO,接口0
print (x.read()) #读取pin 0上的模拟数据
print ("%.5f" % x.readFloat()) #打印读到的数据
3, UAT
import mraa
u = mraa.Uart(0)
print u.getDevicePath() #正常情况,会打印出/dev/ttyMFD1
4, SPI
执行这个例子,请短接Arduino for Edison上的pin11 和 pin12,分别 MISO(TDX) 和 MOSI(RDX)
这个例子是自己 写->读 数据100次,并且检查写的数据跟读出来的数据是否相等。
如果没有任何输出,说明你的程序是正确的,否则报错,说明SPI是有问题的。
import mraa as m
import random as rand
dev = m.Spi(0)
for x in range(0,100):
txbuf = bytearray(4)
for y in range(0,4):
txbuf = rand.randrange(0, 256)
rxbuf = dev.write(txbuf)
if rxbuf != txbuf:
print("We have an error captain!")
break
exit(1)
5, I2C
这个例子是使用I2C来改变Grove-LCD 套件的背光。
import mraa
x = mraa.I2c(0)#创建I2C
x.address(0x62)#设置地址
#初始化设备
x.writeReg(0, 0)
x.writeReg(1, 0)
# 发送RGB数据
x.writeReg(0x08, 0xAA)
x.writeReg(0x04, 255)
x.writeReg(0x02, 255)
6, PWM
提到PWM最先想到的多半就是控制直流电机了。
这个例子是,让点击从停止慢慢加速到最大速度,然后在慢慢停止下来,然后循环往复。
具体函数,之前已经有帖子详细说明了,不详述了这里。
import mraa
import time
x = mraa.Pwm(3)
x.period_us(700)
x.enable(True)
value= 0.0
while True:
x.write(value)
time.sleep(0.05)
value = value + 0.01
if value >= 1:
value = 0.0
好了,如果大家能把这几个例子花几分钟细心看下,然后顺便执行一下,详细Edison上使用python编程就基本上没有什么问题了。
剩下的就是去查找具体API了。
@hnyzcj 绝对不辱使命!
@大连林海 你俩就闹我!害我又熬到半夜! 孙毅 发表于 2015-10-31 23:50
@hnyzcj 绝对不辱使命!
@大连林海 你俩就闹我!害我又熬到半夜!
哈哈哈哈哈,到我房间来,面授 孙毅 发表于 2015-10-31 23:50
@hnyzcj 绝对不辱使命!
@大连林海 你俩就闹我!害我又熬到半夜!
服务要上门,这才是INTEL的风格 孙毅 发表于 2015-10-31 23:50
@hnyzcj 绝对不辱使命!
@大连林海 你俩就闹我!害我又熬到半夜!
哈哈 这是给你动力 不然你就没动力了
页:
[1]