update 20K dock example
@@ -24,7 +24,7 @@
|
||||
},
|
||||
{
|
||||
"url": "/hardware/zh/lichee/index.html",
|
||||
"label": "LicheePi"
|
||||
"label": "Lichee"
|
||||
},
|
||||
{
|
||||
"url": "/hardware/zh/tang/index.html",
|
||||
|
||||
@@ -33,14 +33,14 @@
|
||||
- [Maix Amigo](./en/maixpy_develop_kit_board/maix_Amigo.md)
|
||||
|
||||
|
||||
## LicheePi (Linux)
|
||||
## Lichee (Linux)
|
||||
|
||||
LicheePi Zero
|
||||
Lichee Zero
|
||||
|
||||
- [LicheePi Zero]()
|
||||
- [LicheePi Zero Plus]()
|
||||
|
||||
- [LicheePi Nano]()
|
||||
- [Lichee Zero]()
|
||||
- [Lichee Nano]()
|
||||
- [Lichee Zero Plus]()
|
||||
- [Lichee RV]()
|
||||
|
||||
## Lichee Tang(FPGA)
|
||||
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "LicheePi",
|
||||
"label": "Lichee",
|
||||
"file": "lichee/README.md",
|
||||
"items": [
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ title: Lichee Pi
|
||||
---
|
||||
> 编辑与2022年3月11日
|
||||
|
||||
- LicheePi 是 [Sipeed](https://www.sipeed.com/) 推出的开源产品,是为了能让用户获得优廉的linux设备,实战linux底层相关的内容的产品。
|
||||
- Lichee 是 [Sipeed](https://www.sipeed.com/) 推出的开源产品,是为了能让用户获得优廉的linux设备,实战linux底层相关的内容的产品。
|
||||
|
||||
目前LicheePi相关核心板部分参数对比表格如下:
|
||||
|
||||
@@ -19,7 +19,7 @@ title: Lichee Pi
|
||||
- 上述的款型都可以通过sd卡启动系统
|
||||
- 其他参数过多,版面放不下,需要的话麻烦自行对比一下。
|
||||
|
||||
## LicheePi核心版照片(Linux)
|
||||
## Lichee 核心版照片(Linux)
|
||||
### Lichee Zero
|
||||
<div align="center">
|
||||
<a href="./Zero/Zero.html" ><img src="./assets/Zero/Zero_1.png" width=400></a>
|
||||
|
||||
@@ -8,7 +8,7 @@ desc: maixpy 其他事项
|
||||
|
||||
这里讲述 V831 开发板的一些额外使用事项和相关解决方法
|
||||
|
||||
以下替换设备相关操作完成后,名称为 Maixhub 的镜像里的 app 应用不再可用
|
||||
以下替换设备相关操作完成后,名称为 `maixhub` 的镜像里的 app 应用不再可用
|
||||
|
||||
## 切换屏幕
|
||||
|
||||
@@ -132,4 +132,4 @@ reboot #重启设备来更新配置
|
||||
|
||||
在[下载站](https://dl.sipeed.com/shareURL/MaixII/MaixII-Dock/SDK/Toolchain)里有一个名为 `toolchain-sunxi-musl-pack-2021-01-09.tar.xz` 的文件,这是在 Linux 系统下为 V831 所使用的编译链。
|
||||
|
||||
有需求的可以自行尝试,但是对于 V831 还是推荐使用 MaixPy3 和 Maixhub。
|
||||
有需求的可以自行尝试,但是对于 V831 还是推荐使用 MaixPy3 和 MaixHub。
|
||||
|
||||
@@ -45,11 +45,6 @@ AX620A 是一款高算力、高能效比、低功耗的 AI SoC 芯片。芯片
|
||||
|
||||
3. 提供 uboot 、kernel 、sample 等 Linux 源码仓库、提供产品使用文档、源码开发方法等说明。
|
||||
|
||||
4. 提供 MaixPy3 开发环境,支持 maixhub 模型分享与训练。
|
||||
4. 提供 MaixPy3 开发环境,支持 MaixHub 模型分享与训练。
|
||||
|
||||
5. 提供交流社区、源码资料等.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5. 提供交流社区、源码资料等.
|
||||
@@ -167,7 +167,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "LicheePi",
|
||||
"label": "Lichee",
|
||||
"file": "lichee/README.md",
|
||||
"items": [
|
||||
{
|
||||
|
||||
|
After Width: | Height: | Size: 54 KiB |
@@ -1 +1,340 @@
|
||||
# 施工中
|
||||
---
|
||||
title: Tang Primer 20K Dock 点一个灯
|
||||
tags: Tang Primer 20K Dock,上手
|
||||
keywords: Primer, Tang, Dock, 入门,20K
|
||||
desc: Tang Primer 20K Dock 简单上手
|
||||
update:
|
||||
- date: 2022-09-21
|
||||
version: v0.1
|
||||
author: wonder
|
||||
content:
|
||||
- 初稿
|
||||
---
|
||||
|
||||
对于软件开发来说,输出 `hello world` 就是入门了。对于硬件相关的开发而言,点灯就是同款入门。
|
||||
|
||||
Dock 底板上有 6 个普通的 LED 可以自定义功能。用户可以使用这六个灯来组合成不同的状态来判断自己当前代码的运行情况,在此仅以最简单的流水灯为例,且对他进行简单的抓波。
|
||||
|
||||
## 安装 IDE
|
||||
|
||||
参考 [安装IDE](https://wiki.sipeed.com/hardware/zh/tang/Tang-Nano-Doc/get_started/install-the-ide.html) 来完成我们需要准备的软件环境。
|
||||
|
||||
Windows 用户建议额外下载一次高云教育版的 Programmer 软件,这样可以避免烧录时因为 Programmer 版本不兼容 BL702 下载器而导致的奇怪问题。
|
||||
|
||||
对于 Linux 用户的话建议使用 [openfpgaLoader](https://wiki.sipeed.com/hardware/zh/tang/Tang-Nano-Doc/get_started/flash_in_linux.html) 这软件来烧录 GW2A-18。
|
||||
|
||||
## 新建工程
|
||||
|
||||
文件 -> 新建 -> FPGA Design -> Project
|
||||
|
||||
<div>
|
||||
<img src="./assets/led_assets/new_project.png" width=58% alt="new_project">
|
||||
<img src="./assets/led_assets/fpga_project.png" width=35% alt="fpga_project">
|
||||
</div>
|
||||
|
||||
设置工程名称,要求只用英文的下划线命名,存放路径中不要有中文字符或者空格等。
|
||||
|
||||

|
||||
|
||||
然后在下面的芯片型号中选择 GW2A-LV18PG256C8/I7,使用上面的筛选能够更快地选择到正确的型号。注意 Device 那一栏为 GW2A-18C
|
||||

|
||||
|
||||
然后点击确定后就可以进行最终项目预览了。确认无误后就完成工程创建了。
|
||||
|
||||
## 编写代码
|
||||
|
||||
### 新建文件
|
||||
|
||||
高云半导体 IDE 提供了三种新建文件的方法。在此我们直接使用快捷键 `Ctrl + N` 来新建文件,其他两种不在此讲述。
|
||||
|
||||
在弹出的窗口中选择 `Verilog File`,会 VHDL 的也可以选择下面的 `VHDL File`,这篇文章只用 Verilog 来做点灯示例。
|
||||
|
||||
<img src="./assets/led_assets/new_verilog_file.png" width=50% alt="new_verilog_file">
|
||||
|
||||
点击 OK 之后会提示让我们输入文件名称,此处以 `led` 为文件名做示范。
|
||||
|
||||
<img src="./assets/led_assets/file_name.png" width=75% alt="file_name">
|
||||
|
||||
到这里我们就完成文件的创建了,可以直接编写代码了。
|
||||
|
||||

|
||||
|
||||
### Verilog 简单说明
|
||||
|
||||
Verilog 是一种硬件描述语言,用来对数字电路进行抽象化描述。
|
||||
|
||||
Verilog 的基本设计单元是“模块”(module)。
|
||||
|
||||
一个模块是由两部分组成的:一部分描述接口,另一部分描述内部逻辑功能,即定义输入是如何影响输出的。
|
||||
|
||||
一个模块长成这样:
|
||||
|
||||
```v
|
||||
module module_name
|
||||
#(parameter)
|
||||
(port) ;
|
||||
function
|
||||
endmodule
|
||||
```
|
||||
|
||||
模块整体结构由 module 和 endmodule 组成,module 后面跟着的是模块的名称(module_name),可传递变量参数(parameter),端口及其方向的申明(port),紧接着就是内部逻辑功能描述(function) ,最后用 endmodule 来表示这一个模块,描述完毕。
|
||||
|
||||
内部逻辑功能通常由 assign 和 always 块完成;其中 assign 语句描述逻辑功能,always 块常用于描述时序功能。
|
||||
|
||||
### 代码思路
|
||||
|
||||
写代码前我们需要先想清楚代码目的:每隔 0.5S 灯闪一次。
|
||||
|
||||
对此所画的需求框图如下:
|
||||
|
||||

|
||||
|
||||
然后对于 0.5S 我们需要一个计数器来计时,LED 灯闪就是 IO 翻转
|
||||
|
||||

|
||||
|
||||
把上面的思维框图具体到实际使用的话,就变成下面的样式了:
|
||||
|
||||

|
||||
|
||||
其中 Clock 为时钟源,用来给计时器提供准确的时间。
|
||||
|
||||
### 代码描述
|
||||
|
||||
根据上文 Verilog 简单说明和所描述的框图,可以所要编写 Verilog 模块有 Clock 和 IO电平 两个端口;
|
||||
|
||||
```v
|
||||
module led(
|
||||
input Clock,
|
||||
output IO_voltage
|
||||
);
|
||||
|
||||
endmodule
|
||||
```
|
||||
|
||||
对于内部的计时模块,Primer 20K 核心板上的晶振为 27MHZ,因此我们每秒钟会有 27000000 个时钟上升沿,想要 0.5S 计数的话那么只需要计数 13500000 次上升沿就好。计数是从 0 开始的,数 13500000 的话就是从 0 数到 13499999。计数完后我们需要设置一个标志位,来通知 LED 的 IO 翻转一下电平。整体计数代码如下:
|
||||
|
||||
```v
|
||||
//parameter Clock_frequency = 27_000_000; // 时钟频率为27Mhz
|
||||
parameter count_value = 13_499_999; // 计时 0.5S 所需要的计数次数
|
||||
|
||||
reg [23:0] count_value_reg ; // 计数器
|
||||
reg count_value_flag; // IO 电平翻转标志
|
||||
|
||||
always @(posedge Clock) begin
|
||||
if ( count_value_reg <= count_value ) begin //没有计数到 0.5S
|
||||
count_value_reg <= count_value_reg + 1'b1; // 继续计数
|
||||
count_value_flag <= 1'b0 ; // 不产生翻转标志
|
||||
end
|
||||
else begin //计数到 0.5S 了
|
||||
count_value_reg <= 23'b0; // 清零计数器,为重新计数最准备
|
||||
count_value_flag <= 1'b1 ; // 产生翻转标志
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
对于 LED IO 电平翻转代码如下:
|
||||
|
||||
```v
|
||||
reg IO_voltage_reg = 1'b0; // 声明 IO 电平状态用于达到计时时间后的翻转,并赋予一个低电平初始态
|
||||
|
||||
always @(posedge Clock) begin
|
||||
if ( count_value_flag ) // 电平翻转标志有效
|
||||
IO_voltage_reg <= ~IO_voltage_reg; // IO 电平翻转
|
||||
else // 电平翻转标志无效
|
||||
IO_voltage_reg <= IO_voltage_reg; // IO 电平不变
|
||||
end
|
||||
```
|
||||
|
||||
|
||||
将上面的代码整合后就变成了下面的内容:
|
||||
|
||||
```v
|
||||
module led(
|
||||
input Clock,
|
||||
output IO_voltage
|
||||
);
|
||||
|
||||
/**********计时部分**********/
|
||||
//parameter Clock_frequency = 27_000_000; // 时钟频率为27Mhz
|
||||
parameter count_value = 13_499_999; // 计时 0.5S 所需要的计数次数
|
||||
|
||||
reg [23:0] count_value_reg ; // 计数器
|
||||
reg count_value_flag; // IO 电平翻转标志
|
||||
|
||||
always @(posedge Clock) begin
|
||||
if ( count_value_reg <= count_value ) begin //没有计数到 0.5S
|
||||
count_value_reg <= count_value_reg + 1'b1; // 继续计数
|
||||
count_value_flag <= 1'b0 ; // 不产生翻转标志
|
||||
end
|
||||
else begin //计数到 0.5S 了
|
||||
count_value_reg <= 23'b0; // 清零计数器,为重新计数最准备
|
||||
count_value_flag <= 1'b1 ; // 产生翻转标志
|
||||
end
|
||||
end
|
||||
reg IO_voltage_reg = 1'b0; // 声明 IO 电平状态用于达到计时时间后的翻转,并赋予一个低电平初始态
|
||||
|
||||
/**********电平翻转部分**********/
|
||||
always @(posedge Clock) begin
|
||||
if ( count_value_flag ) // 电平翻转标志有效
|
||||
IO_voltage_reg <= ~IO_voltage_reg; // IO 电平翻转
|
||||
else // 电平翻转标志无效
|
||||
IO_voltage_reg <= IO_voltage_reg; // IO 电平不变
|
||||
end
|
||||
|
||||
|
||||
/**********补充一行代码**********/
|
||||
assign IO_voltage = IO_voltage_reg;
|
||||
|
||||
endmodule
|
||||
```
|
||||
|
||||
上面代码最后面补充了一行代码,是因为 IO_voltage 声明在了 port 位置,默认为 wire 型,想要将它与 reg 变量 IO_voltage_reg 连接起来,需要用到 assign 语句。
|
||||
|
||||
## 综合,约束,布局布线
|
||||
|
||||
### 综合
|
||||
|
||||
代码保存后,可以双击 IDE 内部的 Process -> Synthesize 来进行代码综合,将 verilog 代码内容转换为综合网表。
|
||||
|
||||

|
||||
|
||||
关于网表有兴趣的可以自己去查阅相关资料,此处不再额外说明。
|
||||
|
||||
### 约束
|
||||
|
||||
综合完之后我们需要进行管脚约束,才能将所编写的模块端口与 FPGA 引脚相对应,并且实现模块的功能。
|
||||
|
||||
点击上图 Synthesize 上面的 FloorPlanner 来进行管脚约束。
|
||||
|
||||

|
||||
|
||||
由于是首次创建,所以会弹出下面的对话框,点击 OK 后就弹出了图形化约束交互界面。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
关于约束的方法可以查看 [SUG935-1.3_Gowin设计物理约束用户指南.pdf](http://cdn.gowinsemi.com.cn/SUG935-1.3_Gowin%E8%AE%BE%E8%AE%A1%E7%89%A9%E7%90%86%E7%BA%A6%E6%9D%9F%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97.pdf)
|
||||
|
||||
此处因个人喜所以仅使用下图中 IO Constranins 方法来约束引脚:
|
||||
|
||||

|
||||
|
||||
根据[核心板原理图](https://dl.sipeed.com/fileList/TANG/Primer_20K/02_Schematic/Tang_Primer_20K_Core_board_3690.pdf),我们可以知道晶振所输入的引脚为 H11。
|
||||
|
||||
<img src="./assets/led_assets/crystal_port.png" alt="crystal_port" width=45%>
|
||||
|
||||
然后结合底板上的 IO 丝印,决定用地板上的 L14 引脚进行点灯,对应的 LED 编号为 LED4。
|
||||
|
||||

|
||||
|
||||
因此对于在 FloorPlanner 交互窗口下面的 IO Constranins 中将 PORT(端口)与 Location(引脚) 分别填入下面的值:
|
||||
|
||||

|
||||
|
||||
输入完毕后快捷键 Ctrl + S 来保存一下引脚约束,然后接可以关闭 FloorPlanner 的交互图形界面了。
|
||||
|
||||
接着发现在工程项目里面多出来刚刚创建的 cst 文件了,里面的内容也比较好理解。
|
||||
|
||||

|
||||
|
||||
### 布局布线
|
||||
|
||||
完成约束后就要开始运行布局布线了,目的是为了把综合所生成的网表与我们自己定义的约束来通过 IDE 算出最优解然后将资源合理地分配在 FPGA 芯片上。
|
||||
|
||||
双击下体红框处的 Place&Route 就开始运行了。
|
||||
|
||||
。
|
||||
|
||||
紧接着没有报错,全部通过。就可以开始进行烧录了。
|
||||
|
||||
## 烧录固件
|
||||
|
||||
Dock 板载了下载器,在 [安装IDE](https://wiki.sipeed.com/hardware/zh/tang/Tang-Nano-Doc/get_started/install-the-ide.html) 地时候我们已经安装了驱动。因此我们将板子与电脑连接起来就行。
|
||||
|
||||

|
||||
|
||||
对于 Programmer 软件建议使用高云官网下载到 [点我跳转](http://www.gowinsemi.com.cn/faq.aspx) ,下载下图所示的 Programmer 软件即可。
|
||||
|
||||

|
||||
|
||||
### 扫描设备
|
||||
|
||||
在使用 Dock 底板的时候不要忘记使能核心板,按下 1 号拨码开关即可。
|
||||
|
||||

|
||||
|
||||
双击下图中的下载程序(Program Device) 来运行 Programmer 软件
|
||||
|
||||

|
||||
|
||||
然后在打开的页面中点击一下 scan_device 来扫描到我们的设备。
|
||||
|
||||

|
||||
|
||||
点击 OK 后就可以进行烧录操作了。
|
||||
|
||||
烧录相关的文档可以参考 [SUG502-1.3_Gowin_Programmer用户指南.pdf](http://cdn.gowinsemi.com.cn/SUG502-1.3_Gowin_Programmer%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97.pdf)
|
||||
|
||||
|
||||
### 下载到 SRAM
|
||||
|
||||
一般来说这个模式是以用来快速要证所生成的固件是否满足自己目的的。
|
||||
|
||||
因为其烧录快的特性所以使用的较多,然是当然断电会丢失数据,所以如果想上电运行程序的话是不能选这个的。
|
||||
|
||||
点击 Operation 下面的功能框来打开设备设置界面,接着在 Operation 框中选择 SRAM Program 选项来设置为下载到 SRAM ,最后点击下面的那三个点点框来选择我们所生成的 .fs 下载固件。通常来说下载固件生成与工程文件目录下的 impl -> pnr 目录下。
|
||||
|
||||

|
||||
|
||||
接着来点击红框处开始进行烧录
|
||||
|
||||

|
||||
|
||||
有问题的话可以前往 [常见问题](https://wiki.sipeed.com/hardware/zh/tang/Tang-Nano-Doc/questions.html) 自行排查。
|
||||
|
||||
到这里就下载完成了。
|
||||
|
||||
### 下载到 Flash
|
||||
|
||||
上面说过下载到 SRAM 是为了快速验证,但是不能上电运行程序。
|
||||
所以想要上电运行的话我们需要设置下载到 Flash。
|
||||
|
||||
和上面下载到 SRAM 的步骤几乎类似,先点开 Operation 下面的功能框来打开设备设置界面,接着在 Operation 框中选择 External Flash Mode 选项来设置为下载到外部 Flash ,最后点击下面的那三个点点框来选择我们所生成的 .fs 下载固件,通常来说下载固件生成与工程文件目录下的 impl -> pnr 目录下。最后在下面的外部 Flash 选项中选择设备为 Generic Flash 。
|
||||
|
||||

|
||||
|
||||
接着来点击红框处开始进行烧录
|
||||
|
||||

|
||||
|
||||
然后我们的程序重新上电也能照样运行了。
|
||||
|
||||
## 代码结果
|
||||
|
||||
如图所示,只有一个灯在闪。
|
||||
|
||||

|
||||
|
||||
## 结语
|
||||
|
||||
到这里我们就已经完成了 FPGA 的 “Hello world” 了。以后的示例工程不会再叙述新建文件等操作了。
|
||||
|
||||
需要使用高云在线逻辑分析仪的可以看这里:[使用 GAO]施工中 <!---(./gao.md) -->
|
||||
|
||||
下一篇:[点六个灯](./led_6.md)
|
||||
|
||||
## 常见问题
|
||||
|
||||
### No Cable found
|
||||
|
||||
检查设备管理器里有没有下图这两个,没有的话需要安装 Programmer 驱动。
|
||||
|
||||

|
||||
|
||||
确定有 converter 设备的话在确认用的是不是所要求使用的 Programmer, 本文[这里](#烧录固件)有写过。
|
||||
|
||||
### No gowin device found
|
||||
|
||||
确认自己使能了核心板。
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 219 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 463 KiB |
|
After Width: | Height: | Size: 250 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 764 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 243 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 107 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
@@ -69,6 +69,10 @@ LED2 与 LED3 的丝印错误,应当为:
|
||||
|
||||
默认固件中,将 3、4 号两个灯设置为时钟检测信号,可以通过这两个灯的状态来鉴别设备是否工作。
|
||||
|
||||
### 实战使用
|
||||
|
||||
[点一个灯](./examples/led.md)
|
||||
|
||||
## Lite 开箱说明
|
||||
|
||||
### 应该更新记录
|
||||
|
||||
@@ -3,12 +3,11 @@ title: Lichee Pi
|
||||
keywords: Sipeed, Hardware, 矽速, 软件资料, 文档, 资料下载
|
||||
desc: 矽速科技的硬件资料站
|
||||
---
|
||||
- LicheePi 是 [Sipeed](https://www.sipeed.com/) 推出的开源产品,是为了能让用户获得优廉的linux设备,实战linux底层相关的内容的产品。
|
||||
- Lichee 是 [Sipeed](https://www.sipeed.com/) 推出的开源产品,是为了能让用户获得优廉的linux设备,实战linux底层相关的内容的产品。
|
||||
|
||||
<h2> LicheePi (Linux) </h2>
|
||||
<h2> Lichee (Linux) </h2>
|
||||
|
||||
- [LicheePi Zero](./Zero-Doc/Start/intro_cn.md)
|
||||
- [LicheePi Nano](./Nano-Doc-Backup/index.md)
|
||||
- [MaixSense](./MaixSense/intro_cn.md)
|
||||
- [Lichee Zero](./Zero-Doc/Start/intro_cn.md)
|
||||
- [Lichee Nano](./Nano-Doc-Backup/index.md)
|
||||
- [Lichee RV](./Lichee-RV/intro_cn.md)
|
||||
- 更多产品在计划中
|
||||
|
||||
@@ -14,7 +14,7 @@ desc: maixpy 人脸识别
|
||||
## 使用方法
|
||||
|
||||
|
||||
* 从 [maixhub](https://www.maixhub.com) 按照说明下载模型, 获得模型`smodel`, 就是 加密版本的`kmodel`
|
||||
* 从 [MaixHub](https://www.maixhub.com) 按照说明下载模型, 获得模型`smodel`, 就是 加密版本的`kmodel`
|
||||
* 按照入门教程的方法下载模型到开发板
|
||||
* 运行脚本 [script](https://github.com/sipeed/MaixPy_scripts/blob/master/machine_vision/face_recognization/demo_face_recognization.py)
|
||||
|
||||
@@ -32,10 +32,4 @@ desc: maixpy 人脸识别
|
||||
* 把人脸图中的脸旋转到标准位置
|
||||
* 用特征提取模型提取出人脸的特征值
|
||||
|
||||
有了前面的基础, 这里的程序就能看懂了,也就不再进行详细的阐述了,只不过是从之前的使用一个模型,变成了按照顺序分别使用三个模型,再加上一点简单的图像裁减和旋转处理,都是调用`API`,仔细看一遍代码就知道具体的细节是如何实现的了
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
有了前面的基础, 这里的程序就能看懂了,也就不再进行详细的阐述了,只不过是从之前的使用一个模型,变成了按照顺序分别使用三个模型,再加上一点简单的图像裁减和旋转处理,都是调用`API`,仔细看一遍代码就知道具体的细节是如何实现的了
|
||||
@@ -69,7 +69,7 @@ python3 train.py init
|
||||
|
||||
准备数据集, 图片大小为 `224x224`, 格式可以参考`maix_train/datasets`下的数据集示例
|
||||
|
||||
也可以看 [Maxhub 的数据集要求](https://www.maixhub.com/index/mtrain/help.html)
|
||||
也可以看 [MaixHub 的数据集要求](https://www.maixhub.com/index/mtrain/help.html)
|
||||
|
||||
|
||||
## 训练分类模型
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
## 数据集的制作
|
||||
|
||||
对于数据集的制作,请严格按照maixhub上的数据集[制作要求](https://www.maixhub.com/ModelTrainingHelp_zh.html)来进行。如果是分类训练可以不用进行压缩,但是要按压缩包的文件层级要求来将文件放到文件夹中
|
||||
对于数据集的制作,请严格按照 Maixhub 上的数据集[制作要求](https://www.maixhub.com/ModelTrainingHelp_zh.html)来进行。如果是分类训练可以不用进行压缩,但是要按压缩包的文件层级要求来将文件放到文件夹中
|
||||
注意:对于压缩包中的文件夹名字和层级数一定要和要求中的一摸一样!一摸一样!不然会出现数据集读取不到等的一些奇奇怪怪的错误,导致训练不能开始。
|
||||
|
||||
## 开始训练
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
---
|
||||
title: Maixhub 模型训练
|
||||
keywords: 模型训练, 在线训练, AI模型, 模型库
|
||||
desc: Maixhub 模型训练
|
||||
desc: MaixHub 模型训练
|
||||
---
|
||||
|
||||
目前 maixhub 新版网站已上线,点此前往 [maixhub.com](http://maixhub.com) ,除了支持 k210 nncase 模型训练,更支持了更多平台和开发板,比如手机、电脑、V831、单片机等等。
|
||||
目前 MaixHub 新版网站已上线,点此前往 [maixhub.com](http://maixhub.com) ,除了支持 k210 nncase 模型训练,更支持了更多平台和开发板,比如手机、电脑、V831、单片机等等。
|
||||
并且大大改进了训练流程,支持在线标注,一键上传数据支持,更多训练参数可手动调整,以及一键部署到设备等功能,快来体验吧!
|
||||
|
||||
Maixhub 提供模型训练功能和模型分享功能, 只需要准备好需要训练的数据集, 不需要搭建训练环境和代码, 上传训练数据即可快速训练出模型,方便快速制作你的 AI 应用,或者入门学习 AI 训练的流程和原理。
|
||||
MaixHub 提供模型训练功能和模型分享功能, 只需要准备好需要训练的数据集, 不需要搭建训练环境和代码, 上传训练数据即可快速训练出模型,方便快速制作你的 AI 应用,或者入门学习 AI 训练的流程和原理。
|
||||
|
||||
另外你也可以在 MaixHub 模型库下载你喜欢的模型,甚至上传分享你自己制作的模型,不管是在maixhub训练的,还是自己写代码训练的各种有意思的模型!
|
||||
另外你也可以在 MaixHub 模型库下载你喜欢的模型,甚至上传分享你自己制作的模型,不管是在 MaixHub 训练的,还是自己写代码训练的各种有意思的模型!
|
||||
@@ -4,11 +4,8 @@ keywords: maixpy, k210, AIOT, 边缘计算
|
||||
desc: maixpy 固件在线编译
|
||||
---
|
||||
|
||||
|
||||
~在线编译不需要搭建编译环境,只需要选择需要的模块点击编译,编译过程会在云端完成,固件会以邮件的方式发送~
|
||||
|
||||
~访问 [maixhub](https://www.maixhub.com/onlinecompiler) 进行固件定制~
|
||||
|
||||
在线编译不再支持, 需要定制固件请参考[源码编译](./compile.md)
|
||||
|
||||
~~访问 [MaixHub](https://www.maixhub.com/onlinecompiler) 进行固件定制~~
|
||||
|
||||
在线编译不再支持, 需要定制固件请参考[源码编译](./compile.md)
|
||||
@@ -7,7 +7,7 @@ desc: maixpy Maixhub 常见问题
|
||||
|
||||
## 怎么制作数据集
|
||||
|
||||
参考 [maixhub](https://www.maixhub.com/ModelTrainingHelp_zh.html) 训练页面的帮助文档
|
||||
参考 [MaixHub](https://www.maixhub.com/ModelTrainingHelp_zh.html) 训练页面的帮助文档
|
||||
|
||||
## 训练失败了怎么办
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ desc: MaixPy3 nn模块 API文档, 以及使用说明
|
||||
|
||||
* 准备模型
|
||||
|
||||
比如从 maixhub 下载, 这里以边缘检测模型为例, 先[下载模型](https://maixhub.com/modelInfo?modelId=24)(需要先注册登录)
|
||||
比如从 MaixHub 下载, 这里以边缘检测模型为例, 先[下载模型](https://maixhub.com/modelInfo?modelId=24)(需要先注册登录)
|
||||
|
||||
* 准备一张 `224 x 224` 分辨率的图像, 比如这里放到了开发板文件系统的`/root/test.png`位置
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ conv_rgb_core_sobel = [
|
||||
|
||||

|
||||
|
||||
V831 部署[源码](https://github.com/sipeed/MaixPy3/blob/master/ext_modules/_maix_nn/example/load_forward_sobel_edge_camera.py)在 github, 模型在 maixhub 上可以下载
|
||||
V831 部署[源码](https://github.com/sipeed/MaixPy3/blob/master/ext_modules/_maix_nn/example/load_forward_sobel_edge_camera.py)在 github, 模型在 MaixHub 上可以下载
|
||||
|
||||
## 边缘检测源码
|
||||
|
||||
|
||||
@@ -35,8 +35,8 @@ Release 页面: https://github.com/sipeed/MaixPy3/releases/tag/MaixPy-0.5.0
|
||||
|
||||
#### V831
|
||||
|
||||
- 内置 maixhub 应用,可以直接在线训练并且直接部署。在线训练网址:maix.sipeed.com
|
||||
- 启动顺序为先执行 /root/app/main.py 然后是 /root/main.py。不需要 maixhub 一键部署后可以直接 `rm -rf /root/app`
|
||||
- 内置 MaixHub 应用,可以直接在线训练并且直接部署。在线训练网址:maix.sipeed.com
|
||||
- 启动顺序为先执行 /root/app/main.py 然后是 /root/main.py。不需要 MaixHub 直接部署模型的话可以直接 `rm -rf /root/app`
|
||||
|
||||
相关问题:
|
||||
|
||||
|
||||
@@ -264,9 +264,9 @@ onnx_to_ncnn(input_shape, onnx=onnx_out, ncnn_param=ncnn_out_param, ncnn_bin=ncn
|
||||
|
||||
### ncnn量化到int8模型
|
||||
|
||||
通过maixhub将ncnn模型进行量化到int8模型
|
||||
通过 MaixHub 将ncnn模型进行量化到int8模型
|
||||
|
||||
在 maixhub 模型转换 将 ncnn 模型转换为 awnn 支持的 int8 模型 (网页在线转换很方便人为操作,另一个方面因为全志要求不开放 awnn 所以暂时只能这样做)
|
||||
在 MaixHub 模型转换 将 ncnn 模型转换为 awnn 支持的 int8 模型 (网页在线转换很方便人为操作,另一个方面因为全志要求不开放 awnn 所以暂时只能这样做)
|
||||
|
||||
阅读转换说明,可以获得更多详细的转换说明
|
||||

|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"V831 部署[源码](https://github.com/sipeed/MaixPy3/blob/master/ext_modules/_maix_nn/example/load_forward_sobel_edge_camera.py)在 github, 模型在 [maixhub](https://www.maixhub.com/modelInfo?modelId=24) 上可以下载\n",
|
||||
"V831 部署[源码](https://github.com/sipeed/MaixPy3/blob/master/ext_modules/_maix_nn/example/load_forward_sobel_edge_camera.py)在 github, 模型在 [MaixHub](https://www.maixhub.com/modelInfo?modelId=24) 上可以下载\n",
|
||||
"\n",
|
||||
"## 边缘检测源码\n",
|
||||
"\n",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: 新版 MaixHub 正式上线啦!
|
||||
keywords: 在线训练, 模型平台, 单片机运行模型, 云端训练, 模型库, model zoo
|
||||
date: 2022-09-04
|
||||
tags: maixhub, 模型训练
|
||||
tags: MaixHub, 模型训练
|
||||
cover: ./images/deploy.gif
|
||||
---
|
||||
|
||||
@@ -38,7 +38,7 @@ cover: ./images/deploy.gif
|
||||
* 通用单片机,更是推出了超轻量的单片上运行的模型推理库[TinyMaix](https://github.com/sipeed/TinyMaix),可以移植到任意单片机,甚至能在 2KiB RAM的arduino上跑
|
||||

|
||||
* 训练过程、日志、图标展示,以及验证结果展示,方便分析和优化模型
|
||||

|
||||

|
||||
* 一键部署到设备
|
||||

|
||||
* 一键分享到模型库(模型平台/model zoo),同时模型库也支持手动上传分享更厉害好玩的模型哦
|
||||
|
||||
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 418 KiB |