树莓派,于嵌入式攻城师,如雷贯耳之大名;
前些日 review ARM 汇编,用 qemu 模拟的树莓派 4,部分异常指令 (数据对齐,timer 中断触发等) 在 qemu 无法真实模拟,遂想在真机耍玩一把。无奈电子玩具近期缺货异常,一拖再拖尔。
机遇巧合,一网友分享的驴车项目(https://www.dfrobot.com.cn/),基于树莓派实现;闷鳖多时对无人驾驶的热忱正无处释放,果断第一时间加入;入手整车一台,昊男兄在微雪搞了个团购,价格的确实惠,这个实惠嘛,服务就... 还有待加强;当然啦,缺少支持的好处就是,更容易自力更生 :joy:,此处先说说树莓派,驴车后续玩上手再谈;
注:由于树莓派资料,无论软硬件,网上都甚多,这里不会面面俱到(也实在无足够时间),仅根据自己耍玩过程,做个记录,望理解。
首先,参见树莓派的真容:
你没看错,这就是所有物件,哈哈,够简略把;
奈雪套件里就是树莓派板,一个读卡器(自己配 sd 卡的话,建议 16 以上,因为官方的系统解压后都有 8 个 G), 外加一个树莓派摄像头(200w 像素);
第一个小目标,让树莓派跑起来,并安装好必要的开发工具包;
注:这里 PC 机用的 windows10,其它 ubuntu/Mac 可,看个人喜好及方便;
烧录树莓派镜像
step1: 上树莓派官网下载镜像:
https://www.raspberrypi.com/software/
我选择的全功能版本,解压后近 8 个 G;
step2. 下载烧录软件 balena:
按提示先后 选择镜像 , 选择 SD 卡 (注意别算错盘,否则后果是灾难性的), 烧录 即可;
如果校准不成功,就重新烧录一下;
step3 安装硬件
1. 安装镜像
烧录好镜像后,将 sd 卡取下来,插入树莓派卡槽;
2. 电源
树莓派可以用 type-C USB 供电,或者通过扩展 IO 引出跳线 5V 供电;网上有朋友分享,最好电流 3A 以上;
手头刚好有某手机 67W 快充头,很好满足供电需求;
3. 交互
如果你手上有 HDMI 线及显示器,USB 鼠标键盘等,那全接上,按界面提示操作即可;要是没这些,咋玩呢?
是时候公布一个违背祖宗的秘方了:
这个神器,电子攻城师绝不会陌生,哈哈;
注意,树莓派直接将 uart0 通过 IO 口引出了,这里要配置 USB 转 TTL 电平的串口线;
我这里通过拨码配置了 TTL 电平,引三根线即可:GND,RX,TX;
从网上找了一个树莓派 4B 管脚图
分别对接树莓派的扩展口的 6 /8/10 脚,注意 TX/RX 交叉接;
接好电源和串口后如下图
step4: 配置串口
补充:在烧录好的 SD 卡分区,打开 boot 目录下的 config.txt 文件,在最后加一行
enable_uart=1
开启树莓派串口 0 支持
PC 上位机用普通串口工具,打开 USB 串口,配置通用 115200 波特率,接通电源,电源旁灯开始闪烁,即开始从 SD 卡读数据开始启动了;
很快就来到了熟悉的配方:
输入默认用户名密码:pi/raspberry
即成功登录系统;
看来树莓派系统已经跑起来了,but 这就够了吗?Of course not!
树莓派的世界还没打开呢,下面开始配置软件。
step5: 配置网络,打通 WIFI
1. 配置 WIFI
方法 1:
在 SD 卡的 Boot 分区目录下,新建 wpa_supplicant.conf 文件,并且配置 WiFi 的 SSID 和密码,树莓派启动后会自动读取 wpa_supplicant.conf 文件配置连接 wifi 设备
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="WiFi-A"
psk="12345678"
key_mgmt=WPA-PSK
priority=1
}
network={
ssid="WiFi-B"
psk="12345678"
key_mgmt=WPA-PSK
priority=2
scan_ssid=1
}
priority 表示优先级,值越大优先级越高;
方法 2:
直接在串口登录,创建 wpa_supplicant.conf 文件,然后重启;
我实际配置如下:
pi@raspberrypi:~$ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN
network={
ssid="leon"
psk="helloworld"
key_mgmt=WPA-PSK
}pi@raspberrypi:~$
sudo vim.tiny /etc/wpa_supplicant/wpa_supplicant.conf
2. 修改 DNS 配置
sudo vim.tiny /etc/resolvconf.conf
#name_servers=127.0.0.1
改为
name_servers=8.8.8.1
保存退出;
修改 /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
重启后,树莓派已经自动联网;
ifconfig
wlan0 即为 wifi 接口;
若没有串口,此处可以在路由器后台查询树莓派 IP,或者用局域网工具扫描也行;
3. 配置 ssh
在 SD 卡的 boot 分区下,创建一个名为 ssh 的空文件;启动后树莓派自动开启 ssh 服务
在上位机通过任何 ssh 工具都可以访问;
默认初始账号依然是:pi/raspberry
网络通了,从现在开始可以舍弃串口;后续都用 ssh 访问;但还是没有看到树莓派界面,下面通过 VNC 来实现;
补充: 其实只要镜像烧录 OK,打通 wifi, 成功开启 ssh;不用串口,也是可以完成所有配置的。
4 配置 VNC 远程访问
方法 1:安装 xrdp 服务
sudo apt-get install xrdp
sudo service xrdp restart
不通的话,reboot 一下;
方法 2:使能树莓派自带 VNC
sudo raspi-config
依次选择 Interface Options->P3 VNC
依次确认退出后 VNC 开启;
PC 端通过 VNC 客户端访问,这里用 windows 自带的 mstsc 访问
终于,看到界面了 :joy:,:facepunch:
下面就按界面提示配置即可;
step6: 升级树莓派系统到最新
最后,把树莓派给升级下,就用自带源,速度还不错;
方法同 ubuntu
sudo apt update
sudo apt upgrade