玩转树莓派入门系列——1.从裸机到连接

玩转树莓派入门系列——1.从裸机到连接

一、拆箱

一直都想体验下树莓派4b,这次直接购买了项目套装系列,包括了一大堆的传感器,图片中只包括树莓派硬件系列,包括,主板,外壳,风扇以及散热片
在这里插入图片描述
主板
在这里插入图片描述
首先贴上散热片,博通是祖传的火炉,加上树莓派4B性能很大幅度提高,所以发热很严重,所以最好贴上散热片
在这里插入图片描述
风扇也是散热的一大法宝,所以最好加上风扇,风扇红色线是正极,接在5V引脚上。黑色是负极,接地。查看主板的GPIO引脚。
在这里插入图片描述

在这里插入图片描述
最后拼接亚克力外壳,放进主板,就组装完成了。效果如图
在这里插入图片描述
接上Type-C电源,就可以正常启动了。
在这里插入图片描述

二、参数

在这里插入图片描述

从上图可以看出,树莓派4b主板上,提供了以下接口
a、CPU:Broadcom BCM2711,四核Cortex-A72(ARM v8)64位SoC @ 1.5GHz
b、内存:有2G,4G和8G LPDDR4-3200 SDRAM
c、网卡:2.4 GHz和5.0 GHz IEEE 802.11ac无线
d、有线网卡: 千兆以太网,POE以太网供电
e、USB接口: 2个USB 3.0端口;2个USB 2.0端口,USB管理芯片
f、3.5mm音频口:输出音频使用
g、CSI摄像头: 2通道MIPI CSI摄像机端口
h、电源输入: 通过USB-C连接器5V DC(最小3A )
i、DSI屏幕: 2通道MIPI DSI显示端口
j、蓝牙:提供蓝牙5.0BLE
k、GPIO引脚: Raspberry Pi标准40针GPIO接头连接器(与以前的板完全向后兼容)
l、内存卡插槽: Micro-SD卡插槽,用于加载操作系统和数据存储

工作温度: 0 – 50摄氏度环境

其他参数:
GPU:500 MHz VideoCore VI
最大分辨率:4k 60Hz+1080p 或 2*4k 30Hz
多媒体:H.265(4kp60解码),H264(1080p60解码,1080p30编码)OpenGL ES1.1,2.0,3.0 graphics

三、装系统

树莓派购买回来后,默认是没有系统的,所以必须给裸板安装上系统。

这里可以使用官方提供的烧写工具Raspberry Pi Imager,

或者直接下载镜像后用win32diskimager进行烧写

Raspberry Pi Imager下载链接:https://www.raspberrypi.org/downloads/

Raspbian系统镜像下载链接:https://www.raspberrypi.org/downloads/raspbian/

1.格式化SD卡

将SD卡插入电脑中,用SD Card For matter进行格式化
在这里插入图片描述

​​​​​​​​​​​​​​

2.烧写镜像

从官网上下载最新的镜像后,用win32diskimager进行烧写
在这里插入图片描述

3.等到提示成功后,拔出sd卡,插入到树莓派的SD卡槽中就可以启动了。

三、连接

树莓派提供多种连接操作的方式,比如

1.用micro HDMI接入

树莓派4b 提供两个高清4K/60Hz的micro HDMI接口,如果有micro HDMI接口,或micro HDMI转接口,可以连接到屏幕上进行显示。
在这里插入图片描述

2.远程桌面连接

可以通过在树莓派系统中,安装远程桌面xrdp插件,那么就可以在Windows端,通过远程桌面登录树莓派桌面了

apt install xrdp

安装完后,就可以在windows端,通过远程桌面登录。

默认账号密码是:pi/raspberry,当然你也可以和linux下操作一样,创建自己的账号和密码
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.无线网络WIFI

在有显示器的情况下,直接就可以通过终端或桌面对wifi进行配置
在没有显示器的情况下,有两种情况,一种是可以使用终端,一种是没法登陆终端

a.有显示器的情况

通过GUI为树莓派设置wifi是最简单的方法,在桌面右上角选择wifi图标,进去后选择对应的wifi输入密码进行配置。
在这里插入图片描述

b.可以使用终端的情况

修改wifi配置文件

vi /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="SSID"
psk="Password"
}

之后重启端口即可

ifconfig wlan0 up
ifconfig wlan0 down
c.无法使用的终端

将SD卡插入电脑,在SD卡的boot分区,新建wpa_supplicant.conf 文件,并且配置 WiFi 的 SSID 和密码

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="SSID"
psk="密码"
}

4.有线网络

自动获取:在局域网中,树莓派默认是有线网卡使能的,只需用网线接入到局域网中,即可以自动获取IP
手动获取:如果树莓派与电脑直连,则配置vi /etc/dhcpcd.conf
在后面添加

interface eth0
static ip_address=xxx.xxx.xxx.xxx/24  //设置IP地址
static routers=xxx.xxx.xxx.xxx  //设置默认网关
static domin_name_servers=xxx.xxx.xxx.xxx  //设置DNS服务器域名地址
之后,再把电脑网卡设置为同一个网段即可以互通。

5.ssh登录

