下载中心提供了一些提到的软件,以下是个人整理的一些网络资源,仅代表个人观点,有需要的同学可以查看
蓝色字都是跳转教程的链接
培训内容 | 预计时间 | 负责人 | 培训地点 |
---|---|---|---|
引导培训见面会 | 2024年10月18日19:30 | 陈健锋 | T3-307 |
万用表使用基础与基本电路认识培训计划 | 2024年10月25日19:30 | 黄海东 | T3-307 |
C语言与STM32基础培训计划 | 2024年11月2日19:30 | 黄泉清 | L2-413、L2-403 |
GPIO——按键、红外传感器循迹培训计划 | 2024年11月9日19:30 | 庞儿茗 | L2-413、L2-403 |
STM32与HC05蓝牙串口通信培训计划 | 2024年11月15日19:30 | 王旭晖 | L2-413、L2-403 |
TB6612电机驱动直流电机培训计划 | 2024年11月22日19:30 | 陈健锋 | L2-413、L2-403 |
I2C-OLED的显示培训计划 | 2024年11月29日19:30 | 胡志勇 | L2-413、L2-403 |
绘制PCB-立创EDA培训计划 | 2024年12月2日19:30 | 黄海东 | L2-413、L2-403 |
后续更新时间表,敬请期待!
编程语言基础
硬件基础知识
单片机的协议
开发环境及其固件库
这时候就需要使用到Keil或者IAR等IDE,我们这里使用的是Keil,Keil是一款非常流行的嵌入式开发工具,它支持多种微控制器和开发板,包括STM32系列。Keil提供了丰富的开发工具和功能,包括代码编辑、编译、调试、仿真等,可以大大提高开发效率。keil在我们的下载中心可以下载到。
keil5下载:戳我下载
STM32入门教程 STM32模块移植手册
或者有我们粤嵌线上平台账号的同学,可以看里面的课程,讲的真的很好。
HAL库的编程环境可以多样,比如Keil、IAR、STM32CubeIDE等,可以使用STM32CubeMX搭配keil和直接使用STM32CubeIDE.这些均可以在我们的下载中心可以下载到。
视频教程必然是KeySking,缺点就是更新有点久,至今都没有更新完:哔哩哔哩KeySking
还有就是野火的,野火的教程比较详细,而野火的教程用的是STM32F103ZET6,STM32F4的,但是原理是一样的,可以参考一下:哔哩哔哩野火 野火在线文档
PCB设计与制作
沉金工艺具有高导电性、耐腐蚀性、美观等优点,适用于高频、高速信号传输的PCB;喷锡工艺成本低,焊接性能良好,适用于一般信号传输和成本敏感型产品。制造商需根据产品要求选择合适工艺。
当然,我们了解目前可以不用了解这些,因为目前我们设计的PCB要求的性能不会这么高,所以不太用纠结是沉金还是有铅喷锡(白嫖就完事了!)
翻了翻,嘉立创居然有免费打样的教程!
嘉立创官方免费打板攻略:免费打板
而捷配也有免费打样,2024年9月19日捷配又改革了,个人每月领取一张1-6层免费打样券 单双面板,铝基板,3张 订单总金额≤200元全部减免, 4层板,5张 订单总金额≤300元全部减免, 6层板,5张 订单总金额≤500元全部减免。也算能免费打板了:免费打板
机器视觉
opencv学习教程:菜鸟教程的opencv文字教程
opencv-python学习教程:黑马程序员图像处理OpenCV入门教程
matlab学习教程:MATLAB图像处理教程
matlab学习教程:matlab图像处理基础文字版
1. 开源:OpenMV模块的源代码是开源的,用户可以根据自己的需求进行修改和定制。
2. 低成本:OpenMV模块的价格相对较低,适合预算有限的用户。
3. 高性能:OpenMV模块集成了高性能的处理器和摄像头,可以处理复杂的图像处理任务。
4. 灵活:OpenMV模块可以连接到各种传感器和执行器,实现更复杂的机器视觉任务。
5. 简单易用:OpenMV模块提供了丰富的API和示例代码,用户可以轻松地开始使用。
但是最好不要买某瞳的Openmv,溢价太严重,我的建议是去淘宝买一个STM32H750的开发板,商家并提供Openmv的固件,自己烧录进去,再买一个二十出头的OV5640摄像头,这样性价比更高。(或者自己做一个OpenMV这个更便宜) 协会在2024-2025学期进行了OpenMV的培训,大家都或多或少的懂了一些怎么视觉处理,作为一款入门级的视觉模块,它不需要很复杂的部署环境,只需要下载好python环境和OpenMVIDE就可以直接使用。OpenMVIDE下载链接: 星瞳国内下载 OPENMV官方下载
虽然星瞳溢价严重但是他们的教程还是不错的:星瞳教程 我们学习完openmv就可以考虑让他和stm32串口连接实时传输数据,这样就可以实现openmv负责视觉处理,得到处理结果并预期的让openmv传输命令让stm32负责控制,这样就可以实现一个简单的视觉系统了。但是要怎么实现他们之间的通信呢?OpenMV与STM32单片机通信或者有我们粤嵌线上平台账号的同学,可以看里面的课程,讲的真的很好。
蓝色字都是跳转教程的链接
我们学习Linux首先是需要了解Linux是什么,我们一般指的是GUN/linux ,它是一种免费使用和自由传播的类UNIX操作系统,它是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。嵌入式Linux开发板,大多都可以使用Ubuntu,他是由Debian衍生而来,Ubuntu的版本号是根据年月来命名的,而你问我Debian是什么,它由Linux内核衍生而来。少数的Linux开发板使用的是其他系统,如树莓派使用的是Raspbian OS(基于Debian),香橙派使用的是Orange Pi OS(基于arch Linux)。说了这么多Linux,其实他们几乎是通用的,少部分的命令可能跟其他Linux开发板不一样。
比如基于debian的Linux开发板,使用apt-get来安装软件,而基于arch的Linux开发板使用pacman来安装软件。
一般购买的嵌入式Linux开发板(无emmc版本),都有选择有无储存卡(SD卡)的套餐,储存卡是用来装系统的,有没有都可以自己准备,发到货的时候都是一张空的SD卡,需要自己烧录系统,下面是常见嵌入式Linux开发板烧录系统的教程:
树莓派烧录系统及其配置新系统教程
鲁班猫烧录系统及其其他完整教程
香橙派烧录系统教程
进去之后就是连接开发板,如果我们不想用额外的显示器显示那个linux开发板的界面怎么办?很简单,使用串口连接Linux开发板配置wifi网络,并使用Windows的Realvnc(VNC Viewer)与Linux开发板连接。我们以树莓派为例:用串口登陆树莓派配置wifi网络 使用 VNC 远程访问树莓派(注意,其他linux开发板可能不会自带vnc,所以需要自己安装)如果不想使用串口连接,也可以使用网线连接,使用ssh连接,香橙派首次通过网线SSH连接
Ubuntu这类的系统毕竟是系统,所以让你的开发板保证软件最新版本很重要,我们以Ubuntu为例子,apt是Ubuntu的包管理器,
apt-get update
apt-get upgrade
apt-get install
apt-get remove
apt-get autoremove
apt-get clean
这个支持它的软件源默认是官方自带的软件园,所以需要更换软件源,使用阿里源,清华源,中科大源,网易源,阿里源,腾讯源,华为源,这些源都是免费的,但是需要自己手动配置,不同版本有不同的软件源版本,这里网上有教程,可以自己搜索,我就不放出来了,在Ubuntu24.04之前都可以采用更改/etc/apt/sources.list文件,在Ubuntu24.04之后,需要使用
apt-get install software-properties-common
add-apt-repository
不同芯片框架的软件源的也不一样,一般有X86、ARM、RISC-V,MIPS这些框架,但是arm框架很乱,一般在嵌入式Linux的框架为aarch64,可以在命令行输入:
uname -a
我们如果需要一些开发的话,可能需要不同的版本软件,比如numpy的版本需要不同的版本,我们需要那个版本的话,我们再主环境需要更换版本,只能卸载了之后才能更换,这样跟麻烦,那我们有什么方法可以快捷的同时使用不同版本的软件呢?
答案是有的,我们可以使用虚拟环境,但是虚拟环境有很多,比如python自带的env,还有conda,甚至类似docker的虚拟环境,但是这些虚拟环境都有不同的使用方法,这里我们使用conda,conda是python的包管理器,可以用来管理python的包,也可以用来管理python的虚拟环境,还可以用来管理python的版本,这里我们使用conda来管理python的虚拟环境,而嵌入式Linux就不需要使用anaconda这么全的conda,我们只需要使用它的虚拟环境就可以,所以我们推荐使用miniconda。
miniconda是conda的轻量级版本,因为篇幅太长了,我就丢出教程了Ubuntu 20.04版本快速安装 Miniconda
希望大家能熟练使用miniconda。
在Linux上,我们可以使用pip来安装python的包,一些常见的pip命令,可以看教程菜鸟教程的pip教程
我这里还是建议大家更换pip源为阿里源,直接在命令窗口输入
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
pip config set install.trusted-host mirrors.aliyun.com
我们下载完miniconda之后,打开终端,输入以下命令,查看conda是否安装成功,以及conda的版本。
conda --version
接下来,我们了解一些conda的命令:
conda create -n myenv python=3.10
conda activate myenv
conda deactivate
conda remove -n myenv --all
conda update --all
conda update package_name
conda list
conda remove opencv
conda install opencv
说了这么多,使用的顺序就是:
1.创建虚拟环境 2.激活虚拟环境
3.安装opencv 4.使用opencv
第一步:创建名字叫cv的虚拟环境:
conda create -n cv python=3.10
conda activate cv
pip install opencv-contrib-python
第四步:使用opencv:
但是怎么在嵌入式Linux使用opencv呢?我们可以看下一节教程。
看到这里大家都是一脸懵的,第一次我也不会配置这些啊,好多我都要自己配置好难怎么办?你放心咧,我这已经配置好有Ubuntu的镜像了,几乎就是烧录镜像进去就可以用了,但是我配置了什么呢?答案是有:
1.安装Ubuntu22.04镜像
2.香橙派zero3第一次配网
3.安装miniconda
4.创造虚拟环境名为"cv",python版本为3.10
5.配置pip源为阿里源
7.安装了jupyter
8.安装了opencv-python,ultralytics(YOLOv8)和onnx
9.sudo的账号密码都是orangepi
有需要自己配置的同学也可以等我后面有空更新教程跟着来配置。
那我们要怎么烧录已经配置好的镜像呢?
1.下载镜像:选用32G的闪迪或者其他读取速度高的储存卡,但是因为镜像太大了,我就没有放上云盘,而放在实验室的电脑上,文件夹目录在D盘的orangepi文件夹,大家可以拷贝下来或者在实验室的电脑上烧录。
2.烧录镜像:使用win32diskimager,这个软件在下载中心有,大家可以下载下来,然后打开软件,检查插入储存卡的盘符,选择镜像文件,然后点击写入,等待完成即可。读卡器可以自己准备也可以询问学长借用。

