0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【天启教育M1开发板试用体验】python按键控制LED流水灯

开发板试用精选 来源:开发板试用 作者: 电子发烧友论坛 2022-10-17 11:10 次阅读

本文来源电子发烧友社区,作者:刘建华, 帖子地址:https://bbs.elecfans.com/jishu_2309100_1_1.html


【目的】在用转接板的两个按键来控制LED的左右移动
【步骤】
1、建立一个按键显示缓存mylist =[0x08,0x08,0x08,0x08,0x08,0x08] 用这个缓存生成显示用的字符串
#value= '1000000,1000000,1000000,1000000,1000000,1000000'
再用显示函数tqmain.matri_strfill_display来驱动整个显示屏,函数如下:

def get_key():
  global state
  key_value1 = tqs1.key_get_status(2)
  #print(key_value1)
  if key_value1 == 0:
    for i in range(0,6):
      mylist[i] = mylist[i]>>1
      if mylist[i] == 0x00:
        mylist[i] = 0x01
    print("KeyB changed")
    state = True

注:state,为了加快按键的检测实时性,这里引入这个状态标志,如果按键事件发生,则更新这个状态键,主程序再去显示。
2、按键检测程序。首先要import tqs1模块,如果有检测到按键按下,测更新state状态标志,缓存做相对的位移动。具体程序如下:

def get_key():
  global state
  key_value1 = tqs1.key_get_status(2)
  #print(key_value1)
  if key_value1 == 0:
    for i in range(0,6):
      mylist[i] = mylist[i]>>1
      if mylist[i] == 0x00:
        mylist[i] = 0x01
    print("KeyB changed")
    state = True
  key_value2 = tqs1.key_get_status(1)
  if key_value2 == 0:
    for i in range(0,6):
      mylist[i] = mylist[i]<<1
      if mylist[i] > 0x40:
        mylist[i] = 0x40
    print("KeyA changed")
    state = True

3、然后在主程序下面调用以上两个程序。测可以实现两个按键控制LED灯左右移动。

import os
import tqs1
import tqmain
#value= '1000000,1000000,1000000,1000000,1000000,1000000'
mylist =[0x08,0x08,0x08,0x08,0x08,0x08]
tqmain.serial_write_line("start")
state = True
def disp_tq():
  global state
  state = False
  mystr =[]
  for i in range(0,6):
    myvalue = mylist[i] | 0x80 #确保可以去掉0b1
    mystr.append(bin(myvalue).replace('0b1',''))
  #tqmain.serial_write_line(mystr[1])
  value = ','.join(mystr)
  tqmain.matri_strfill_display(value)
  
def get_key():
  global state
  key_value1 = tqs1.key_get_status(2)
  #print(key_value1)
  if key_value1 == 0:
    for i in range(0,6):
      mylist[i] = mylist[i]>>1
      if mylist[i] == 0x00:
        mylist[i] = 0x01
    print("KeyB changed")
    state = True
  key_value2 = tqs1.key_get_status(1)
  if key_value2 == 0:
    for i in range(0,6):
      mylist[i] = mylist[i]<<1
      if mylist[i] > 0x40:
        mylist[i] = 0x40
    print("KeyA changed")
    state = True

while True:
  get_key()
  if state == True:
    print("dispn")
    disp_tq()
  os.sleep(0.1)

【总结】开发板支持python编程,可以实现很多好玩的东西。
【备注】由于被抽到外地支援抗疫,这个开发板非常容易携带,工作之余还可以继续写帖子。

按键控制LED,视频演示,详见作者原帖子内容。



声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LED流水灯
    +关注

    关注

    0

    文章

    10

    浏览量

    8346
  • 开发板试用
    +关注

    关注

    3

    文章

    301

    浏览量

    2039