树莓派默认是没有开启vnc和ssh的。
有两种情况,一种是可以操作桌面,一种是没法操作桌面

a.可以操作桌面

在树莓派的桌面界面中配置,点击开始菜单(左上角)——Preferences(首选项)——Raspberry Configuration(树莓派配置)——Interface(接口)中,可以选择开启SSH
在这里插入图片描述
在这里插入图片描述

b.没法操作桌面

将SD卡插入电脑,在SD卡的boot分区,新建ssh文件即可。

通过ssh登录,首先要给树莓派一个IP地址,通过以上方法获取到相应的IP地址后,就可以用ssh进行登陆了,默认的账号密码是:pi/raspberry,同样的,如果要想创建自己的账号密码,就如在linux上操作一样,使用useradd,passwd等操作命令。
在这里插入图片描述

6.Uart连接

串口线的VCC不接,GND接14号GND,RXD接8号TXD,TXD接10号RXD,将usb那头插入电脑(见上面GPIO引脚图定义)

a.没法操作系统

将系统镜像写入SD卡后,进入boot盘,编辑config.txt文件,在文件最后添加“enable_uart=1”,然后保存,将SD卡插入树莓派

b.进入系统后

修改文件/boot/config.txt
在文件最后添加“enable_uart=1”。

四、常用配置(更新中)

1.修改root远程ssh登录权限

vi /etc/ssh/sshd_config		#修改sshd_config文件
PermitRootLogin yes 		#新增RermitRootLogin权限

2.用户+密码操作

树莓派默认账户密码是:pi/raspberry

usermod -l new_name	pi				#修改pi用户名
groupmod -n new_name pi				#修改pi用户组名
mv /home/pi /home/new_name			#修改pi的home目录
usermod -d /home/new_name new_name	#修改/etc/passwd中的新用户home目录地址

或者

```bash
ps -aux | grep pi					#查看所有pi的进程号
kill -9 xxxx						#杀死所有pi的进程
deluser pi							#删除pi用户
adduser new							#创建new用户

#新用户修改权限,修改/etc/sudoers文件
pi ALL=(ALL) NOPASSWD: ALL
#改为
yourname ALL=(ALL) NOPASSWD: ALL #此操作需要查看配置文件是否限制了用户权限

#修改账号密码
sudo passwd new_name

#或者使用adduser/deluser等命令
adduser new_name
vi /etc/sudoers
new_name ALL=(ALL:ALL) ALL
deluser old_name


### 2.换源+时区

```bash
#备份源文件
cp /etc/apt/sources.list /etc/apt/sources.list.bak

#修改apt源
vi /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi

#修改系统源
vi /etc/apt/sources.list.d/raspi.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

#更新源
apt update
apt upgrade

#查看时区
date

#修改时区
dpkg-reconfigure tzdata				#选择Asia/Shanghai

3.设置固定IP

a.固定无线IP
vi /etc/dhcpcd.conf

修改以下注释为无线IP局域网
在这里插入图片描述
当然,interface应该是wlan0而不是eth0

b.固定有线IP

如3.a修改无线IP一样,只是网卡名当然修改为eth0的有线网卡名,手动设置静态IP一般只用于和电脑直连的情况,如果接入交换机等二三层设备,一定要选择dhcp,要不分配不到IP无法上网。

4.新增WIFI连接

a.图形界面操作

很容易的操作,就和windows上一样,右上角找到wifi图标,选择要连接的wifi,输入密码登录

b.没法操作桌面

这里有两种情况,一种是无法使用命令行,二是可以使用命令行
如果可以使用命令行的时候

vi /etc/wpa_supplicant/wpa_supplicant.conf

#添加以下内容
network={
ssid="WiFi的SSID1"
psk="WiFi密码1"
}
network={
ssid="WiFi的SSID2"
psk="WiFi密码2"
}

如果无法使用命令行的时候
将SD卡插入电脑,在boot分区下,新建 wpa_supplicant.conf 文件,conf文件内容如下

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="WiFi的SSID1"
psk="WiFi密码1"
}
network={
ssid="WiFi的SSID2"
psk="WiFi密码2"
}

之后将SD卡插入树莓派后重启,就可以自动连接上该WIFI了。

5.sd卡扩容

树莓派上插了16G的SD卡,但有效空间只用了8G,操作系统占一下,就所剩不多了。。
运行 sudo raspi-config,在选项中找到 Expand Filesystem 这个选项,设置一下,再重启就可以了

6.安装samba

安装samba服务

apt install samba samba-common

打开/etc/samba/smb.conf位置文件,在最末尾加上

[incubator]
   comment = Share
   path = /
   browseable = yes
   writable = yes

设置账号密码

smbpasswd -a incubator

五、开发环境配置

一般常用的开发环境为C语言或Python,对应的,C语言开发常用的开发库为WiringPi,Python开发常用的库是PythonGPIO

1、WiringPi

a、安装
apt update
apt upgrade
apt install git
git clone git://git.drogon.net/wiringPi
cd wiringPi
b、测试
./build
gpio -v	

有输出版本代表成功。

