当前位置: 首页 > news >正文

AI视觉小车基础--2.按键读取

一、实验准备       

        读取按键KEY1的按下状态。如下图所示,将舵机连接在接口上。

二、实验源码

# Import Raspbot  library
from Raspbot_Lib import Raspbot
import time
import sys
sys.path.append('/home/pi/software/oled_yahboom/')
from yahboom_oled import *# Create the Raspbot object bot
bot = Raspbot()
# Create an oled object
oled = Yahboom_OLED(debug=False)key_down= False
try:oled.init_oled_process() # Initialize oled processoled.clear()oled.add_line('key pressed:', 1)oled.refresh()while True:data = bot.read_data_array(0x0d, 1)state=data[0]# Print only when the key is not pressed and becomes pressedif state == 1 and not key_down:print("key pressed", state)key_down = True  oled.clear()key_str=f'{state:>10}'oled.add_line('key pressed:', 1)oled.add_line(key_str, 3)oled.refresh()if state == 0 and key_down:key_down = Falseoled.clear()key_str=f'{state:>10}'oled.add_line('key pressed:', 1)oled.add_line(key_str, 3)oled.refresh()# To avoid outputting too quickly, add a short delaytime.sleep(0.05)  # except KeyboardInterrupt:# Restore basic data display on screenos.system("python3 /home/pi/software/oled_yahboom/yahboom_oled.py &")print("turned off.")#Release Object
del bot 

三、核心代码解析

 读取按键的按下状态我们通过读取0x0d地址的数据来判断:

read_data_array(0x0d, 1)

参数解释:读取按键的状态数据

  1. 0x0d:按键的地址,1:读取1个字节。
  2. 返回值:0:代表按键未按下,1:代表按键按下。
  3. 源码路径:project_demo/03.Basic_car_course

四、实验现象

        程序运行后,按下小车上的KEY1按键,程序出现提示如下图。


http://www.mrgr.cn/news/75211.html

相关文章:

  • 嵌入式课程day14-C语言指针进阶
  • Hbase Shell
  • 七大经典基于比较排序算法【Java实现】
  • spring中entity的作用
  • golang分布式缓存项目 Day2 单机并发缓存
  • 翼鸥教育:从OceanBase V3.1.4 到 V4.2.1,8套核心集群升级实践
  • 【MYSQL】数据库日志 (了解即可)
  • Linux 驱动
  • 机器学习(1)
  • [DB]
  • [ICML 2024]Learning High-Order Relationships of Brain Regions
  • 超全面!一文带你快速入门HTML,CSS和JavaScript!
  • pip install volcengine-python-sdk报错
  • 【027B】基于51单片机模拟电梯(点阵)【Proteus仿真+Keil程序+报告+原理图】
  • Spring Validation参数校验
  • CDA LEVEL 2考试大纲
  • 从源码一把聊清楚nacos2.x的事件驱动架构,从迷茫到精通!!
  • 【easily-openJCL】要尝试下用 显卡 做数据对称加密吗?
  • Netty之EventLoop自定义任务
  • 自动驾驶系列—从数据采集到存储:解密自动驾驶传感器数据采集盒子的关键技术
  • Ubuntu 的 ROS 操作系统 turtlebot3 导航仿真
  • 输出1~100内的所有偶数C++
  • SpringSecurity入门
  • ubuntu连接orangepi-zero-2w桌面的几种方法
  • 深入浅出C#编程语言
  • 速盾:高防 CDN 的缓存机制是什么?