[学习笔记]树莓派
[TOC]
树莓派
常用指令
- 关机
sudo shutdown -h now
- 重启
sudo reboot
-
删除文件(即这个文件被删除)
- 单个删除:rm -f + 文件名
rm -f 2018_12_26.stderrout.log.060121612- 批量删除:rm -f + 文件关键字
rm -f rm stderrout.log # 执行完成后即将所有的名称包括stderrout.log的文件都删除(前面后面的*按照实际需要运用,这个*表示前面不管有任何东西都可以 -
CPU温度
vcgencmd measure_temp
-
文件传输
-
指令传输
scp C:\Users\20254\Downloads\assimp.whl laoair@192.168.137.222:/home/laoair/Download -
VNC传输
-
pc -> pi
- pc 的 vnc 窗口
-
pi -> pc
- pi 的 vnc 图标
- file transfer...
-
-
-
gpio
gpio readall
开始配置
-
树莓派烧录时设置为ssh密码登录
-
WIFI连接获取IP地址
- 使用CN信道,否则无法连接5G网络
-
拓展文件
-
首先终端输入
sudo raspi-config -
Advanced Option -> Expand Filesystem
-
最后重启
sudo reboot
-
-
SSH登录冲突
-
原因:这个ip在过去使用公钥进行登录,也就是在电脑日志中出现ip冲突
-
将相应的ip公钥清除即可
ssh-keygen -R 172.20.10.2
-
-
SSH免密登录
-
打开公钥授权登录
- 修改/etc/ssh/sshd_config
- 改为PubkeyAuthentication yes
-
制作密钥
ssh-keygen -t rsa ~/.ssh/id_rsa -
在vscode终端里 发送公钥 name.pub
cat C:/Users/20254/.ssh/id_rsa.pub | ssh laoair@192.168.137.151 'sudo cat >> .ssh/authorized_keys' -
或者直接创建新文件 .ssh/authorized_keys , 复制密钥内容进入
-
这是用户与用户之间的协议,也就是没有密钥的用户无法免密
- 给多个用户发送,一劳永逸
-
文件权限
-
为了让私钥文件和公钥文件能够在认证中起作用, 需要确保权限的正确性
-
对普通用户, 建议设置成600权限:
chmod 600 authorized_keys id_rsa id_rsa.pub -
对root用户, 建议设置成644权限:
chmod 644 authorized_keys id_rsa id_rsa.pub.
-
-
-
SSH 使用 Root 权限
sudo vim /etc/ssh/sshd_config 增加一行:PermitRootLogin yes sudo passwd root 最后 sudo service ssh restart -
VNC连接
-
树莓派原装的VNC驱动有问题,导致突然黑屏
-
建议卸载重装
sudo apt-get remove realvnc-vnc-server realvnc-vnc-viewer sudo apt-get update sudo apt-get install realvnc-vnc-server realvnc-vnc-viewer -
关于cannot currently show the desktop问题
-
打开 /boot/config.txt 添加以下内容
framebuffer_width=800 framebuffer_height=480 hdmi_mode=87 hdmi_cvt 800 480 60 6 0 0 0
-
-
树莓派默认分辨率720×480
-
-
换源(极其重要!源错了软件也会全部装错!)
-
静态IP(最好别用,免得换电脑后无法连接wifi)
-
Windows终端输入 ipconfig 查找 默认网关
-
树莓派当前 IP 后加上 /24
-
端口改为 wlan0
interface wlan0 static ip_address=192.168.137.151/24 static routers=192.168.84.71 static domain_name_servers= 192.168.84.71 -
-
如果要编译 , 需要开启交换空间加速
-
sudo nano /etc/dphys-swapfile -
编辑 CONF_SWAPSIZE 变量为2048或1024
-
-
opencv-python的选择
-
查看系统架构
uname -a -
查看python版本
python -
流程参考:树莓派安装基于python的opencv
-
关于开发
-
C语言
-
python
串口通信
-
树莓派默认映射关系
-
laoair@raspberrypi:~ $ ls -l /dev lrwxrwxrwx 1 root root 7 8月 13 07:34 serial0 -> ttyS0 lrwxrwxrwx 1 root root 5 8月 13 07:34 serial1 -> ttyAMA0 -
serial0 是GPIO引脚对应的串口,默认使用的是ttyS0 (mini串口)
-
serial1 是蓝牙对应的串口,默认使用的是ttyAMA0(硬件串口)
-
-
修改映射关系
-
sudo nano /boot/config.txt
-
在文件的末尾加上一行代码
- dtoverlay=miniuart-bt
-
-
此时,映射关系更改为
-
lrwxrwxrwx 1 root root 7 8月 13 07:34 serial0 -> ttyAMA0 lrwxrwxrwx 1 root root 5 8月 13 07:34 serial1 -> ttyS0
-
-
禁用串口的控制台功能
-
sudo systemctl stop serial-getty@ttyAMA0.service -
sudo systemctl disable serial-getty@ttyAMA0.service -
sudo nano /boot/cmdline.txt- 在文档中删除语句
console=serial0,115200
- 在文档中删除语句
-
-
编写代码
-
# -*- coding: utf-8 -* #! /usr/bin/env python import serial import time ser = serial.Serial('/dev/ttyAMA0', 115200) # 设置端口和波特率 if ser.isOpen == False: # 检查串口是否打开 ser.open() # 打开串口 ser.write(b"Raspberry pi is ready") try: while True: size = ser.inWaiting() # 获得缓冲区字符 if size != 0: response = ser.read(size) # 读取内容并显示 print(response) ser.flushInput() # 清空接收缓存区 time.sleep(0.5) # 软件延时 except KeyboardInterrupt: ser.close()
-
GIT仓库
-
全局设置
git config --global user.name "raspberrypi_laoair" git config --global user.email "2025406529@qq.com" -
克隆外部仓库
git clone (URL) -
本地使用
-
对应源码目录初始化,仓库本体位于.git
git init -
git 保存
git add . -
git 提交新版本
git commit -m "注释" -
git 回溯版本
git reset --hard HEAD^ git reset --hard HEAD~100 git reset --hard (commit-id) -
git 日志查询
git log git log --pretty=oneline git reflog
-
-
云端使用
- void