这是我第一次使用树莓派,就想溜一下hcsr04模块,所以开整。这篇文章仅仅针对初学者的初次学习以及尝试。
当你已经拥有一块树莓派,并且成功烧写好了系统,进行了最基础的树莓派配置,并且拥有树莓派屏幕或者使用了SSH、VNC等可以进行远端操作时,你就可以进行下面的操作了。
1. 安装 wiringPI.h 库
先确认你的树莓派有没有安装GIT工具,可以在LX终端输入以下指令:
sudo apt-get install git-core
输入以上指令后可能需要输入【Y/n】,先观察显示内容的,如果已经 显示了安装最新版本,此时如果选择了Y就会报错,但是没有影响。
cd wiringPi
./build
然后应该就可以成功了,那么接下来进行测试
gpio -v
gpio readall
2. 编译出你需要的.cpp文件
其实你也可以安装一些其他软件敲代码,但是我现在就只会时用Geany
在/home/pi/TJQ/project
新建一个文件main.cpp
,然后就可以开始编译.cpp文件了。
#include <wiringPi.h> #include <iostream> #include <sys/time.h> #include <fstream> using namespace std; #define Trig 28 #define Echo 29 /****************************************** 函数: 定义Echo、Trig连接的IO的状态 参数: NULL 返回值: NULL *****************************************/ void ultraInit(void) { pinMode(Echo, INPUT); pinMode(Trig, OUTPUT); } /*×××××××××××××××××××××××*************** 函数: 测量距离 参数: NULL 返回值: 返回距离 ***************************************/ float disMeasure(void) { struct timeval tv1; struct timeval tv2; long start, stop; float dis; digitalWrite(Trig, LOW); delayMicroseconds(2); digitalWrite(Trig, HIGH); delayMicroseconds(10); //发出超声波脉冲 digitalWrite(Trig, LOW); while (!(digitalRead(Echo) == 1)) ; gettimeofday(&tv1, NULL); //获取当前时间 while (!(digitalRead(Echo) == 0)) ; gettimeofday(&tv2, NULL); //获取当前时间 start = tv1.tv_sec * 1000000 + tv1.tv_usec; //微秒级的时间 stop = tv2.tv_sec * 1000000 + tv2.tv_usec; dis = (float)(stop - start) / 1000000 * 34000 / 2; //求出距离 return dis; } int main(void) { float dis; //存放距离 if (wiringPiSetup() == -1) { printf("setup wiringPi failed !"); return 1; } ultraInit(); while (1) { dis = disMeasure(); if(dis<200) printf("distance = %0.2f cmn", dis); delay(1000); } return 0; }
3. 连接上你的hcsr04超声波模块
这个超声波模块的线需要按照代码的去接,以wiringPiTrig为标准的编码表,Trig接的28口,Echo接29口,GND接30口,Vcc接2口。
其实如果直接这么接,树莓派和超声波都有可能烧掉,所以有条件情况下一定要使用面包板接入电阻再运使用。
4. 使用编译器进行运行.cpp文件
在LX终端输入以下指令,即cd 文件路径
cd /home/pi/TJQ/project
下面的这一步是小写的LS,这一步是否运行问题不大,可以选择不运行
ls
下面的这一步必须有对wiringPi的这个声明,如果没有就会报错,下面的图就是没有声明的。
g++ -Wall -o main main.cpp -lwiringPi
./main
当你想结束识别的时候就按ctrl+c
进行终止运行
这里介绍是比较简单的那一种,如果需要写大工程,那很可能就得自己写一份makefile文件还有学习LX进行操作。如果有什么问题,请指出。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算