树莓派全网最全安装测试(包括系统,显示器,灯,舵机灯测试)

news2024/11/26 2:36:36

1.下载ubuntu

https://cdimage.ubuntu.com/releases/20.04.5/release/

image-20241013225649936

2.格式化和烧录镜像源

image-20241013225821098

3.修改自己的wifl sd卡直接放回树莓派

image-20241013225954094

4.IP地址

https://www.bilibili.com/video/BV1YD421H7zF/?buvid=XU5DB1750D0CD69E8D83AEE359EB6582A7396&is_story_h5=false&mid=MJB9zT8GFG3V9L7c0g8cfA%3D%3D&plat_id=147&share_from=ugc&share_medium=android&share_plat=android&share_session_id=f1f38edf-f3aa-4896-9821-1ef82dcac76c&share_source=COPY&share_tag=s_i&timestamp=1713572384&unique_k=TdOnWq9&up_id=250616280&vd_source=39ef28844a365fefcfd2f535a19e3c25

image-20241013230346797

image-20241013230145657

image-20241013230304272

image-20241013230209200

5.ssh连接

1.直接连接显示器和键盘

  • 登录后,使用以下命令重置密码:

    passwd
    
  • 输入新密码并确认。

image-20241013231019275

6.vnc连接

步骤 1: 安装 VNC 服务器

Ubuntu 20.04 及以上版本通常会预装 VNC 服务器(如 tigervnc),但如果没有,您可以使用以下命令进行安装:

sudo apt install tightvncserver

步骤 2 启动 VNC 服务器

在终端中输入以下命令来启动 VNC 服务器:

vncserver

停止 VNC 服务器:

vncserver -kill :1

image-20241013231119848

image-20241013231133554

10.19

windows列出局域网中所有已知的 IP 地址和 MAC 地址

arp -a

pi root123

1.4b 64位系统

image-20241019235404130

2.ssh 连接

image-20241019235420007

3.vnc连接

https://blog.csdn.net/Daiwood/article/details/139565558

sudo raspi-config

4.换源 https://blog.csdn.net/KnightJoker0/article/details/130530041

要更改镜像源,您可以编辑 /etc/apt/sources.list 文件,例如:

Sh深色版本

sudo nano /etc/apt/sources.list

然后替换为类似下面的内容(以清华大学镜像站为例):

深色版本

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

当您尝试使用清华大学镜像站时遇到的错误表明APT无法验证存储库的签名,因为缺少公钥。这个问题可以通过导入缺失的公钥来解决。以下是处理该问题的步骤:

  1. 获取并导入公钥

    首先,您需要下载并导入缺少的公钥。可以使用 apt-key 命令来完成这个操作。但是需要注意的是,apt-key 在某些新版本的 Debian 和基于 Debian 的系统中已经被弃用,建议使用 apt install --allow-downgrades 或者 gnupg 相关命令来管理密钥。

    通常情况下,您可以这样做:

    Sh深色版本

    sudo apt-get install -y gnupg
    wget -qO - https://mirrors.tuna.tsinghua.edu.cn/gpgkey/public_key_9165938D90FDDD2E.asc | sudo gpg --dearmor -o /usr/share/keyrings/public_key_9165938D90FDDD2E.gpg
    

    然后,您需要修改 /etc/apt/sources.list 或者创建一个新的 .list 文件在 /etc/apt/sources.list.d/ 目录下,并且引用刚才导入的密钥环。例如:

    Sh深色版本

    sudo nano /etc/apt/sources.list.d/tsinghua.list
    

    文件内容应该如下:

    深色版本

    deb [signed-by=/usr/share/keyrings/public_key_9165938D90FDDD2E.gpg] http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
    # Uncomment line below then 'apt-get update' to enable the recommendation archive.
    # deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster-free main
    deb-src [signed-by=/usr/share/keyrings/public_key_9165938D90FDDD2E.gpg] http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
    
  2. 更新软件包列表

    导入公钥后,您可以再次运行 sudo apt update 来更新软件包列表。

