引脚复用配置工具
虽然从硬件上看,扩展出来的引脚只有40个,不过大部分引脚还可以配置成多种功能,这样延伸出来变化可就多了,那如何配置引脚的不同功能呢?
我们可以使用旭日x3派中提供的srpi-config工具进行配置。
直接在终端中输入这个指令,就可以看到这样的窗口,okay配置对应管脚为专用功能,disabled配置对应管脚为gpio模式,按照自己的需要进行配置即可,配置完成后重启才会生效。
了解了gpio的概念,接下来我们就要开始编程啦。
数字输入编程
首先我们来看下最基本的数字输入测试,读取一个按键的状态。
硬件接线
我们将按键的一边连接到旭日x3派的38号引脚上,这是一个gpio的接口,另一边连接到39号引脚,也就是gnd。
原理很简单,按键没按下时,导线是断开的,gpio是默认的状态,按键按下后,导线就会导通,gpio的状态变成了gnd。
这样,我们就可以通过电平的变化,知道按键的状态啦。
运行例程
我们不妨来运行一下,看下实际效果是不是这样。
$ sudo python3 simple_input.py我们将一个按键开关接到对应的管脚上, 然后连接到旭日x3pi当中,运行刚才的程序。之后我们按下或是松开按键时,他都会打印出对应的电平变化。
按下显示的就是low,也就是低电平,松开就是high,也就是高电平。
代码解析
数字输入的功能实现啦,我们来看下代码是如何实现的。
simple_input.py:
#!/usr/bin/env python3import hobot.gpio as gpioimport time# 定义使用的gpio通道为38input_pin = 38 # board 编码 38def main(): prev_value = none # 设置管脚编码模式为硬件编号 board gpio.setmode(gpio.board) # 设置为输入模式 gpio.setup(input_pin, gpio.in) print(starting demo now! press ctrl+c to exit) try: while true: # 读取管脚电平 value = gpio.input(input_pin) if value != prev_value: if value == gpio.high: value_str = high else: value_str = low print(value read from pin {} : {}.format(input_pin, value_str)) prev_value = value time.sleep(1) finally: gpio.cleanup()if __name__=='__main__': main()我们在python中需要引入x3pi的gpio库,从而使用对应的gpio功能。主函数里首先需要定义了一个变量来存储这个管脚的电平信号。
进行初始化,设置管脚的编码模式为board模式,之后定义输入用的管脚,这里使用的是board编码,因为他是第38个管脚,所以为38号。之后的话就会进入到循环当中,这样的一个函数就可以读出当前的电平值。
没有按下按键的时候,38管脚和gnd是断开的,他就是高电平,按下按键时,就和gnd导通了,这个管脚就会编程低电平。
如果电平值和上一次存储的不一致,后面的判断就会判断出是升高还是降低,最后会把结果打印出来。松开按键时同理。
正面开战:今日头条将封禁微信、微博等账户推广|一句话点评热点芯闻
华为发布2020年年度报告:业绩影响主要来自美国“封堵”措施
区块链时代应该拥有怎样的投资思维
钳位二极管和稳压管的区别是什么
全屏指纹 双卡双待或将在iPhone8发布时上线?
地平线机器人数字输入编程
元宇宙的发展是大势所趋吗
FW工程师是干什么的
2016工业机器人亮点频现 3C与汽车成主战场
均联智行获颁TUV南德ISO/SAE 21434 汽车网络安全流程认证证书
联想宣布将于8月30日正式推出新一代的小新Air 14笔记本
在自动驾驶中如何克服恶劣天气?
适合于给NFC模块供电的低EMI噪声升压变换器
博通推出具有VersaLineTM数字预失真校正技术的BCM51030设备
怎么选合适的石英晶体滤波器
Diodes公司推出完整的PCIe 5.0产品组合
浪潮信息存储产品销售额和装机容量实现逆势增长
VR心理应用领域的科学实践和商业运用
光敏传感器的工作原理
没有对比就没有伤害!魅蓝5S颜值高于红米Note4x,那么关于硬件呢?