查看: 1744|回复: 11
打印 上一主题 下一主题

【LinkIt™ Smart 7688】Python 开发

[复制链接] qrcode

30

主题

32

帖子

97

积分

注册会员

Rank: 2

积分
97
楼主
跳转到指定楼层
发表于 2016-3-30 01:27 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


LinkIt Smart 7688 运行的是openWrt,支持 C/C++、python以及JavaScript(Node.js)。



7688 开发架构图如下:


以上大致看了一下 LinkIt 7688 整体的软硬件架构,以及开发的语言。

本文,先介绍一下用python开发Application。

LinkIt 7688 的openWrt操作系统中已经预装了python程序,

可以简单的进行开发,通过编写python 脚本。

/IoT/examples 目录下,有一个写好的python 脚本,控制LED闪烁。


import mraa
import time

x = mraa.Gpio(44)  // 初始化 IO 口
x.dir(mraa.DIR_OUT) //设置为输出

while True:
    x.write(1)     //输出高电平
    time.sleep(0.2)  //延时 0.2 s
    x.write(0)      // 输出低电平。
    time.sleep(0.2)



上面的程序是使用的Libmraa 进行的开发,再LinkIt 7688 的镜像中预装了 Mraa 库文件。


import mraa
print (mraa.getVersion())


上面的代码可以常看 mraa 的版本。

关于Mara 的API 可以参考这里(http://iotdk.intel.com/docs/master/mraa/python/mraa.html).





GPIO, UART, SPI, and PWM 等这些简单的模块在mara 中有相应的函数。






一个简单的PWM 使用范例:



import mraa
pin = mraa.Pwm(18) # initialize on GPIO18 (pin P26)
pin.period_ms(2)
pin.enable(True)
pin.write(0.25)
# set PWM frequency to 500Hz (2ms period) # enable PWM output
# set duty cycle to 25%



IIC 使用范例:


import mraa
i2c = mraa.I2c(0)
# Grove - 3-Axis Digital Accelerometer(+-16g) # is a ADXL345 configured to I2C address 0x53. i2c.address(0x53)
# The device ID should be
if 0xE5 == i2c.readReg(0x00):
print "Grove - 3-Axis Digital Accelerometer found on I2C Bus" else:
print "Grove - 3-Axis Digital Accelerometer not found"






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

1

主题

83

帖子

13

积分

新手上路

Rank: 1

积分
13
沙发
发表于 2016-3-30 11:33 AM | 只看该作者
使用python编程,很有意思
回复 支持 反对

使用道具 举报

1

主题

109

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
发表于 2016-3-30 12:16 PM | 只看该作者

openwrt include python

The interest thing is the libs of Mraa.   my first time to using it.

回复 支持 反对

使用道具 举报

0

主题

84

帖子

26

积分

新手上路

Rank: 1

积分
26
地板
发表于 2016-3-31 12:27 AM | 只看该作者
最近在学习micropython,用python在STM32上编程,也挺好玩的
回复 支持 反对

使用道具 举报

0

主题

88

帖子

4

积分

新手上路

Rank: 1

积分
4
5#
发表于 2016-3-31 12:29 AM | 只看该作者
哦,我也看了一下那个东东,前段时间在别的bbs ,看有活动,我才了解到,还有 micropython这个东东。。。

win10 要运行bash 了,你怎么看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

0

主题

71

帖子

18

积分

新手上路

Rank: 1

积分
18
6#
发表于 2016-3-31 01:42 PM | 只看该作者
win10搞bash,没有前途,是扬短避长。有空一起玩玩micropython。
回复 支持 反对

使用道具 举报

0

主题

95

帖子

22

积分

新手上路

Rank: 1

积分
22
7#
发表于 2016-4-16 01:37 PM | 只看该作者

个人觉得python确实好用,不过在实际嵌入式项目中还是不适合去跑python的


原因有以下几点:

1:python是基于解释型的语言,假如你的硬件被破解的话,很容易获取到你的程序,哪怕你外围扩展了加密芯片;把你的程序稍作修改拿来就可以使用[除非你更改python解释器,不过还是比较容易破解]

2:python运行时,相对嵌入式来说,很消耗资源,项目稍微大点就基本跑不动了;前端时间,我接手一个项目,需挂16个采集器来接收数据,用的是RT5350(性能没有7688强悍),挂3~4个采集器就cpu已经80%了,虚拟内存更是超过150%,关键是采集器还没传送多大的数据量,后来改成C++后,挂16个采集器,4个摄像机,外加web和若干其它进程,并实时与STC单片机进行串口交互,cpu峰值为20%左右,基本稳定在5%左右

3:seeed smart7688的相对于多数嵌入式设备来说,主频已经很高了,但是跑python的话,还是稍显吃力的


我没有排挤python的意思,我觉得这门语言对嵌入式来说应该是后起之秀,不过目前环境来说,嵌入式领域[不要给我提树莓派哈]应用只能做做小的项目或学习用;真的到实际项目中,老板都会考虑成本的,同样的功能,为什么要选择更高性能的设备啊;

我一般都是用python写服务器程序(超爽的感觉),嵌入式一般用C、C++

当然,如果单纯学习的话,用什么都无可厚非

我不是愤青,没有排挤哪类语言的意思,理性评判

回复 支持 反对

使用道具 举报

0

主题

97

帖子

30

积分

新手上路

Rank: 1

积分
30
8#
发表于 2016-4-17 10:29 AM | 只看该作者

哇塞,,感谢那么辛苦的码字。。。给你点个赞。。。

大致理解你的意思了。

python 相对于C 应该相差两个数量级左右,做产品在嵌入式着实不可行。

不过对于创客来说,用创客去实现一些想法,相对于C,着实会更容易实现一点。

python做应用层开发的人,应该会的比较多。对于那些不熟悉底层的人,用python 配合库文件开发小东东,着实上手和实现都会很快。

用python 主要是给不太懂底层的人,降低台阶的难度

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

0

主题

88

帖子

12

积分

新手上路

Rank: 1

积分
12
9#
发表于 2016-4-17 10:30 PM | 只看该作者
恩,我很支持你的说法,项目中很多时候做demo我也都是用python去做,开发速度快;我确实也忽略我们这款开发板的适用人群,开源硬件,除了极客,还需要好多初学者去了解它快速对它上手; 后期我会针对初学者发一下python的应用,比如web开发,微信接口的使用等;
感谢我们的思维碰撞!
From:Voidar
voidar@163.com
回复 支持 反对

使用道具 举报

31

主题

227

帖子

339

积分

中级会员

Rank: 3Rank: 3

积分
339
10#
发表于 2016-4-18 12:49 PM | 只看该作者
不错,,期待你的分享。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表