收藏 人收藏

    评论

    相关推荐

    【RA-Eco-RA2E1-48PIN-V1.0开发板试用】RA-Eco-RA2E1-48PIN-V1.0开发板流水灯测试

    前几天试用的一块瑞萨的RA2L1AB开发板,今天就来尝试一下设置[GPIO]来点亮一盏LED。 收到的开发板各项按钮及插接件功能图如下:
    发表于 11-04 23:25

    【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第三章)键控流水灯实验例程

    灯、按键、拨码开关等。 二:实验目的 由PB0(即开发板S0位置)按键输入,切换LED0~LED7的输出效果。 三:实验原理
    发表于 04-29 16:06

    【紫光同创盘古PGX-Lite 7K教程】——(盘古PGX-Lite 7K开发板/PGC7KD-6IMBG256第二章)​LED 流水灯实验例程

    ; 在 C 语言中做流水灯的实验需要用到一个中间变量(代码如下左侧,数据位的搬移如下右图):在 FPGA 的开发中是基于硬件,语言也是硬件描述语言,verilog 的处理单位就是 1bit;8bit 的位
    发表于 03-20 15:07

    ELF 1技术贴|如何将Python3.6.9移植到开发板

    在ELF1开发板的Linux4.1.15eMMC镜像中,默认预装了Python2.7。为了适应更多应用场景,有些小伙伴可能需要移植其他版本的Python,下面将以
    的头像 发表于 02-22 14:06 403次阅读
    ELF <b class='flag-5'>1</b>技术贴|如何将<b class='flag-5'>Python</b>3.6.9移植到<b class='flag-5'>开发板</b>上

    【紫光同创国产FPGA教程】——(PGL22G第二章)键控流水灯实验例程

    LED1~8),FPGA输出高电平时对应的LED灯亮灯(详情请查看“MES22GP开发板硬件使用手册”)。 二:实验目的 由 USER_KEY1
    发表于 01-05 11:22

    【每周一练】盘古1K开发板 练习一:LED流水灯实验

    查看附件中的快速使用手册。 LED流水灯实验 本次实验实现LED流水灯,使用的到的硬件为LED灯,在【每周一练】小眼睛FPGA
    发表于 12-21 00:20

    【每周一练】+盘古1K开发板+2. 按键控制RGB led

    前言 按照要求,应该实现如下功能: 实验目的: 掌握按键消抖原理,实现按键控制流水灯 实验要求: 设计 8 种彩灯效果,选择一个按键作为控制
    发表于 12-17 11:33

    STM32按键控制LED的亮灭

    使用一个按键控制LED的亮灭,按键按下时LED亮起,按键松开时LED熄灭。通过
    的头像 发表于 12-11 14:19 3562次阅读
    STM32<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b>的亮灭

    【每周一练】盘古1K开发板 练习一:LED流水灯

    实验目的 熟悉PDS开发流程,掌握流水灯原理并实现流水灯。 实验要求 设计8个LED以0.5s间隔接替点亮。 学习心得 实现了IO控制,点亮
    发表于 12-10 16:39

    【每周一练】盘古1K开发板 练习二:按键控制彩灯实验

    实验目的 1 设计 8 种彩灯效果, 可通过按键切换。 2 选择一个按键作为控制输入, 按下一次换一种显示效果, 在 8 种效果中循环。 实验要求
    发表于 12-09 14:55

    【每周一练】盘古1K开发板 练习一:LED流水灯实验学习

    实验目的 熟悉PDS开发流程,掌握流水灯原理并实现流水灯 实验要求 设计8个LED以0.5s间隔接替点亮 实现代码 `define UD #1
    发表于 12-09 14:20

    【每周一练】盘古1K开发板 练习二:按键控制LED灯实验

    Part选项,选择开发板FPGA型号,这里选PGC1KG-6LPG100,如下图所示 图1:型号选择 2.原理图按键LED相关接口 图
    发表于 12-06 00:36

    【每周一练】+盘古1K开发板+LED流水灯

    1:开箱开发板套件 盘古1K开发板基于紫光PGC1KG-LPG100 FPGA为核心,预留丰富的扩展 IO 及数码管、
    发表于 12-02 09:23

    【每周一练】盘古1K开发板 练习二:按键控制LED灯实验学习记录

    经过练习一:LED流水灯后,进行练习二:按键控制LED灯实验也就相对容易些,有demo加持完成实验很容易,主要还是学习代码编写。 参考资料: 1
    发表于 11-28 15:31

    【每周一练】+盘古1K开发板+环境建立与流水灯

    下载线,该下载线的连接请参考“小眼睛FPGA”微信视频号中的“#紫光同创盘古系列FPGA开发板@盘古1K2K开发板 烧录器下载器 连接教程”。 二、流水灯测试 要实现
    发表于 11-27 21:57