孙毅 发表于 2015-10-31 23:48:29

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了。





孙毅 发表于 2015-10-31 23:50:06

@hnyzcj 绝对不辱使命!
@大连林海 你俩就闹我!害我又熬到半夜!

hnyzcj 发表于 2015-11-1 07:35:08

孙毅 发表于 2015-10-31 23:50
@hnyzcj 绝对不辱使命!
@大连林海 你俩就闹我!害我又熬到半夜!

哈哈哈哈哈,到我房间来,面授

hnyzcj 发表于 2015-11-1 07:35:25

孙毅 发表于 2015-10-31 23:50
@hnyzcj 绝对不辱使命!
@大连林海 你俩就闹我!害我又熬到半夜!

服务要上门,这才是INTEL的风格

大连林海 发表于 2015-11-1 09:00:26

孙毅 发表于 2015-10-31 23:50
@hnyzcj 绝对不辱使命!
@大连林海 你俩就闹我!害我又熬到半夜!

哈哈 这是给你动力 不然你就没动力了
页: [1]
查看完整版本: Edison上程序开发——Python API 六大类事例