请注意,上面的命令示例假设您使用的是 Debian Buster 版本。如果您使用的不是 Buster,请根据实际使用的版本号调整命令中的版本字符串。如果 wget 命令不可用,您可能需要先安装它,或者手动从清华大学镜像站的页面上找到公钥并下载。

完成这些步骤后,您应该能够正常地更新和升级您的树莓派系统了。

5.摄像头

目前(4代树莓派、Debian10以及以后)raspistill命令已经被逐渐遗弃

pi@raspberrypi:~ $ raspistill
-bash: raspistill: command not found

https://blog.csdn.net/weixin_51245887/article/details/124692953

新版本的不需要自己启用,直接输入libcamera-hello调用摄像头看能不能用(显示5秒后会退出)

这里我们使用几个简单的libcamera命令进行截图:
1、libcamera-hello
2、libcamera-still -e png -o test.png
3、libcamera-jpeg -o test.jpg

4视频录制

预览camera流

直接使用libcamera-hello程序打开摄像头预览

sudo libcamera-hello -t 0

timeout 10s sh -c ‘libcamera-vid --width 1920 --height 1080 --framerate 30 --output video.h264’

6.换系统树莓派摄像头ov5647与opencv

https://blog.csdn.net/bert20010524/article/details/132393260

https://blog.csdn.net/zhangmou_9008/article/details/134047114

简单说一下,pios把摄像头驱动更换到了libcamera,而opencv当前还不支持libcamera,这个是你opencv不能用的根本原因,和dtoverlay没关系。不过最近opencv上游社区正在做适配,之后不久应该就可以。 你最终解决的办法就是回滚到老版的v4l2驱动,opencv当然支持v4l2,所以就ok了。

import cv2

# 创建摄像头对象
cap = cv2.VideoCapture(0)

# 检查摄像头是否成功打开
if not cap.isOpened():
    print("无法打开摄像头")
    exit()
    
# 调整摄像头的曝光和对比度设置
#cap.set(cv2.CAP_PROP_AUTO_EXPOSURE, 0.25)  # 关闭自动曝光
#cap.set(cv2.CAP_PROP_EXPOSURE, -13)  # 设置曝光值(范围:-13到-1,值越小曝光越低)
#cap.set(cv2.CAP_PROP_CONTRAST, 60.0)  # 设置对比度值(默认为1.0) 

# 循环读取摄像头画面
while True:
    # 读取一帧图像
    ret, frame = cap.read()

    # 检查图像是否成功读取
    if not ret:
        print("无法获取图像帧")
        break

    # 在窗口中显示图像
    cv2.imshow("Camera", frame)

    # 按下 'q' 键退出循环
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 释放摄像头资源
cap.release()

# 关闭窗口
cv2.destroyAllWindows()

屏幕

https://blog.csdn.net/z625476/article/details/116986391?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-116986391-blog-78006331.235

sudo rm -rf LCD-show
git clone https://github.com/goodtft/LCD-show.git
chmod -R 755 LCD-show
cd LCD-show/
sudo ./LCD35-show

#!/usr/bin/env python     #告诉Linux本文件是一个Python程序
import RPi.GPIO as GPIO   #导入控制GPIO的模块,RPi.GPIO
import time     #导入时间模块,提供延时、时钟和其它时间函数

colors = [0xFF00, 0x00FF, 0x0FF0, 0xF00F]   #颜色列表
pins = {'pin_R':11, 'pin_G':12}  #针脚字典,物理位置编号,红色针脚为11号,绿色针脚为12号

GPIO.setmode(GPIO.BOARD)       #设置引脚编号模式为板载模式,即树莓派上的物理位置编号
#或者为BCM模式:
#GPIO.setmode(GPIO.BCM)

for i in pins:
    GPIO.setup(pins[i], GPIO.OUT)   # 设置针脚模式为输出(或者输入GPIO.IN)
    GPIO.output(pins[i], GPIO.LOW) #设置针脚为低电平,关掉LED灯

p_R = GPIO.PWM(pins['pin_R'], 2000)  # 设置频率为 2KHz
p_G = GPIO.PWM(pins['pin_G'], 2000)

p_R.start(0)      # 初始占空比为0(范围:0.0 <= dc <= 100.0,0为关闭状态)
p_G.start(0)      # p.start(dc) dc代表占空比

def map(x, in_min, in_max, out_min, out_max):
    return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min

def setColor(col):   # 设置颜色
    R_val = (col & 0xFF00) >> 8    #先“与”运算只保留自己颜色所在位的值有效
    G_val = (col & 0x00FF) >> 0    #再“右移”运算将自己颜色所在位的值提取出来
    
    R_val = map(R_val, 0, 255, 0, 100)   #将颜色的刺激量转换为占空比对应的值
    G_val = map(G_val, 0, 255, 0, 100)
    
    p_R.ChangeDutyCycle(R_val)     # 更改占空比,调整该颜色的亮度
    p_G.ChangeDutyCycle(G_val)

def loop():
    while True:        #循环函数
        for col in colors:         #遍历颜色列表
            setColor(col)      #设置颜色
            time.sleep(0.5)   #延时0.5秒


def destroy():
    p_R.stop()        #停止PWM
    p_G.stop()
    for i in pins:
        GPIO.output(pins[i], GPIO.LOW)    # 关掉所有led灯
    GPIO.cleanup()     #重置GPIO状态  

if __name__ == "__main__":
    try:         #用try-except代码块来处理可能引发的异常
        loop()
    except KeyboardInterrupt:     #如果遇用户中断(control+C),则执行destroy()函数
        destroy()

img

舵机

1.单个 gnd 5v g4

import RPi.GPIO as GPIO
import time

# 设置GPIO模式
GPIO.setmode(GPIO.BCM)

# 设置舵机连接的GPIO引脚
servo_pin = 4  # G4引脚

# 设置GPIO引脚为输出模式
GPIO.setup(servo_pin, GPIO.OUT)

# 设置PWM信号
pwm = GPIO.PWM(servo_pin, 50)  # 50Hz
pwm.start(0)  # 初始占空比

try:
    while True:
        # 0度
        pwm.ChangeDutyCycle(2)  # 1ms脉宽
        time.sleep(1)  # 等待1秒
        
        # 90度
        pwm.ChangeDutyCycle(7.5)  # 1.5ms脉宽
        time.sleep(1)
        
        # 180度
        pwm.ChangeDutyCycle(12)  # 2ms脉宽
        time.sleep(1)

except KeyboardInterrupt:
    pass

# 清理
pwm.stop()
GPIO.cleanup()

两个

import RPi.GPIO as GPIO
import time

# 设置 GPIO 模式
GPIO.setmode(GPIO.BCM)

# 定义舵机引脚
servo1_pin = 4  # G4 引脚
servo2_pin = 5  # G5 引脚

# 设置引脚为输出模式
GPIO.setup(servo1_pin, GPIO.OUT)
GPIO.setup(servo2_pin, GPIO.OUT)

# 设置 PWM 信号
pwm1 = GPIO.PWM(servo1_pin, 50)  # 第一个舵机,50Hz
pwm2 = GPIO.PWM(servo2_pin, 50)  # 第二个舵机,50Hz

# 启动 PWM
pwm1.start(0)  # 初始占空比
pwm2.start(0)  # 初始占空比

try:
    while True:
        # 控制第一个舵机(0度)
        pwm1.ChangeDutyCycle(2)  # 1ms 脉宽
        time.sleep(1)

        # 控制第二个舵机(0度)
        pwm2.ChangeDutyCycle(2)  # 1ms 脉宽
        time.sleep(1)

        # 控制第一个舵机(90度)
        pwm1.ChangeDutyCycle(7.5)  # 1.5ms 脉宽
        time.sleep(1)

        # 控制第二个舵机(90度)
        pwm2.ChangeDutyCycle(7.5)  # 1.5ms 脉宽
        time.sleep(1)

        # 控制第一个舵机(180度)
        pwm1.ChangeDutyCycle(12)  # 2ms 脉宽
        time.sleep(1)

        # 控制第二个舵机(180度)
        pwm2.ChangeDutyCycle(12)  # 2ms 脉宽
        time.sleep(1)

except KeyboardInterrupt:
    pass

# 清理
pwm1.stop()
pwm2.stop()
GPIO.cleanup()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2228448.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW涡扇发动机加力泵测试

LabVIEW软件开发的涡扇发动机加力泵测试平台采用高度集成的硬件设备&#xff0c;实现了对涡扇发动机加力泵的全面测试和分析&#xff0c;从而确保其性能满足严格的航空标准。 项目背景 涡扇发动机是现代飞机的重要动力来源之一&#xff0c;其加力泵的性能直接影响飞机的整体动…

车载中控系统的UI自动化测试实践

本文主要介绍了如何在车载中控系统中实施UI自动化测试的过程&#xff0c;从测试环境的准备到测试用例的设计&#xff0c;再到具体实现方法及注意事项等方面进行了详细的阐述。 引言 随着汽车行业的快速发展&#xff0c;车载中控系统已成为提升驾驶体验的重要组成部分。为了保…

echarts属性之dataZoom

dataZoom-slider 滑动条型数据区域缩放组件&#xff08;dataZoomInside&#xff09; 滑动条型数据区域缩放组件提供了数据缩略图显示&#xff0c;缩放&#xff0c;刷选&#xff0c;拖拽&#xff0c;点击快速定位等数据筛选的功能。下图显示了该组件可交互部分 所有属性 data…

牛客小白月赛103(打表、二进制、几何、思维)

文章目录 牛客小白月赛103&#xff08;打表、二进制、几何、思维&#xff09;A. 小冰的正多边形B. 冰冰的电子邮箱C. 冰冰的异或&#xff08;打表、二进制&#xff09;D. 冰冰的分界线&#xff08;几何、浮点数处理&#xff09;E. 冰冰的 GCD(调和级数、思维) 据说F是假题&…

「C/C++」C++17 之 std::variant 安全的联合体(变体)

#1024程序员节&#xff5c;征文# ✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计…

Web3的去中心化社交网络:区块链技术如何改变互动方式

随着互联网技术的不断进步&#xff0c;社交网络正在经历一场深刻的变革。Web3&#xff0c;作为新一代互联网技术的代表&#xff0c;正通过区块链和去中心化理念改变着我们与他人互动的方式。传统的社交网络通常由大型公司控制&#xff0c;用户数据的集中化管理和隐私问题备受关…

代码随想录(十二)——图论

并查集 并查集主要有三个功能。 寻找根节点&#xff0c;函数&#xff1a;find(int u)&#xff0c;也就是判断这个节点的祖先节点是哪个将两个节点接入到同一个集合&#xff0c;函数&#xff1a;join(int u, int v)&#xff0c;将两个节点连在同一个根节点上判断两个节点是否在…

HarmonyOS 5.0应用开发——文件读写

【高心星出品】 文章目录 文件读写文件操作创建目录删除目录或者文件扫描目录中文件 文本读写写入文本读取文本内容 文件读写文件写入边读边写 文件读写 Core File Kit&#xff08;文件基础服务&#xff09;为开发者提供一套访问和管理应用文件和用户文件的能力。帮助用户更高…

44-RK3588s调试 camera-engine-rkaiq(rkaiq_3A_server)

在RK3588s平台上调试imx415 camera sensor 过程中&#xff0c;已经识别到了camera sensor ID&#xff0c;并且可以拿到raw图和isp处理后的图像&#xff0c;但是isp处理后的图像偏绿&#xff0c;来看查看后台服务发现rkaiq_3A_server没有运行&#xff0c;然后单独运行rkaiq_3A_s…

Linux 宝塔安装(各操作系统命令合集)

由于CentOS官方已全面停止维护CentOS Linux项目&#xff0c;公告指出 CentOS 7和8在2024年6月30日停止技术服务支持&#xff0c;详情见CentOS官方公告。导致CentOS系统源已全面失效&#xff0c;比如安装宝塔等等会出现网络不可达等报错&#xff0c;需要切换源。系统源问题&…

Android 获取OAID

获取OAID 老规矩&#xff0c;直接上&#xff1a; implementation com.huawei.hms:opendevice:6.11.0.300 // 要获取华为vaid 和aaid&#xff0c;还需添加opendevice 依赖implementation(name: oaid_sdk_2.5.0, ext: aar) import android.content.Context; import android.util.…

基于微信小程序的公务员考试信息查询系统+LW示例参考

系列文章目录 1.基于SSM的洗衣房管理系统原生微信小程序LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统LW参考示例 3.基于SpringBootVue的企业人事管理系统LW参考示例 4.基于SSM的高校实验室管理系统LW参考示例 5.基于SpringBoot的二手数码回收系统原生微信小程序LW参考示…

【Android】Kotlin教程(4)

文章目录 1.field2.计算属性3.主构造函数4.次构造函数5.默认参数6.初始化块7.初始化顺序7.延迟初始化lateinit8.惰性初始化 1.field field 关键字通常与属性的自定义 getter 和 setter 一起使用。当你需要为一个属性提供自定义的行为时&#xff0c;可以使用 field 来访问或设置…

可以在线制作的PS网页版来了!

在当今数字化的创意时代&#xff0c;设计领域不断发展与变革&#xff0c;设计师们对于工具的需求也日益多样化和高效化。随着互联网技术的飞速进步&#xff0c;一种全新的设计工具模式应运而生——在线制作的 PS 网页版。它以其独特的优势和便捷性&#xff0c;逐渐成为众多设计…

高德地图如何添加自己店铺的位置信息?

众所周知&#xff0c;创业开店时&#xff0c;地理位置的选择至关重要。一个优越的地理位置不仅能显著提升店铺的可见度&#xff0c;还能有效吸引更多潜在顾客的光顾。而且&#xff0c;为了将店铺的客流量最大化&#xff0c;商家还需在地图平台上准确标注自己的位置信息&#xf…

【黄豆颗粒数据集】黄豆识别 机器视觉 深度学习(含数据集)

一、背景意义 随着全球农业生产的现代化&#xff0c;黄豆&#xff08;大豆&#xff09;作为一种重要的经济作物&#xff0c;广泛用于食品、饲料和工业原料的生产。准确识别和分类黄豆颗粒对于农业生产的管理、质量控制和市场分析具有重要意义。然而&#xff0c;传统的人工分类方…

JavaEE-多线程上

文章目录 线程概述进程/线程多线程的作用JVM关于线程资源的规范关于Java程序的运行原理 并发与并行并发(concurrency)并行(parallellism)并发编程与并行编程 线程的调度策略分时调度模型抢占式调度模型 创建线程线程类分析入门实现线程的第一种方式实现线程的第二种方式 线程的…

论文阅读:三星-TinyClick

《Single-Turn Agent for Empowering GUI Automation》 赋能GUI自动化的单轮代理 摘要 我们介绍了一个用于图形用户界面&#xff08;GUI&#xff09;交互任务的单轮代理&#xff0c;使用了视觉语言模型Florence-2-Base。该代理的主要任务是识别与用户指令相对应的UI元素的屏幕…

Tomcat servlet response关于中文乱码的经验

前言 最近修改老项目项目&#xff0c;使用zuul网关返回的中文内容乱码了&#xff0c;如果使用GBK或者GB2312编码确正常显示&#xff0c;稍微实验了一下&#xff0c;发现里面很多细节&#xff0c;毕竟Springboot对我们做了很多事情&#xff0c;而且当我们使用不同的模式会出现很…

服务器的免密登录和文件传输

在天文学研究中&#xff0c;通常会采用ssh登录服务器&#xff0c;把复杂的计算交给服务器&#xff0c;但是如果你没有进行额外的配置&#xff0c;那么登录服务器&#xff0c;以及和服务器进行文件传输&#xff0c;每次都要输入账号和密码&#xff0c;比较不方便&#xff0c;Win…