c、常用命令
gpio readall 	//查看gpio管脚图
gpio -v			//查看版本
d、常用函数
函数作用
int wiringPiSetup (void)初始化引脚
void pinMode (int pin, int mode)配置引脚的IO模式
void digitalWrite (int pin, int value)让对一个已近配置为输出模式的 引脚 输出指定的电平信号
int digitalRead (int pin)读取一个引脚的电平值 LOW HIGH
void pullUpDnControl (int pin, int pud)对一个设置IO模式为 INPUT 的输入引脚设置拉电阻模式
e、编译

动态库编译,在gcc编译后链接上库,加上参数 -lwiringPi

2、PythonGPIO

a、安装
apt update
apt upgrade
apt install get
wget http://raspberry-gpio-python.googlecode.com/files/RPi.GPIO-x.x.x.tar.gz
tar zxvf RPi.GPIO-x.x.x.tar.gz
cd RPi.GPIO-x.x.x
sudo python setup.py install
b、导入库
import PRi.GPIO as GPIO
import time
c、GPIO输出
GPIO.setmode(GPIO.BCM)
GPIO.setup(11, GPIO.OUT)

六、系统备份

树莓派没有系统恢复这个操作,一旦断电或者突发情况,可能会导致系统丢失,如果想恢复之前的系统,则需要备份系统。

方法一

可以使用Win32diskimager工具进行系统备份,创建一个img文件后,选择读出(read)即可。
在这里插入图片描述
之后可以用这个img文件,再通过Win32diskimager工具写入,即可恢复之前的系统镜像。

方法二

使用SD卡插入读卡器,再接入到树莓派的usb接口上,
使用命令

sudo dd bs=4M if=/dev/mmcblk0 of=/dev/sda

如果想显示进度,执行

watch -n 5 pkill -USR1 ^dd$

在这里插入图片描述

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在将bin文件从Linux CPU0发送到裸机CPU1时,需要使用一些外设接口来实现通信。以下是一个示例代码,演示了如何通过串口将bin文件从Linux CPU0发送到裸机CPU1: CPU0发送代码: ```c #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <termios.h> #define FILE_SIZE 4096 #define SERIAL_PORT "/dev/ttyUSB0" int main(int argc, char *argv[]) { int fd; char *src; char buf[1]; int n; // 打开bin文件 if ((fd = open("test.bin", O_RDONLY)) < 0) { perror("open"); exit(1); } // 读取bin文件内容 src = malloc(FILE_SIZE); read(fd, src, FILE_SIZE); // 打开串口 struct termios serial; if ((fd = open(SERIAL_PORT, O_RDWR | O_NOCTTY)) < 0) { perror("open"); exit(1); } tcgetattr(fd, &serial); cfsetispeed(&serial, B115200); cfsetospeed(&serial, B115200); serial.c_cflag |= (CLOCAL | CREAD); serial.c_cflag &= ~PARENB; serial.c_cflag &= ~CSTOPB; serial.c_cflag &= ~CSIZE; serial.c_cflag |= CS8; serial.c_cflag &= ~CRTSCTS; tcsetattr(fd, TCSANOW, &serial); // 发送bin文件内容到串口 for (int i = 0; i < FILE_SIZE; i++) { buf[0] = src[i]; n = write(fd, buf, 1); if (n != 1) { perror("write"); exit(1); } } // 关闭文件和串口 close(fd); free(src); return 0; } ``` 裸机CPU1接收代码: ```c #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <termios.h> #define FILE_SIZE 4096 #define SERIAL_PORT "/dev/ttyUSB0" int main(int argc, char *argv[]) { int fd; char *dst; char buf[1]; int n; // 打开串口 struct termios serial; if ((fd = open(SERIAL_PORT, O_RDWR | O_NOCTTY)) < 0) { perror("open"); exit(1); } tcgetattr(fd, &serial); cfsetispeed(&serial, B115200); cfsetospeed(&serial, B115200); serial.c_cflag |= (CLOCAL | CREAD); serial.c_cflag &= ~PARENB; serial.c_cflag &= ~CSTOPB; serial.c_cflag &= ~CSIZE; serial.c_cflag |= CS8; serial.c_cflag &= ~CRTSCTS; tcsetattr(fd, TCSANOW, &serial); // 接收bin文件内容 dst = malloc(FILE_SIZE); for (int i = 0; i < FILE_SIZE; i++) { n = read(fd, buf, 1); if (n != 1) { perror("read"); exit(1); } dst[i] = buf[0]; } // 写入bin文件 int bin_fd; if ((bin_fd = open("test.bin", O_CREAT | O_WRONLY | O_TRUNC, 0666)) < 0) { perror("open"); exit(1); } write(bin_fd, dst, FILE_SIZE); // 关闭文件和串口 close(bin_fd); close(fd); free(dst); return 0; } ``` 这个示例代码中,CPU0打开bin文件,将其读取到内存中,并通过串口将其发送到裸机CPU1。裸机CPU1接收串口数据,并将其写入到新的bin文件中。需要注意的是,这里使用了Linux系统提供的串口驱动来实现通信,所以这个代码只能在Linux平台上运行,如果在其他平台上运行,需要使用其他的外设接口来实现通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值