3.烧录完成之后,储存卡插入香橙派zero3,将15W或者以上的type-c充电器保证香橙派供电(这个需要自己准备,购买的开发板没有!,一般自己手机都会有符合这个的充电器)。
我们配置的镜像不需要使用显示器再配置,直接使用网页连接jupyter就可以了。
配置的镜像中,默认连接的WiFi名称为orangepi,密码也是orangepi。所以我们需要在电脑打开热点,将热点名称设置为orangepi,密码:orangepi。后面会教大家怎么改自己连接的WiFi以及香橙派名字,以防大家连接WiFi的时候混淆了。

4.连接成功之后,我们在下面看到我这个香橙派的ip地址是192.168.137.115,我们打开jupyter需要知道orangepi的ip地址,在浏览器输入192.168.137.115:8888就可以看到jupyter的界面了,如果需要密码的话,jupyter默认密码是12345678。

这个就需要我们自己去学jupyter的基本用法了:这里有几个文章可以参考一下
jupyter opencv的用法:Jupyter Notebook + OpenCV 完美组合
Jupyter Notebook 使用技巧:15个应该掌握的Jupyter Notebook 使用技巧
这个我们只需要看它的使用方法部分就好:一文弄懂Jupyter的配置与使用
Jupyter Notebook 保姆级别教程:良心总结!Jupyter Notebook 从小白到高手
我们想要USB摄像头能不能用怎么办?我已经在code文件夹放cv.ipynb,打开那个文件,然后点击运行,就可以看到实时显示的视频流了。

