打印

用Python玩转天问51

[复制链接]
2160|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
twen51|  楼主 | 2021-5-26 10:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、概述
纯Python语言没法在资源有限的单片机上运行,于是我们采用了上位机和硬件通讯方式来实现用Python控制硬件设备,需要占用硬件设备一个串口,同时硬件设备里需要烧入通讯固件。
Python语言有很多现成的库可用,我们可以借助Python语言结合硬件设备做很多实际应用。比如用PyQt5可以做图形界面上位机,用Plotly绘图库做数据采集和分析等虚拟实验工具。
二、硬件设置
1. 安装天问Blcok
打开天问Block官方网站,点击链接下载并安装。

为了方便软件使用,建议勾选关联软文件扩展名。

软件安装完成后将跳出驱动安装。

默认点击下一步直到安装成功。
2. 烧写Python通讯固件
打开天问Block软件,首先会提示选择主板,这里我们根据天问51主板选择STC8/16。
Python通讯固件V1.0.hd

打开固件。

查看对应的串口。

查看设备管理器。

确认端口对应,这里都为COM8。
点击右上角运行,完成下载固件。

跳出下载窗口。

下载完成后,窗口自动关闭。
三、Python环境设置Python环境安装
*使用Python 3.6以上版本
  • 为了方便用户使用,已提供Windows版Python 3.8.7安装包(32位/64位),如需其他版本,请自行下载,下载方法可查看文后阅读材料(第2页)。
Windows版本安装时在选项中勾选添加Python到环境变量,点击下一步直到安装完成。

*如选择自定义安装,勾选下图中选项。

安装成功。

Pyserial依赖包安装
使用系统快捷键WIN + R运行CMD命令行。
  • pip install pyserial

[color=rgb(51, 102, 153) !important]复制代码


提示安装成功。
四、运行示例程序下载天问Python包
下载地址: 天问51-Python.zip (2.58 MB, 下载次数: 7)
使用Python IDLE打开Python通讯框架目录,需要使用的文件如下。
key.py keypad.py light.py matrix.py mixed.py motor.py nixietube.py ntc.py oled.py qma7981.py TWen.py analogRead.py buzzer.py digitalRead.py digitalWrite.py
其中TWen.py为主要库文件,每次运行程序时都需要在头部调用。
  • from TWen import *

[color=rgb(51, 102, 153) !important]复制代码

运行LED闪烁案例
以下为LED的调用范例程序。
digitalWrite.py
  • from TWen import *
  • if __name__ == '__main__':
  •     board = TWen()
  •     board.start('COM8')
  •     board.digitalWrite(P41, 0);
  •     while True:
  •         sleep(0.2);
  •         board.digitalWrite(P41,1);
  •         sleep(0.2);
  •         board.digitalWrite(P41,0);

[color=rgb(51, 102, 153) !important]复制代码

更改对应的串口,串口与下载Python通讯固件时选择的一致。
  • board.start('COM8')

[color=rgb(51, 102, 153) !important]复制代码

1. 使用Python IDLE
通过Python IDLE打开digitalWrite.py。

点击运行程序。

程序运行成功,LED闪烁。
2. 使用命令行运行
使用系统快捷键WIN + R运行CMD命令行。

使用cd命令跳转到项目文件夹,然后使用python *.py运行文件。

程序运行成功,LED闪烁。
五、API接口说明
  • Start
    • TWen()
    • start( serialport )
  • GPIO
    • digitalWrite( pin, level )
    • digitalRead( pin, def onResult )
  • ADC
    • analogRead( pin, def onResult )
  • PWM
    • pwmWrite( pin, pwm )
  • Actuator
    • motor( speed )
    • buzzer( freq, duty )
  • Sensors
    • Light Sensor
      • light ( def onResult )
    • Temperature Sensor
      • ntc( def onResult )
    • Keypad
      • keypad( def onResult )
    • Key1~4
      • key1( def onResult )
      • key2( def onResult )
      • key3( def onResult )
      • key4( def onResult )
    • QMA7981
      • ama7981( axis )

  • Display
    • Matrix
      • matrixDisplay( buffer )
      • matrixDisplayNum( value )
    • Nixietube
      • nixietube_num( value )
      • nixietube_float( value )
      • nixietube_time( h, m, p )
      • nixietube_time2( h, m, p )
    • OLED
      • oled( x, y, message )


六、Python IDE推荐
前面我们都是用最原始的文本工具运行Python程序,使用起来会有很多不方便的地方,比如关键词高亮、提醒、调试等,所以一般建议使用专门的IDE来编写Python程序,能起到事半功倍的效果。这里推荐使用PyCharm社区免费版,软件的具体使用网上很多教程,不再做详细赘述。
下载地址:https://www.jetbrains.com/pycharm/download/
阅读材料:Python安装包下载
  • 官方下载地址:https://www.python.org/downloads/

    点击下载,下载链接会根据当前系统自动选择对应的版本。
    Win7系统不支持Python 3.9版本,请自行选择需要的版本下载。

    打开页面后,找到下载,点击下载安装包,Windows系统安装包按照下图所示下载。

  • Windows版备用下载地址:
    • https://pc.qq.com/
    • https://baoku.360.cn/
    在搜索框输入"Python",根据系统版本选择32位/64位,选择普通下载
  • 官方网站FTP下载更多版本:https://www.python.org/ftp/python/

使用特权

评论回复

相关帖子

沙发
ningling_21| | 2021-5-26 14:19 | 只看该作者
这个不错

使用特权

评论回复
板凳
twen51|  楼主 | 2021-5-27 13:57 | 只看该作者

你在用了没有

使用特权

评论回复
地板
twen51|  楼主 | 2021-5-27 16:21 | 只看该作者

谢谢哈,多交流

使用特权

评论回复
5
jeoge| | 2021-5-28 14:07 | 只看该作者
没搞过,不知可行?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

42

帖子

2

粉丝