2015-10-31 23:48:29 [显示全部楼层]
6586浏览
查看: 6586|回复: 4

[教程] Edison上程序开发——Python API 六大类事例

[复制链接]
话说上回我们提到Edison一共就这么7组API: Aio I2c Gpio Pwm Spi Uart Common
光有API可能同学们还不是很容易接受,来我们马不停蹄的来看下各自的例程,希望对大家有所帮助:p
1, GPIO
首先看看最最最最简单的一个例子
  1. import mraa
  2. print (mraa.getVersion())  #打印mraa的版本
  3. x = mraa.Gpio(13)      #创建一个GPIO对象
  4. x.dir(mraa.DIR_OUT)   #设置GPIO为输出
  5. x.write(1)                     #写入1  这是你会看到Arduino for Edison扩展板上有一个LED灯来起来了。
复制代码

2, AIO
第二个当然是同样简单低调的模拟IO
  1. import mraa
  2. print (mraa.getVersion())
  3. x = mraa.Aio(0)            #创建一个模拟IO,接口0
  4.     print (x.read())              #读取pin 0上的模拟数据
  5.     print ("%.5f" % x.readFloat())   #打印读到的数据
复制代码


3, UAT
  1. import mraa
  2. u = mraa.Uart(0)
  3. print u.getDevicePath()     #正常情况,会打印出/dev/ttyMFD1
复制代码

4, SPI
执行这个例子,请短接Arduino for Edison上的pin11 和 pin12,分别 MISO(TDX) 和 MOSI(RDX)
这个例子是自己 写->读 数据100次,并且检查写的数据跟读出来的数据是否相等。
如果没有任何输出,说明你的程序是正确的,否则报错,说明SPI是有问题的。
  1. import mraa as m
  2. import random as rand
  3. dev = m.Spi(0)
  4. for x in range(0,100):
  5.   txbuf = bytearray(4)
  6.   for y in range(0,4):
  7.     txbuf[y] = rand.randrange(0, 256)
  8.   rxbuf = dev.write(txbuf)
  9.   if rxbuf != txbuf:
  10.     print("We have an error captain!")
  11.     break
  12.     exit(1)
复制代码

5, I2C
这个例子是使用I2C来改变Grove-LCD 套件的背光。
  1. import mraa
  2. x = mraa.I2c(0)  #创建I2C
  3. x.address(0x62)  #设置地址
  4. #初始化设备
  5. x.writeReg(0, 0)
  6. x.writeReg(1, 0)
  7. # 发送RGB数据
  8. x.writeReg(0x08, 0xAA)
  9. x.writeReg(0x04, 255)
  10. x.writeReg(0x02, 255)
复制代码

6, PWM
提到PWM最先想到的多半就是控制直流电机了。
这个例子是,让点击从停止慢慢加速到最大速度,然后在慢慢停止下来,然后循环往复。
具体函数,之前已经有帖子详细说明了,不详述了这里。
  1. import mraa
  2. import time
  3. x = mraa.Pwm(3)
  4. x.period_us(700)
  5. x.enable(True)
  6. value= 0.0
  7. while True:
  8.     x.write(value)
  9.     time.sleep(0.05)
  10.     value = value + 0.01
  11.     if value >= 1:
  12.     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 绝对不辱使命!
@大连林海 你俩就闹我!害我又熬到半夜!

哈哈 这是给你动力 不然你就没动力了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail