【触觉智能Purple Pi OH开发板体验】开箱体验:开源主板Purple Pi RK3566 上手指北
前言
前段时间收到来自【电子发烧友】的一款开发板,名叫:PurplePi,2+16G售价仅249元。它使用的芯片是rk3566,适配的OpenHarmony版本为3.2 Release
是目前最便宜的OpenHarmony标准系统开源开发板,并且软硬件全部开源,听说在300元以内无敌手,由于博主第一次接触这类开发板,在做本期测评时,需要亲自体验整个过程,项目体验真实感没得说,本次不做教程分享只是一个简单的学习经历,仅仅作为记录和开箱体验,如有大佬对这款板子很熟,欢迎指点~


产品外观及尺寸等参数
Purple Pi OH智能主板,配备Rockchip RK3566四核Cortex-A55处理器,主频最高1.8GHz,LPDDR4/LPDDR4X 默认2GB ,最大可以支持8GB内存。芯片内嵌的新一代GPU(Mali-G52 2EE)支持高分辨率显示,拥有强大的多线程运算能力、图形处理能力以及硬件解码能力。
● 最高支持8GB 高速LPDDR4,速率高达1056MHz
● 1T算力NPU,支持INT8/INT16,支持MXNet/PyTorch/Caffe等框架
● 1路HDMI2.0 支持4K@60Hz或1080P@120Hz
● 1路4-Lane MIPI-DSI,支持到1080P@60Hz
● 1路4-Lane MIPI-CSI摄像头
● 支持多屏同显
● 1路自适应千兆以太网口
● WIFI蓝牙无线通信
● 板载 1路USB3.0,3路USB2.0
● 极小型PCBA尺寸,85mm*56mm

硬件参数
| 说明 | |
|---|---|
| 以太网 | 1 × 千兆以太网(1000 Mbps) |
| 无线网络 | 支持双频2.4G/5.8G Wifi支持BT4.2及以上 |
| 显示接口 | 支持双屏同显1 × HDMI2.0,支持4K@60fps 输出1 × MIPI_DSI_TX,支持1920*1080@60fps 输出 |
| 摄像头 | 1 × MIPI_CSI 摄像头接口,支持单4-Lane 13M Sensor |
| 音频接口 | 1 × HDMI 音频输出 1 × 耳机MIC音频输入 1 × 耳机音频输出 |
| 扩展接口 | 1 × USB 3.0 HOST(标准TYPE-A母座)、3 × USB 2.0 HOST(标准TYPE-A母座)、1 × USB 2.0 device(标准TYPE-C母座)、1 × Debug_UART(UART2)、1 × SPI、1 × I2C、3 × UART、1 × TP 座(I2C) |

系统支持
| 是否支持 | |
|---|---|
| Android 11 | ✅ |
| Debian 10 | ✅ |
| Buildroot + QT | ✅ |
| OpenHarmony3.2 | ✅ |
| Ubuntu | ✅ |
| 麒麟 OS | ✅ |
开箱赠品
很遗憾,博主的套餐没有赠送mipi屏和摄像头,所以按照官方的教程我们只能用其他的代替屏幕


源码等资料
找到【触觉智能】官网下载资料


找到,资料下载,这里有很全的开发板软件硬件资料,官方的开源和sdk真的做的很棒!!

已经将部分文档资源打包好,文章末尾即可下载,需要完整文档请访问这里
烧录
一、固件列表
Purple-Pi-OH RK3566 主板支持Android11、Debian10、Ubuntu20.04和Buildroot+Qt系统。
固件下载链接:
LINUX: 链接:https://pan.baidu.com/s/1ZEOZqBB40w1seo2wf2teMg?pwd=1234
提取码:1234
Android: 链接:https://pan.baidu.com/s/1mZ9xKpmWlMjLTZ2J5LtA8A?pwd=1234
提取码:1234
OpenHarmony:
链接:https://pan.baidu.com/s/1D6wFGhsEymV2tpeJkFLyfQ?pwd=o809 提取码:o809
固件及版本说明如下表所示:

二、通过USB数据线烧录固件
1 硬件准备
● Purple-Pi-OH RK3566主板
● 带USB接口的 Windows / Linux 主机
● USB Type-C 数据线
2 软件准备
工具下载链接:
链接:https://pan.baidu.com/s/1ys0Wllj80IURnbI27N7mDQ?pwd=1234 提取码:1234
由于博主准备开刷Harmony,所以这里演示OpenHarmony不带mipi屏幕的,也就是HDMI版本的
工具下载链接:

OpenHarmony:
链接:https://pan.baidu.com/s/1D6wFGhsEymV2tpeJkFLyfQ?pwd=o809 提取码:o809
2.1 安装RK USB 驱动
解压DriverAssitant_v5.1.1.zip驱动文件后进到目录,双击运行DriverInstall.exe完成驱动安装


2.2 运行RKDevTool.exe烧录工具
解压并打开RKDevTool_Release_v2.95文件,双击运行RKDevTool.exe软件

3 进入升级模式
Purple-Pi-OH主板的升级模式有LOADER和MASKROM两种模式,需要先让主板进入到升级模式,才可以给主板烧写固件。
3.1 LOADER模式
进入LOADER模式有硬件和软件进入两种方法,详细步骤如下
3.1.1 硬件方式进入LOADER模式

上图黄色框内为 RECOVERY 按键,绿色框内为 Type-C OTG 接口。
- 断开主板的所有供电;
- 按住设备上的 RECOVERY 键并保持 ;
- 使用USB Type-C 数据线连接板子Type-C口和电脑USB端口;
- 大约两秒钟后,烧录软件会识别到LOADER设备。

3.1.2 软件方式进入LOADER模式
在主板已烧录了可正常运行的固件前提下,可以通过软件的方式让板子进入到LOADER模式。
- 使用USB Type-C 数据线连接主板 Type-C口和电脑USB端口;
- 确认主板在PC端可以识别为ADB设备。

- PC的端可以通过adb或者调试串口进入到系统
● 调试串口执行命令让板子重启至LOADER模式
● adb 进入方法
在安装了adb环境的PC电脑,通过命令终端执行adb shell命令进去系统,并执行以下命令
reboot loader

4.软件执行后即可在烧录软件看到设备进入到LOADER设备

3.2 MASKROM模式
板子在以下两种情况会主动显示为MASKROM模式
- 芯片未烧录固件,上电将会显示为MASKROM模式;
- 分区固件烧录异常或者Loader分区固件被擦除也可能会显示为MASKROM模式;
如果板子可以正常运行,建议使用3.1节的Loader模式烧录系统固件,在系统异常无法烧录的时候,再尝试将板子切换到MASKROM模式烧录。
进入MASKROM模式的方式如下
3. 断开电源适配器与主板的连接;
4. 短接主板上的测试点,并保持(位置如下图所示)
5. 使用USB Type-C 数据线连接主板OTG口和电脑;

6. 烧录软件会直接识别到MASKROM设备。

更多代码参考:点我
相关文章:
【触觉智能Purple Pi OH开发板体验】开箱体验:开源主板Purple Pi RK3566 上手指北
前言 前段时间收到来自【电子发烧友】的一款开发板,名叫:PurplePi,216G售价仅249元。它使用的芯片是rk3566,适配的OpenHarmony版本为3.2 Release 是目前最便宜的OpenHarmony标准系统开源开发板,并且软硬件全部开源&am…...
flink1.16使用消费/生产kafka之DataStream
flink高级版本后,消费kafka数据一种是Datastream 一种之tableApi。 上官网 Kafka | Apache Flink Kafka Source 引入依赖 flink和kafka的连接器,里面内置了kafka-client <dependency><groupId>org.apache.flink</groupId><arti…...
【多任务编程-线程通信】
进程/线程通信的方式 某些应用程序中,进程/进程和线程/线程之间不可避免的进行通信,进行消息传递,数据共享等 同一进程的线程之间通信方式包括Windows中常用Event, Message等。 不同进程之间的通信可以利用Event, FileMapping(内存共享), W…...
K8S暴露pod内多个端口
K8S暴露pod内多个端口 一、背景 公司统一用的某个底包跑jar服务,只暴露了8080端口 二、需求 由于有些服务在启动jar服务后,会启动多个端口,除了8080端口,还有别的端口需要暴露,我这里就还需要暴露9999端口。 注&a…...
Python 列表
""" #list函数 ls list() #创建一个空列表 print(list()) print(list(str(1234)))#[1, 2, 3, 4] print(list(range(5)))#[0, 1, 2, 3, 4] print(list((1,2,3,4)))#[1, 2, 3, 4] print(list(Lift is short, you need python))#注意空格也算一个字符 #[L, i, f,…...
Rabbitmq的安装与使用(Linux版)
目录 Rabbitmq安装 1.在Ubuntu上安装RabbitMQ: 打开终端,运行以下命令以更新软件包列表: 安装RabbitMQ: 安装完成后,RabbitMQ服务会自动启动。你可以使用以下命令来检查RabbitMQ服务状态: 2.在CentOS…...
Kubernetes对象深入学习之四:对象属性编码实战
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《Kubernetes对象深入学习》系列的第四篇,前面咱们读源码和文档,从理论上学习了kubernetes的对象相关的知识ÿ…...
深度学习入门教程(2):使用预训练模型来文字生成图片TextToImageGenerationWithNetwork
本深度学习入门教程是在polyu HPCStudio 启发以及资源支持下进行的,在此也感谢polyu以及提供支持的老师。 本文内容:在GoogleColab平台上使用预训练模型来文字生成图片Text To Image Generation With Network (1)你会学到什么&a…...
ORA-38760: This database instance failed to turn on flashback database
早晨接一个任务,使用rman备份在虚拟化单机上恢复实例,恢复参数文件、控制文件和数据文件都正常,recover归档时报错如下: Starting recover at 2023-07-28 10:25:01 using channel ORA_DISK_1 starting media recovery media reco…...
避免低级错误:深入解析Java的ConcurrentModificationException异常
在软件开发中,我们常常会遇到各种错误和异常。其中有一类比较低级但又常见的错误就是ConcurrentModificationException异常。最近了我就写了个这种异常,这个异常通常发生在使用迭代器遍历集合时,同时对集合进行修改,从而导致迭代器…...
7.28
1.思维导图 2.qt的sever #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpServer> //服务器类 #include<QTcpSocket> //客户端类 #include<QMessageBox> //对话框类 #include<QList> …...
java线程中的常见方法(详解)
方法简介 方法名 功能 说明 start() 启动一个新线程,在新的线程运行 run 方法中的代码 start 方法只是让线程进入就绪,里面代码不一定立刻运行(CPU 的时间片还没分给它)。每个线程对象的start方法只能调用一次,如…...
线程池参数配置
上次面试被人问到,如果是IO 密集型的任务,该如何配置合适的线程数,当初我说要按照IO具体的请求毫秒时间,来配置具体的线程数。 NthreadsNcpu*(1w/c) 公式中 W/C 为系统 阻塞率 w:等待时间 c:计算时间一般情况下,如果存…...
Spread for Winform 16.2.20231.0 (SP2) Crack
Spread for Winform 16.2.20231.0 (SP2)发布。此版本包含针对客户报告的问题的重要修复: 安装版本 16 后,FarPoint.Localization.dll 将丢失。 将数据绑定到 Spread 时会出现 InvalidOperationException。 通过 Spread Designer 设置的上标将不会保留。…...
Go程序结构
Go程序结构 1、名称 名称的开头是一个字母或下划线,且区分大小写。 实体第一个字母的大小写决定其可见性是否跨包: 若名称以大写字母开头,它是导出的,对包外是可见和可访问的,可以被自己包以外的其他程序所引用…...
JAVA面试总结-Redis篇章(四)——双写一致性
JAVA面试总结-Redis篇章(四)——双写一致性 问:redis 做为缓存,mysql的数据如何与redis进行同步呢?第一种情况,如果你的项目一致性要求高的话 采用以下逻辑我们应该先删除缓存,再修改数据库&…...
赋能医院数字化转型,医院拍摄VR全景很有必要
医院有没有必要拍摄制作VR全景呢?近期也有合作商问我们这个问题,其实VR智慧医院是趋势、也是机遇。现在外面很多的口腔医院、医美机构等都开始引入VR全景技术了,力求打造沉浸式、交互式的VR智慧医院新体验,通过VR全景展示技术来助…...
Vue3项目中没有配置 TypeScript 支持,使用 TypeScript 语法
1.安装 TypeScript:首先,需要在项目中安装 TypeScript。在终端中运行以下命令 npm install typescript --save-dev2.创建 TypeScript 文件:在 Vue 3 项目中,可以创建一个以 .ts 后缀的文件,例如 MyComponent.ts。在这…...
数据可视化大屏拼接屏开发实录:屏幕分辨率测试工具
一、可视化大屏开发 在数据可视化大屏开发时,确定数据可视化大屏拼接屏的板块尺寸需要考虑以下几个因素: 屏幕分辨率:首先需要知道每个板块屏幕的分辨率,包括宽度和高度,这决定了每个板块上可以显示的像素数量。 数据…...
每日一题7.28 209
209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 本题应该是用前缀…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
