赞
踩
型号 |
Raspberry Pi 4B |
Raspberry Pi 3B |
1.5GHz,Quad-Core Broadcom BCM2711(Cortex A-72) |
1.2GHz,Quad-Core Broadcom BCM2837 (Cortex A-53) |
|
RAM |
1GB/2GB/4GB LPDDR4(取决于型号) |
1G LPDDR2 |
GPU |
500 MHZ Broadcom VideoCore VI |
250MHZ Broadcom VideoCrore IV |
无线 |
802.11.b/g/n/ac(2.4/5GHz) 1.2Gbps Bluetooth 5.0 |
802.11.b/g/n(2.4/5GHz) 150Mbps Bluetooth 4.1 |
以太网 |
Gigabit Ethernet |
10/100 Ethernet |
USB |
2个 USB 2.0 / 2个 USB 3.0 USB Type-c |
4 个 USB 2.0 Micro USB |
GPIO |
40个GPIO引脚 |
40个GPIO引脚 |
最大分辨率 |
2 x micro-HDMI ports, up to 4Kp60 supported |
1920x1080 |
电源 |
5V,3A DC |
5V,2.5A DC |
TdoList:上图是树莓派2B的引脚图,目前看画的最好,找到个人官网,但发现已经关闭。后续看能不能找到树莓派3B和4B的引脚图。更详细引脚说明参考Raspberry Pi GPIO Pinout。仅有GPIO.1(物理引脚12)支持 PWM_OUTPUT 模式,仅有GPIO.7(物理引脚 7)支持 CLOCK 输出模式。
特性 |
I2C |
UART |
SPI |
数据线数目 |
两根线:SDA(串行数据)和SCL(串行时钟) |
两根线:TXD(发送)和RXD(接收) |
四根线:MOSI(主机输出从机输入)、MISO(主机输入从机输出)、SCLK(时钟)、SS(片选) |
传输速率 |
最高可达3.4 Mbps |
通常情况下速率较低 |
速率高,可达数十Mbps |
通信方式 |
同步通信 |
异步通信 |
同步通信 |
设备地址 |
7位或10位设备地址 |
不需要地址 |
不需要地址 |
线长限制 |
通常不超过1米 |
通常不超过15米 |
通常不超过3米 |
多主机支持 |
支持多主机 |
不支持多主机 |
支持多主机 |
硬件成本 |
硬件成本低,只需要两个IO口 |
硬件成本低,只需要两个IO口 |
硬件成本较高,需要4个或更多IO口 |
适用场景 |
短距离通信 |
适用于点对点通信和低速数据传输 |
高速数据传输 |
常见应用 |
I/O扩展器、EEPROM、温度传感器等 |
终端设备、调试设备等 |
存储器、显示屏、WiFi模块等 |
sudo nano /etc/dhcpcd.conf
因此要改静态IP就要更改/etc/dhcpcd.conf文件。
在此文件后面添加
设置有线配置可以改成eth0(网卡用ifconfig来查询)
最后在shell中输入命令
sudo reboot now
sudo nano /etc/apt/sources.list
清华大学软件源stretch版本:
- deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi
- deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi
面包板
T型扩展板
彩虹排线(一般情况,彩虹线红色为电源线,黑色为地线。)
三者接线图如下(理论上T型板电源引脚与开发板电源对应。本次购买T型板,标红凸起朝向开发板,不要反接)
把树莓派接入公司网络,物理网口连接。配置一个无人使用的静态IP。
打开浏览器,输入公司网页登录IP;打开浏览器开发者模式,选择网络-》保留日志
找到login.php,复制-》复制为cURL(bash);
找到有自己用户名的登陆脚本,例如查找"xuwt",找到类似这段的登陆脚本:
- curl 'http://10.0.6.106/ac_portal/login.php' \
- -H 'Accept: */*' \
- -H 'Accept-Language: zh' \
- -H 'Connection: keep-alive' \
- -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
- -H 'Cookie: Sessionid=731386501-1' \
- -H 'Origin: http://10.0.6.106' \
- -H 'Referer: http://10.0.6.106/ac_portal/20200703125620/pc.html?template=20200703125620&tabs=pwd&vlanid=0&_ID_=0&switch_url=&url=http://10.0.6.106/homepage/index.html&controller_type=&mac=08-c0-21-04-9a-cb' \
- -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.67' \
- -H 'X-Requested-With: XMLHttpRequest' \
- --data-raw 'opr=pwdLogin&userName=xuwt&pwd=dea07317bd6e11b9e0&auth_tag=1689129415144&rememberPwd=1' \
- --compressed \
- --insecure
-
- curl 'http://10.0.6.106/ac_portal/login.php' \
- -H 'Accept: */*' \
- -H 'Accept-Language: zh-CN,zh;q=0.9' \
- -H 'Connection: keep-alive' \
- -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
- -H 'Origin: http://10.0.6.106' \
- -H 'Referer: http://10.0.6.106/ac_portal/20200703125620/pc.html?template=20200703125620&tabs=pwd&vlanid=0&_ID_=0&switch_url=&url=http://10.0.6.106/homepage/index.html&controller_type=&mac=08-c0-21-04-9a-cb' \
- -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' \
- -H 'X-Requested-With: XMLHttpRequest' \
- --data-raw 'opr=pwdLogin&userName=xuwt&pwd=510dbf5267f2d5bcafa047&auth_tag=1691130767238&rememberPwd=0' \
- --compressed \
- --insecure

