| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 第二篇 树莓派简单外设 -> 正文阅读 |
|
[嵌入式]第二篇 树莓派简单外设 |
上篇补充:仅通过ssh登录树莓派(由于USB转TTL模块烧坏了,买了新的依旧无法串口登录,而且Wifi模块好像也坏了。。。。只能使用如下方法登录,并让树莓派能够访问外网)①一条这样的线,一端连树莓派网口,一端连电脑? ②电脑连接wifi(手机热点也可),右键网络图标 ,打开“网络和Internet”设置,点击高级网络设置里的“更改适配器选项”,,选择正在使用的那个适配器(这里是WLAN) ③树莓派开机,等待网口灯亮后。打开Advanced IP Scanner(可以扫描本机网段下所有设备IP的工具)?,或win+R,输入cmd,打开命令提示符,输入arp -a命令。找到MAC(物理地址)为B8:27:EB开头的设备 ④复制树莓派IP,打开Xshell或putty等工具,登录到树莓派? ?进入本篇主题:基于wiringPi库的感应开盖垃圾桶前面做过arduino板的版本,现改用树莓派,虽然有些大材小用,但目的在于了解wiringPi下树莓派外设的基础使用。(以下内容学习参考了大量的文章,非原创) 模块:HC-SR04超声波模块? ?SG90舵机 树莓派的接口: ?一、HC-SR04超声波测距原理和代码实现原理:(常见于中学物理题,霍霍了多少孩纸) GPIO4向 Trig?引脚发送一个 10us 的脉冲信号,开始发送超声波,并把 Echo置为高电平,发射超声波之后,与接收到传回的超声波之前,Echo这个响应引脚会一直呈现高电平,然后准备接收返回的超声波。等到超声波撞到障碍物弹回来并被模块接收,Echo引脚置为低电平。 PS:实际编写代码时,需注意时间是微秒级别,转换单位时避免精度丢失?。 超声波测距demo:?
二、关于SG90舵机 原理:不同于HC-SR04超声波模块,SG90舵机的控制信号是PWM信号,利用其占空比的变化,改变舵机转动的角度。如下图(来源于百度)
通过控制线发送一个PWM信号可以控制舵机转动到一个角度,这个PWM信号必须周期性发送,否则舵机就会转到一个任意的角度。通常,控制舵电机的PWM信号周期为20ms(50HZ),宽度在0.5ms-2.5ms之间(对应最小角度和最大角度)。 C写的主要了解到的方式有三种:①硬件PWM;②软件PWM;③高低电平模拟。 什么是PWM:(来源于百度) ????????树莓派或者是其他单片机一个引脚只能输出两个特定的电平——高电平和低电平。在树莓派上大多的GPIO都是高电平3.3V,低电平0V。但如果想要输出3.3~0V之间的电压怎么办呢?比如输出一个2V?树莓派(以及stm32,C51之类的)是没有办法直接设置引脚的电平来达到输出2V的电平值。那么就要使用PWM来输出介于低电平和高电平之间的电压。 ????????那么PWM是怎么做到的呢?很简单:我们不能直接输出2V,那我们换一种方式——通过给引脚一个周期脉冲,然后看这个脉冲的高电平部分占整个脉冲的比例,从而计算这个输出的电平。举个栗子?:比如我给出一个周期为20s的周期脉冲,然后让其中的高电平为12s,这样的话输出的电平就是(12/20)*3.3V≈2V,那么2V就输出了?。 也就是说,PWM是根据周期脉冲中高电平所占的比例来确定GPIO输出的电压的。这里,高电平所占周期脉冲的周期的比例称为占空比。 在wiringPi中提供的关于硬件PWM的通用GPIO函数有:
参数解释:pin:配置的引脚????????mode:指定引脚的IO模式(PWM_OUTPUT为PWM输出模式) 注意:只有wiringPi 引脚编号下的1脚(BCM下的18脚) 支持PWM输出
?参数解释:pin:引脚???????????????value:写入到PWM寄存器的值,范围在0~1024之间。 ?注意:pin只能是wiringPi 引脚编号下的1脚(BCM下的18脚) (可以利用PWM做LED的呼吸灯实验) 在wiringPi中提供的关于软件PWM的通用GPIO函数有:? 软件PWM驱动舵机的demo:
在做开盖垃圾桶过程中的问题: ①供电不足可以会导致程序运行时死机,或者模块工作不正常,建议使用稳定电源供电(充电宝、符合规格的充电适配器等),树莓派供电正常时,红灯常亮。 ②查找资料时,有说法树莓派PWM不稳定,会导致舵机抖动的问题(其中有建议使用pigpio库可解决,附网址:pigpio library),可能命令无法下载到,可留言获取。 ③单个模块工作正常,组合一起就不正常工作,或死机等问题。原因还是供电不足。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/30 8:54:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |