查看: 1979|回复: 0

Python在1602液晶屏上实现时间实时更新

[复制链接]
  • TA的每日心情
    擦汗
    2020-3-24 10:37
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2017-6-19 09:05:32 | 显示全部楼层 |阅读模式
    分享到:
    前言
    本文环境:ublinux 3.0;Win7_x64
    通过阅读本文你可以学到:

    • UP Board GPIO 接口的介绍以及使用
    • PyCharm 远程调试 UP上的Python代码
    • Lemaker LN IO 拓展板的使用
    • 使用RPi.GPIO这个Python库控制1602液晶屏
    UP板载GPIO接口介绍

    UP板的GPIO接口兼容树莓派40 Pin。实现起来比较复杂,部分从Intel Atom Z8350引出(需要电平转换),部分由板载CPLD实现。
    操作GPIO

    官方提供了三种方式:用户空间sysfs (shell)、RPi.GPIO库(Python)和libMRAA(多种编程语言)。
    Lemaker LN IO拓展板介绍

    之前在云汉社区试用Lemaker Guitar开发板时一并入手的。兼容树莓派引脚。个人非常喜欢乐美客公司的产品,包括BananaPi、BananaPi Pro、Lemaker Guitar、96boards Hikey (Lemaker Version),以及包括LN IO在内的三款拓展板,做工优良,可以在官方微店买到。LN IO 介绍页面,电路原理图 。

    下面是Lemaker Guitar开发板,上面就是LN IO 拓展板】我们下面将会利用板载的4个按键、LED灯以及1602接口。
    Python控制LN IO 扩展板按键和LED

    最近在学习Python,恰巧ubilinux移植了RPi.GPIO库,让我们可以非常方便地操作GPIO资源。吐槽一下,由于被动散热片的存在,使用转接线等会卡到无法完全贴合。
    Blink!——控制发光二极管闪烁

    我们以点亮LN IO上的led2为例:

    【LED电路原理图】LCD和LED是切换显示的。可以看到LED2连接到GPIO0,那么GPIO0是对应树莓派是哪个引脚呢?

    【底板对应引脚】GPIO0对应物理引脚11。

    【UP Board 引脚定义图】为了方便起见,我们统一使用BOARD物理引脚编号而非BCM引脚编号。

    • ubilinux移植的RPi.GPIO库仅兼容Python 2.x版本
    • 为方便转换,我们以BOARD编码GPIO引脚顺序(物理顺序)
    • LN IO Board的LED和LCD可以切换显示,连接帽导通不同引脚即可。
    下面创建一个文件lcd.py,内容如下,然后运行看看:sudo python lcd.py

    效果如图所示:



    按键控制LED开关

    有了上面的我们再来试试用按键控制LED,很多用过Arduino的应该轻车熟路啦。

    有兴趣的可以做一个防按键抖动(Debounce)版本。
    Python控制1602液晶屏显示当前时间

    硬件包括LN IO 拓展板;1602液晶屏;USB无线网卡;UPBoard。注意LN IO拓展板将连接帽切换到LCD引脚。

    1602液晶屏的引脚定义:

    • VSS,接地
    • VDD,接3.3V电源
    • VO,液晶对比度调节,接电位器中间的引脚(板载R2)
    • RS,寄存器选择,接PB 03,Pin 29
    • RW,读写选择,接地,表示写模式
    • EN,使能信号,接PB 13,Pin 33
    • D0,数据位0,4位工作模式下不用,不接
    • D1,数据位1,4位工作模式下不用,不接
    • D2,数据位2,4位工作模式下不用,不接
    • D3,数据位3,4位工作模式下不用,不接
    • D4,数据位4,接GPIO 4,Pin 16
    • D5,数据位5,接GPIO 5,PIN 18
    • D6,数据位6,接GPIO 6,PIN 22
    • D7,数据位7,接GPIO 7,PIN 7
    • A,液晶屏背光+,接3.3v
    • K,液晶屏背光-,接地
    源代码可以从github页面下载,修改相关引脚序号,如下:









    每秒更新,显示当前时间,效果如图所示:

    进阶

    分析代码可知,该代码段可作为1602驱动库,支持1602的基本显示控制。后面可以自定义显示自己的信息,例如做一个小闹钟。
    PyCharm远程调试UP Board上的Python程序

    由于在UP Board上使用终端界面调试Python确实不很方便(其实是PyCharm用起来太爽了),所以使用Windows 上的PyCharm调试UP Board上的程序,可以直接使用UP的GPIO硬件资源,并且可以非常方便地安装各种库,简直停不下来,当然前文提到的cloud9也不错。远程调试功能只有专业版(Professional)可用,免费的社区版(Community)无此功能。通过edu邮箱验证可以免费使用专业版。
    注意点如下:

    • 因为我们使用ubilinux移植的RPi.GPIO库,所以解释器只能选择python2
    • 需要启用root账户并更改ssh设置允许root登录
    • 可以通过PyCharm更新UP板上的Python库
    <code>sudo passwd root #启用root账户 sudo nano /etc/ssh/sshd_config # 添加 PermitRootLogin yes,Ctrl+O保存,Ctrl+X退出 sudo systemctl restart sshd # 重启SSH服务,使更改生效效果如图所示:

    作者:思兼
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 16:27 , Processed in 0.132074 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.