编写一个启动脚本,需要联网时启动。或者把脚本路径写入到rc.local文件,实现树莓派启动后接入网络。有时可能联网失败,手动执行下脚本即可。
在树莓派基础实验中,主要利用的是wiringPi
库或者bcm2835
库。
Raspberry Pi | Wiring | Download & Install | Wiring Pi
WiringPi / WiringPi 镜像库 32位库
https://github.com/guation/WiringPi-arm64 64位库
目前网站已经不更新,但是参考文档较多。
WiringPi includes a software-driven PWM handler capable of outputting a PWM signal on any of the Raspberry Pi’s GPIO pins.(WiringPi包括一个软件驱动的PWM处理器,能够在Raspberry Pi的任何GPIO引脚上输出PWM信号。)
而wiringPi一般用于C++等平台
- #include "wiringPi.h"
- wiringPiSetup();
安装完wiringPi库后,输入gpio readall
可以查看树莓派详细引脚信息。
相关库函数:
硬件初始化函数原型 |
函数返回值 |
函数说明 |
int wiringPiSetup (void) |
返回:执行状态,-1表示失败 |
当使用这个函数初始化树莓派引脚时,程序使用的是wiringPi 引脚编号表。引脚的编号为 0~16需要root权限 |
int wiringPiSetupGpio (void) |
返回:执行状态,-1表示失败 |
当使用这个函数初始化树莓派引脚时,程序中使用的是BCM GPIO 引脚编号表。需要root权限 |
wiringPiSetupPhys(void) |
不常用,不做介绍 |
/ |
wiringPiSetupSys (void) ; |
不常用,不做介绍 |
/ |
通用GPIO控制函数原型 |
函数参数 |
函数说明 |
void pinMode (int pin, int mode) |
pin:配置的引脚mode:指定引脚的IO模式可取的值:INPUT、OUTPUT、PWM_OUTPUT,GPIO_CLOCK |
作用:配置引脚的IO模式注:只有wiringPi 引脚编号下的1脚(BCM下的18脚) 支持PWM输出;只有wiringPi编号下的7(BCM下的4号)支持GPIO_CLOCK输出 |
void digitalWrite (int pin, int value) |
pin:控制的引脚value:引脚输出的电平值。可取的值:HIGH,LOW分别代表高低电平 |
让对一个已经配置为输出模式的引脚,输出指定的电平信号 |
int digitalRead (int pin) |
pin:读取的引脚返回:引脚上的电平,可以是LOW HIGH 之一 |
读取一个引脚的电平值 LOW HIGH ,返回 |
void analogWrite(int pin, int value) |
pin:引脚 value:输出的模拟量 value - 占空比:0(始终断)到255(始终导通)之间。 |
模拟量输出。树莓派的引脚本身是不支持AD转换的,也就是不能使用模拟量的API,需要增加另外的模块 |
int analogRead (int pin) |
pin:引脚返回:引脚上读取的模拟量 |
模拟量输入树莓派的引脚本身是不支持AD转换的,也就是不能使用模拟量的API,需要增加另外的模块 |
void pwmWrite (int pin, int value) |
pin:引脚value:写入到PWM寄存器的值,范围在0~1024之间 |
输出一个值到PWM寄存器,控制PWM输出。pin只能是wiringPi 引脚编号下的1脚(BCM下的18脚) |
void pullUpDnControl (int pin, int pud) |
pin:引脚pud:拉电阻模式可取的值:PUD_OFF 不启用任何拉电阻。关闭拉电阻PUD_DOWN 启用下拉电阻,引脚电平拉到GNDPUD_UP 启用上拉电阻,引脚电平拉到3.3v |
对一个设置IO模式为 INPUT 的输入引脚设置拉电阻模式。与Arduino不同的是,树莓派支持的拉电阻模式更丰富。树莓派内部的拉电阻达50K欧姆 |
软件模拟PWM函数原型 |
函数参数 |
函数说明 |
int softPwmCreate (int pin, int initialValue, int pwmRange) |
pin:用来作为软件PWM输出的引脚initalValue:引脚输出的初始值pwmRange:PWM值的范围上限1-100建议100。返回值:0表示成功。 |
使用一个指定的pin引脚创建一个模拟的PWM输出引脚 其他IO口 |
void softPwmWrite (int pin, int value) |
pin:通过softPwmCreate创建的引脚value:PWM引脚输出的值 |
更新引脚输出的PWM值 |
bcm2835: C library for Broadcom BCM 2835 as used in Raspberry Pi
bcm2835库更加简洁,它只有两个源文件bcm2835.c和bcm2835.h。在使用过程中我们可以选择将其安装到树莓派中来使用,也可以选择直接将两个文件包含到我们的应用代码中。
BCM编码一般都在python库中使用:<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。