我们在代码中使用cv2.VideoCapture(0),0表示使用第一个摄像头,如果想要使用第二个摄像头,可以改为1,以此类推,但是怎么知道呢?我们只需要在终端输入ls /dev/video*,就可以看到摄像头对应的设备号。
写到了本篇教程的最后,很明显,嵌入式Linux是一个系统,跟Windows一样,如果我们直接关机的话,可能会造成系统崩溃,所以我们需要使用halt命令来关机,halt命令会等待所有进程结束,然后关闭系统。打开终端,输入以下命令就可以关机了,等待香橙派的灯不再闪烁就可以拔掉电源
sudo halt
搭建部署YOLOv8的教程,这里已经包含从准备数据集到训练模型,再到部署模型,最后到使用模型的教程了:从0开始搭建部署YOLOv8系列教程
这个是yolo的官方文档,Ultralytics YOLO 文档
我们以Ubuntu为例,使用代码自启动,需要使用到systemd,systemd是Linux的系统和服务管理器,可以用来管理系统的服务和进程,我们使用systemd来管理代码自启动。
首先,我们需要创建脚本,我们可以用nano创建一个脚本,打开终端,输入以下命令:
nano /home/orangepi/code/start_pi.sh
#!/bin/bash
# 加载Conda环境变量,orangepi是香橙派zero3的用户名,miniconda3是miniconda的安装目录
source /home/orangepi/miniconda3/etc/profile.d/conda.sh
# 激活虚拟环境,cv是虚拟环境的名字,/home/orangepi/code是代码的目录,pi.py是代码的文件名
conda activate cv
# 运行Python脚本
/home/orangepi/miniconda3/envs/cv/bin/python /home/orangepi/code/pi.py
sudo chmod +x /home/orangepi/code/start_pi.sh
sudo nano /etc/systemd/system/pi.service
[Unit]
Description=Run pi.py in cv Conda Environment
After=network.target
[Service]
Type=simple
ExecStart=/home/orangepi/code/start_pi.sh
WorkingDirectory=/home/orangepi/code
StandardOutput=inherit
StandardError=inherit
Restart=always
User=orangepi
[Install]
WantedBy=multi-user.target
sudo systemctl status pi.service
我们就可以使用代码自启动了。
乐鑫ESP32物联网
Arduino基础非常适合新手的开发、掌握基本编程语法和常用函数,结合ESP32的硬件特性,可以快速上手开发各种创意项目。
看完这两个教程并跟着做项目估计就能很流畅的使用ESP32开发项目: 1.ESP32 Arduino 教程 ----- 2.ESP32超详细教程-使用VSCode(基于Arduino框架)
当然,使用esp32最重要的是物联网,既然使用esp32连接网络,我们就需要知道STA和AP协议是什么意思,STA是连接WiFi,AP相当于创造一个热点,在ESP32可以让两个模式都共存。当然这里有更详细的文章介绍这个: WIFI模块无线网络工作模式AP和STA的区别
我们现在就要连接网络进行中国移动OneNet物联网互联:ESP32/ESP8266上云——Onenet物联网平台同步MQTT
当然,我们也可以使用ESP32阿里云的服务器,这里也有详细的教程:STM32+ESP8266(ESP32)+MQTT+阿里云物联网平台
(还没写完。。。)相比Arduino,ESP-IDF提供了更底层的控制和更高的性能,但学习曲线较陡。Arduino则以其简单易用的IDE和广泛的社区支持,适合初学者和快速原型开发。我们就不提供太多的教程。
ESP32教程(基于ESP-IDF)ESP32入门级开发课程[env:esp32-c3-devkitm-1]
platform = espressif32
board_build.flash_mode = dio
board = esp32-c3-devkitm-1
framework = arduino
lib_deps =