一.平台介绍
OrangePi开发板不仅仅是一款消费品,同时也是给任何想用技术来进行创作创新的人设计的。它是一款简单、有趣、实用的工具,你可以用它去打造你身边的世界。
特性
- CPU 全志H616四核64位1.5GHz高性能Cortex-A53处理器
- GPU MaliG31MP2 SupportsOpenGLES1.0/2.0/3.2、OpenCL2.0
- 运行内存 1GBDDR3(与GPU共享)
- 存储 TF卡插槽_课程配套硬件16G,测试128G可支持、2MBSPIFlash
- WIFI+蓝牙 AW859A芯片、支持IEEE802.11a/b/g/n/ac、BT5.0
- 视频输出 MicroHDMI20a
- 电源 USBTypeC接口输入
- 外设 带有I2Cx1、SPIx1、UARTx1以及多个GPIO口
- 电源指示灯和状态指示灯
二.基于官方外设开发
2.1 wiringPi外设SDK安装
git clone https://github.com/orangepi-xunlong/wiringOP //下载源码
cd wiringOP //进入文件夹
sudo ./build clean //清除编译信息
sudo ./build //编译
通过windows浏览器打开https://github.com/orangepi-xunlong/wiringOP
下载压缩包
把压缩包通过xterm传到开发板
解压 unzip xxx.zip
cd xxx
sudo ./build
gpio readall
验证指令:gpio readall,结果如下方所示:
2.2基本IO口应用——蜂鸣器开发
-
代码:
#include <stdio.h> #include <wiringPi.h> #include <unistd.h> #define BEEP 0 //设置针脚0为蜂鸣器的控制引脚 int main (void) { wiringPiSetup () ;//初始化wiringPi库i pinMode (BEEP, OUTPUT) ;//设置IO口的输入输出,输出 while(1){ //sleep(1); usleep(100000); digitalWrite (BEEP, HIGH) ; //设置IO口输出低电平,蜂鸣器响 //sleep(1); usleep(100000); digitalWrite (BEEP, LOW) ; //设置IO口输出低电平,蜂鸣器响 } return 0; }
-
简单编译shell脚本来gcc编译函数
./build beep.c gcc $1 -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt shell脚本处理参数,可以通过$?来处理,这里的$1是要编译的文件
2.3超声波测距
-
测距原理基本说明
超声波测距模块是用来测量距离的一种产品,通过发送和收超声波,利用时间差和声音传播速度, 计算出模块到前方障碍物的距离。
-
超声波模块HC-SR04
!
-
时序
-
时间函数
gettimeofday
是一个在 Unix 及类 Unix 系统(如 Linux)中广泛使用的系统调用,它的目的是获取当前系统的日期和时间,精确到微秒级别。这个函数允许程序获取自1970年1月1日以来的秒数(即Unix时间戳)以及额外的微秒部分。这对于需要高精度时间测量的应用特别有用,例如在性能测试、计时、实时系统或是任何需要精确时间管理的场景。#include <sys/time.h> int gettimeofday(struct timeval *tv, struct timezone *tz); //结构体: struct timeval