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

描述

本文来源电子发烧友社区,作者:刘建华, 帖子地址: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,视频演示,详见作者原帖子内容。



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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分