以下是一段针对“2024嵌入式开发与单片机开发教程”的课程简介:
课程简介:
欢迎来到2024年嵌入式开发与单片机开发教程!本课程旨在为零基础或有一定基础的学员提供全面、系统的嵌入式开发与单片机开发知识。通过本课程的学习,你将掌握嵌入式系统的基础理论,熟悉单片机的工作原理与开发流程,并能够独立完成嵌入式项目的开发与调试。
课程内容丰富,涵盖了嵌入式系统的基本概念、单片机的硬件结构、编程语言与开发工具、外设接口技术、通信协议、低功耗设计等多个方面。我们提供详细的视频教程,配合丰富的资料(总计102G),让你轻松掌握嵌入式开发与单片机开发的核心技能。
无论你是电子工程专业的学生,还是希望转行进入嵌入式开发领域的工程师,本课程都将是你不可多得的学习资源。快来加入我们,开启你的嵌入式开发与单片机开发之旅吧!
希望这段课程简介能够满足你的需求,吸引更多学员加入学习。
这个课程文件目录看起来是一个非常详尽的嵌入式开发和单片机开发教程,分为多个阶段,每个阶段都包含了丰富的教学资源。以下是针对您提供的文件目录的一个概括:
课程名称:黑马 – 嵌入式开发 – 单片机开发教程2024
文件总大小:102.63GB
课程阶段划分:
- 01阶段:模拟电路, 计算机原理
- 02阶段:C语言编程
- 后续阶段未列出,但包括03-09阶段
01阶段:模拟电路, 计算机原理
- 计算机组成原理
- 课程背景介绍
- 学习步骤
- 计算机历史回顾
- 位值计数法
- 十进制和二进制
- 二进制的运算
- 常见的容量单位
- 二进制表示文字
- Unicode编码
- 二进制存储图片
- 声音的二进制存储
- 视频文件的二进制存储
- 与门电路的搭建
- 或门电路的搭建
- 非门和异或门电路搭建
- 用基础门电路可以搭建任意电路
- 与门电路的原理图
- 或门异或门的原理图
- 门电路PCB的设计
- 半加器电路的搭建
- 全加器电路搭建
- 搭建8位的加法器
- 改造加法器电路的输入和输出
- 下拉电阻修复加法器的bug
- 计算机溢出的问题
- 补码的计算方法
- 乘法和除法电路的实现原理
- 系统的加减乘除组件
- 电路记忆数据的原理
- 用锁存器记录一个bit
- 用8个锁存器搭建一个8位寄存器
- 使用元器件数量的计算
- 时钟的概念
- 带有边缘触发的寄存器的实现
- 利用继电器构建一个驱动器
- 优化内存的走线
- 内存单元格的构建
- 构建内存单元格和内存地址
- 内存条的堆叠工艺
- 计算机系统里面的重要概念
- 构建一个好用的8位寄存器
- 构建一个ALU模块
- 搭建CPU的内部ALU
- 搭建计算机的外部内存
- 计算机系统搭建粗稿
- 手动版本计算机一代
- 手动版本计数器二代
- 修复一个短路的小细节
- 手动完成计算机程序的执行
- 显卡和显存工作的原理
- 显示器驱动程序原理
- 查找表的工作原理
- 增加CPU的控制单元
- CPU的控制器实现
- 自动CPU的完成
- IP核,后门和漏洞
- 高性能CPU技术
- 杂项知识点
- 复习
- 模拟电路
- 课程背景简介
- 电流是如何产生的
- 电流的单位和方向
- 直流电和交流电
- 电压的概念
- 直流电源使用简介
- 小实验:直流电源
- 小实验:电压和电流的关系
- 小实验:LED灯的电压和电流
- 欧姆定律
- 欧姆定律串并联的计算
- 根据数据手册计算电阻值
- 安全电压
- 电阻器入门
- 电阻的3个重要参数
- 电容器
- 电容的正负极
- 超级电容
- 电和磁的关系
- 电感阻止电流的突变
- 保险丝和熔断器
- 连接器
- 蜂鸣器
- 万用表测电阻
- 万用表测电压
- 万用表测电容和测短路
- 万用表测电流
- CircuitJS的使用
- 毫安时和毫瓦时
- 电池和容量概念
- 欧姆定律和电阻串并联仿真
- 电容器和电感器的仿真
- 电感和电容组成开关电源
- 分压器可变电阻和电位器仿真
- 电学的几个重要定律
- 继电器原理
- 三极管原理
- 三极管的仿真实验
- 非接触测电笔
- 三极管的放大倍数
- 数据手册
- NE555原理图绘制
- NE555的触发和触发控制
- 双稳态触发器概念
- 双稳态触发器的变化过程
- NE555添加双稳态触发器
- NE555外围电路的设计
- 模拟电路制作电子琴的原理
- NE555的硬件创作
- 嘉立创EDA
- 原理图和PCB设计
- 提交订单生产的流程
- 人体感应控制器
- 感应控制器的布线
- 电子琴的原理图绘制
- 电子琴PCB的绘制
- 思维导图使用
- 语雀使用
02阶段:C语言编程
- day01
- C语言简介
- C语言编程环境
- C代码块设置
- HelloWorld程序解析&注释
- 变量的语法
- 标识符命名规则
- char类型
- 布尔类型
- 数据类型的长度
- 可移植类型
- 常量&系统中定义的常量
- 进制表示
- 原码&反码&补码
- 输出函数printf&占位符
- scanf输入函数
- 圆的周长&面积计算
- 算数运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 今日总结
- 作业练习
- day02
- 与运算
- 或&异或运算
- 取反运算
- 左移&右移运算符
- 位移运算示例
- 位移运算综合练习
- 类型转换
- if&ifelse示例
- 三元运算符
- 天猫购物案例
- 天猫购物案例优化版
- switch案例
- 分支的综合案例
- while&do_while循环
- 死循环
- 循环嵌套
- break关键字
- continue关键字
- goto关键字
- 今日总结
- 作业练习
- day03
- 函数的概述
- 无参无返回值函数
- 有参无返回值&有参有返回值函数
- 函数的声明&案例
- 局部变量&全局变量
- 多文件编程
- extern关键字
- 指针的概念
- 指针变量的定义和使用
- const修饰指针变量的使用
- 指针的大小
- 指针的步长
- 野指针与空指针
- 多级指针
- 值传递&址传递
- 函数指针
- 今日总结
- 作业练习
- day04
- 数组的使用
- 数组的初始化及名字的含义
- 数组求最大值
- 数组案例
- 回调函数
- 数组和指针
- 指针数组
- 数组名做参数传递
- 字符串与字符数组的关系
- 字符串输入输出
- 字符指针&字符串库函数
- 字符串案例
- 结构体的定义&使用
- 结构体值传递&址传递
- 共用体
- 枚举
- typedef关键字
- 今日总结
- 作业练习
- day05
- 内存分布介绍
- 堆内存的使用
- 内存分布代码分析
- 链表介绍
- 链表的实现
- 智能门锁管理系统简介
- 欢迎界面
- 管理界面&密码管理界面
- 密码存储链表头文件声明
- 今日总结
- 作业练习
- day06
- 添加密码
- 需求变更(添加密码)
- 删除密码(界面)
- 删除密码(链表删除)
- 删除所有密码(界面+链表删除)
- C语言总结
- 作业练习
这段课程目录涵盖了STC8增强型单片机开发的各个方面,从单片机的基础知识到具体的开发应用,再到Python与上位机开发的内容。下面是各个部分的简要概述:
03阶段:STC8增强型单片机开发
day01
- 课程简介
- STC系列产品的介绍
- MCU的CPU和外设关系
- Keil软件的安装与激活
- Keil创建第一个STC8工程
- Keil编写代码及烧录流程
- IO模式配置
day02
- 知识回顾
- IO模式:高阻输入 & 开漏输出
- 软延时操作
- 点灯:通过寄存器实现
- 点灯:通过库函数实现
- 使用Delay库函数实现延时
- Logicanalyzer逻辑分析仪的使用
- Astyle格式化工具
- UART串口基础知识
- UART初始化
- UART数据的接收并回显
- 使用逻辑分析仪解析数据
- 串口通讯测试需求
- UART1和UART4数据通讯实现
day03
- 知识回顾
- 认识中断系统
- 通过UART1中断函数开关灯
- 不同主频下机器周期的执行时间
- extern关键字
- Timer的初始化及配置
- Timer的定时器自动重装机制
- LED灯组:全部点亮
- LED灯组:走马灯
day04
- 知识回顾
- LED灯组:UART串口控制
- LED灯组:Timer调整灯的亮灭
- PWM简介
- LED灯组:PWM控制
- LED灯组:PWM呼吸灯
- ADC采样:电位器电压
- ADC采样:内部1.19v参考信号源
- ADC采样:热敏电阻测温原理
- 震动马达
- 震动马达:PWM控制
day05
- PWM频率 & 周期 & 占空比
- 知识回顾
- ADC采样:热敏电阻求出阻值
- 独立按键:获取单个按钮状态
- 数码管:认识数码管
- 数码管:使用digital模拟
- 数码管:移位寄存器的操作方式
- 数码管:输出数据到移位寄存器
day06
- 知识回顾
- 数码管:两个字节控制
- 蜂鸣器:发声原理
- 蜂鸣器:播放哆来咪发唆拉西哆
- 蜂鸣器:播放两只老虎
- 蜂鸣器:播放天空之城
day07
- 知识回顾
- RTC时钟芯片的电路
- I2C总线简介
- RTC时钟芯片:读取数据
- RTC时钟:设置闹钟Alarm
- 外部中断:INT0 & INT3
day08
- 考试题讲解
- RTC时钟:封装Alarm
- RTC时钟:实现Timer
day09
- 知识回顾
- 0.96寸OLED显示屏:介绍
- DHT11温湿度传感器的数据时序
- DHT11温湿度:解析数据
- 矩阵键盘:全部按钮
- 了解EEPROM
- 使用EEPROM读写字符串
day10
- 知识回顾
- DHT11温湿度传感器:封装
- SPI协议OLED屏幕:官方示例
- 矩阵键盘:全部按钮
- 了解EEPROM
day11
- 知识回顾
- 封装USB的HID协议驱动
- USB键盘:集成矩阵键盘
- USB鼠标:实现移动 & 按键
day12
- 知识回顾
- 新建STC8H原理图 & 供电
- CH340及周围电路
- 线性稳压器5V-3.3V
- 线性稳压器LDO:可调输出ADJ
- Type-C接口
- PCB设计:摆放元器件
day13
- 串口烧录器:原理图提取
- 串口烧录器:PCB布局
- 小闹钟:原理图与时钟芯片
- 小闹钟:PCB电源走线
day14
- 知识复习
- 了解最小操作系统
- RTX51系统:多任务执行
- 巡线小车:简介
- 巡线小车:车灯控制
day15
- 知识回顾
- 超声测距:原理
- 循迹传感器:读取所有光电传感器状态
- 循迹传感器:计算小车转弯方向
- 巡线小车:PWM控制所有车轮
day16
- 巡线小车:根据按钮切换巡线功能
- 蓝牙模块:简介
- 蓝牙模块:通讯流程
- 蓝牙模块:AT指令
- 遥控小车:接收并处理模拟遥控器数据
day17
- 舵机PWM的控制原理
- 舵机PWM:工程初始化
04阶段:Python与上位机开发
day01
- 课程简介
- Python环境安装
- Python的第一个程序
- Python的基本数据类型
- Python变量及运算符
- Python输入输出函数
day02
- Python基础知识回顾
- List列表
- Tuple元组
- Function函数
- 黑马名片管理系统
- Str字符串的常见操作
day03
- 知识回顾
- 推导式
- 面向对象概念
- 类和对象
- 声明类 & 创建对象
- 特殊方法和参数
- 面向对象:封装
- 面向对象:继承
- 面向对象:多态
- Pygame环境准备
day04
- 知识回顾
- Pygame基本操作
- Pygame绘制背景图 & 线条
- Pygame封装Snake和Food
- Pygame吃掉食物 & 更新食物
day05
- 知识回顾
- Module:导入模块中的功能
- 常用系统内置模块:sys_datetime等
- 异常捕获try_except
- 常见异常
- 自定义异常
- 文件的读取
- 文件的写入
day06
- 知识回顾
- 版本控制系统Git
- 配置忽略文件
- GUI工具操作
- 将新建项目 & 已有项目添加版本管理
- 使用VSCode编辑器提交代码
day07
- 知识回顾
- PyQt环境搭建:VSCode插件
- PyQt创建窗口 & 并设置窗口信息
- PyQt文本、图片及输入组件
- PyQt按钮
- PyQt布局Layout
- PyQt对话框
day08
- 知识回顾
- IP地址
- 端口和端口号
- Socket套接字
- TCP特点
- TCP拓展知识:三次握手 & 四次挥手
- UDP介绍
- 多任务介绍:并发 & 并行
- 多任务开发:线程
day09
- 知识回顾
- 初始化PyQt5实用工具UI
- 网络工具:TCP客户端
- 网络工具:TCP服务器
- 串口工具:PySerial的使用
- 串口工具:UI界面搭建
- 串口工具:扫描所有设备
- 串口工具:通过子线程异步接收数据
day10
- 知识回顾
- Python的蓝牙模块PyBlueZ调试设计
- 蓝牙助手:初始化UI
- 蓝牙助手:扫描所有蓝牙设备
- 蓝牙助手:连接设备并更新状态
- 聊天室:UI界面搭建
- 聊天室:聊天室数据获取
- 聊天室:发送消息
这个课程目录涵盖了GD32单片机开发的各个方面,从GD32单片机的基础知识到具体的开发应用。下面是对这些视频内容的一个简要概述:
05阶段:GD32开发
day01
- 开发板介绍
- 扩展板介绍
- 51单片机和ARM说明
- 芯片内部外设概述
- ARM32芯片介绍
- 梁山派说明
- Keil安装说明
- GPIO点灯实现
- SPL库和HAL库
- GD32标准库资料下载
- GD32外设库文件系统介绍
- GD32模板创建
- STM32 SPL库移植V5
- STM32点灯测试
- STM32 V6问题
day02
- 转接板介绍
- 梁山派原理图初步说明
- 转接板引脚说明
- GPIO引脚内部寄存器控制电路详解
- GPIO的推挽和开漏
- GPIO的输入模式
- GPIO输出和输入案例
- 总线介绍
- 时钟树介绍
- 电量显示需求说明
- 模拟开始充电和结束充电
- 模拟电量增加
- BSP驱动初始化
- BSP驱动开始和结束的业务
- BSP流水灯初步实现
day03
- STM32 GPIO输入操作
- STM32 流水灯实现
- 串口基础理论
- 串口初始化API详解
- 串口发送调试
- 串口发送流程
- 串口发送字符串和printf
- 串口发送配置需要关注的点
- 串口接收的配置
- 串口接收中断状态变化说明
- 串口接收中断过程说明
- GD32串口驱动封装
- STM32串口封装实现
day04
- 中断机制
- 外部中断相关概念
- 外部中断初始化
- 按键外部中断实现
- Systick实现tick计时
- 外部中断的特殊案例
- 中断优先级介绍
- 中断优先级配置
- 中断优先级小实验
- 外部中断简单封装
day05
- 定时器初步认知
- 基本定时器初始化配置
- 基本定时器周期和频率配置
- 通用定时器配置实现
- 定时器多通道的配置
- 蜂鸣器实现
- 定时器前期封装准备
- 定时器封装完成
day06
- 高级定时器配置
- DMA通讯过程
- DMA的一些关键文档信息
- DMA的初始化常规配置
- DMA实现内存到内存的功能
- DMA动态配置内存到内存的实现
day07
- DMA发送流程
- DMA数据发送地址配置
- DMA数据发送细节配置
- DMA数据发送调试
- DMA数据发送优化
- DMA串口接收配置
- DMA串口接收流程分析
- STM32 DMA内存到内存
- STM32 DMA发送配置
- STM32 DMA接收实现
- GD32 RTC时钟介绍
- GD32 RTC时钟日期配置和读取
day08
- RTC时钟闹钟参数配置
- 看门狗的基本概念
- 独立看门狗实现
- 窗口看门狗实现
- I2C一些常规理论
- I2C写数据的流程
- I2C写的开始结束和数据发送信号
- I2C操作的基本环境准备
- I2C基本信号函数定义
- I2C的start和stop信号实现
day09
- I2C通讯回顾
- I2C读取流程
- I2C读取流程代码表达
- I2C读数据信号的实现
- I2C硬件电路的初始化配置
- I2C硬件电路写数据实现
day10
- 数码管驱动移植
- GD32的OLED屏幕驱动移植
- GD32的I2C移植过程中发送数据格式问题
- GD32的I2C硬件实现
- I2C驱动封装实现
- GD32核心板MCU选型
day11
- 平衡车功能分析
- 电机介绍
- 线规格选型说明
- 姿态传感器介绍
- 梁山派母座元件创建
- 梁山派母座封装创建
- 电机驱动芯片选型
- 电机驱动原理图绘制
- MPU6050绘制
day12
- 布局摆放
- 电机模块摆放
- 电机模块引脚选型和电源走线
- MPU6050布线说明
- 蜂鸣器电路布线
- 其他模块布线说明
day13
- ADC原理介绍
- ADC初始化配置介绍
- ADC温度采样结果
- ADC主频和采样时间的关系
- ADC的DMA分析和配置
- SPI基础概念介绍
- SPI的时钟极性和相位极性
- SPI的传输和采样的几种模式
- SPI屏幕移植
day14
- SPI调试环境的搭建
- SPI协议bug处理
- SPI协议的抽象封装
- SPI软实现应用到OLED中
- SPI硬实现初始化
- SPI读写的实现和分频处理
- SPI Flash示例源码获取
- SPI Flash源码迁移
day15
- PMU电池管理单元介绍
- PMU的三种省电模式
- PMU模式初始化
- HAL库点灯实现
- HAL库开发过程的强调
- HAL库时钟配置
- HAL库串口发送实现
- HAL库中断和DMA发送
- HAL库串口接收实现
- HAL库ADC配置
day16
- HAL库I2C配置
- HAL库SPI配置实现
- HAL库TIM的环境搭建
- FreeRTOS介绍
- FreeRTOS的源文件导入
- FreeRTOS移植中断接管问题
- FreeRTOS移植配置问题
day17
- 临界区的介绍
- 内存分配说明
- FreeRTOS中断介绍
- FreeRTOS官方文档介绍
- FreeRTOS的软件定时器
- 创建二进制信号量
- 计数型信号量演示
- 互斥信号量演示
- 递归互斥信号量演示
- FreeRTOS中的消息队列
- FreeRTOS队列入队和出队
day18
- 事件组的基本概念
- 事件组多事件触发
- 姿态简单介绍
- MPU6050移植
- 示波器功能介绍
- 验证MPU功能是否可用
day19
- 编码器环境准备
- 编码器测数实现
- 定时器正交编码器
- 项目架构设计
- 项目结构新建
- BSP驱动开发和PML联动
- BSP驱动开发的优化
- 环形缓冲区介绍
- 环形缓冲区创建
- 开发板消息解析的实现
day20
- 内存处理操作
- 具体协议的解析
- PID理论介绍
- 小车PID目标和测量值
- I和D的介绍
- P值的范围选择
- D值问题
- 速度环调节
这个课程大纲涵盖了LVGL图形用户界面开发、JIeli AC79系列芯片开发以及ROS(Robot Operating System)下的Linux驱动开发等内容。下面是针对每个阶段的简要概述:
06阶段:LVGL开发
day01
- LVGL概述:介绍LVGL的历史、特点和应用场景。
- LVGL模拟器环境:搭建LVGL模拟器环境以便在PC上测试LVGL应用。
- 配置mingw环境:配置mingw编译环境用于LVGL的编译。
- 运行LVGL模拟器环境:演示如何运行LVGL模拟器。
- 显示一个按钮:展示如何在LVGL中显示一个按钮。
- 显示样式:介绍LVGL中的样式系统。
- 显示label:展示如何在LVGL中显示文本标签。
- 改变label字体大小和颜色:调整label的样式属性。
- 如何显示中文:介绍如何在LVGL中支持中文显示。
- 显示button:展示如何在LVGL中显示一个按钮。
- 按钮事件的处理:介绍如何处理按钮点击事件。
- 按钮状态可选:按钮的不同状态(如按下、释放)。
- btnmatrix按钮矩阵:展示如何在LVGL中创建按钮矩阵。
- textarea显示:展示如何在LVGL中显示多行文本框。
- img显示:展示如何在LVGL中显示静态图像。
- gif显示:展示如何在LVGL中显示动态GIF图像。
- 布局相关:介绍LVGL中的布局管理器。
- 界面切换:介绍如何在LVGL中实现不同界面间的切换。
- tabview:展示如何在LVGL中使用标签视图组件。
day02
- 环境搭建的问题说明:解决在搭建LVGL环境过程中可能遇到的问题。
- squareline界面说明:介绍squareline UI框架的基本概念。
- 查看示例工程:浏览LVGL提供的示例工程。
- 创建UI工程:指导如何创建一个新的LVGL UI工程。
- 完成时钟转动的代码:实现一个简单的时钟界面。
- 移植准备工作:介绍移植LVGL到特定硬件平台所需的准备工作。
- 移植源代码:展示如何移植LVGL源代码到目标平台。
- 移植显示部分:移植LVGL的显示驱动。
- 移植触摸部分:移植LVGL的触摸驱动。
day03
- 上次课内容回顾:复习上一节课的内容。
- 移植smartwatch:展示如何将LVGL移植到智能手表项目中。
- 实现代码逻辑:编写LVGL应用程序的具体逻辑代码。
- 编写按钮与文本刷新案例:实现按钮点击后文本刷新的案例。
- 使用VSCode编写Keil工程:介绍如何使用VSCode来编写Keil工程。
- 导入FreeRTOS模板:导入FreeRTOS模板到项目中。
- 导入LVGL源代码:导入LVGL源代码到项目中。
- 编写5个核心代码:编写五个核心代码片段,用于驱动LVGL。
07阶段:JIeli AC79开发
day01
- 输出helloitheima:在AC79系列芯片上输出“helloitheima”。
- 输出日志:介绍如何在AC79系列芯片上输出调试信息。
- 点灯:展示如何控制AC79系列芯片上的LED。
- PWM控制灯:使用PWM信号控制LED的亮度。
- 添加自己的C文件:向工程中添加自定义的C源文件。
- 添加按键功能:添加按键功能,并处理按键事件。
- 演示音乐的播放:展示如何在AC79系列芯片上播放音频文件。
- UART收发数据:实现AC79系列芯片通过UART接口收发数据。
- 内容小结:总结本节课程的主要内容。
day02
- 物联网项目分析:分析物联网项目的整体架构和技术栈。
- 开发方式:介绍物联网项目的开发流程和方法。
- cJSON文档阅读:阅读cJSON文档,了解如何使用cJSON进行JSON数据的解析。
- cJSON移植到Keil中:将cJSON移植到Keil环境中。
- 验证SDK连接:验证AC79系列芯片SDK与云平台的连接。
- 使用通用MQTT_SDK验证连接:使用MQTT SDK验证与云平台的连接。
- 全流程上传逻辑:实现数据从AC79系列芯片上传至云平台的完整流程。
- 全流程下载逻辑:实现数据从云平台下载到AC79系列芯片的完整流程。
day03
- 流程回顾:回顾整个物联网项目的流程。
- 编写串口收发函数:编写串口收发数据的函数。
- 配置WiFi信息:配置AC79系列芯片连接WiFi的信息。
- 网络连接部分:实现AC79系列芯片与互联网的连接。
- mqtt_demo代码编写:编写mqtt_demo代码,实现与云平台的通信。
- uart与mqtt代码合并:将UART通信代码与MQTT通信代码合并。
- 屏蔽SDK中的日志:屏蔽SDK中的日志输出。
- 梁山派端代码修改:修改梁山派端的代码。
- 物联网项目小结:总结物联网项目的开发过程和经验教训。
08阶段:Linux驱动(ROS)
day01-linux
- Linux操作系统简介:介绍Linux操作系统的基本概念和发展历史。
- Linux的文件和目录:介绍Linux文件系统的基本结构。
- 命令的组成和帮助文档:讲解Linux命令的基本语法和获取帮助的方法。
- 查看和切换目录:演示如何使用
cd
和ls
命令查看和切换目录。 - 文件和文件夹命令:介绍常用的文件和文件夹操作命令。
- 输出重定向和查看文件内容:讲解如何使用重定向和管道操作。
- grep和find:介绍文本搜索工具
grep
和文件查找工具find
。 - 管道:讲解如何使用管道连接多个命令。
- 字母法修改权限:介绍如何使用字母表示法修改文件权限。
- 文件压缩和解压缩:介绍如何使用
tar
和gzip
等工具进行文件打包和压缩。 - 软件卸载和安装:讲解如何在Linux环境下安装和卸载软件包。
day02-linux
- debug串口连接鲁班猫:介绍如何通过串口连接鲁班猫开发板。
- 共享网络连接鲁班猫:演示如何让鲁班猫开发板连接到网络。
- 鲁班猫引脚说明:介绍鲁班猫开发板的引脚功能。
- GPIO操作:演示如何操作GPIO口。
- pwm控制:展示如何使用PWM控制信号。
- uart通信:介绍如何实现UART通信。
- VSCode远程开发和pip镜像:讲解如何使用VSCode进行远程开发以及设置pip镜像源。
- gpiod引脚输入和输出:使用gpiod工具操作GPIO口。
- periphery:介绍periphery库的使用。
- 串口代码控制:编写代码控制串口通信。
day03-opencv
- OpenCV安装:介绍如何在Linux环境下安装OpenCV。
- 读取图片:演示如何使用OpenCV读取图片。
- 操作像素:介绍如何访问和修改图像的像素值。
- 图像剪切:展示如何使用OpenCV裁剪图像。
- 图像的镜像处理:演示如何水平或垂直翻转图像。
- 图像的位移:展示如何平移图像。
- 仿射变换:介绍如何使用仿射变换旋转或倾斜图像。
- 图像金字塔:介绍图像金字塔的概念及其应用。
- 图像的融合:演示如何混合两张图像。
- 彩色图像转灰度:展示如何将彩色图像转换为灰度图像。
- 颜色反转:演示如何反转图像的颜色。
- 图像马赛克效果:展示如何给图像添加马赛克效果。
- 绘制图像信息:介绍如何在图像上绘制文本和图形。
day04-opencv
- 读取视频数据:演示如何使用OpenCV读取视频文件。
- 读取摄像头数据:展示如何使用OpenCV捕获摄像头数据。
- 截取图片中的网球:演示如何从图片中提取特定的对象。
- 图像的二值化:介绍如何将图像转换为黑白二值图像。
- 自适应阈值:介绍自适应阈值的概念及其应用。
- 图像卷积运算概念:介绍卷积运算的基本原理。
- 三种滤波算法:介绍高斯模糊、均值模糊和中值模糊三种常见的滤波算法。
- Sobel算子:介绍Sobel算子及其在边缘检测中的应用。
- Scharr函数:介绍Scharr函数及其与Sobel算子的区别。
- 拉普拉斯算法:介绍拉普拉斯算子及其在边缘检测中的应用。
- Canny边缘检测:介绍Canny边缘检测算法。
- 图像锐化处理:介绍如何增强图像的边缘和细节。
- 霍夫直线概念:介绍霍夫变换的概念及其在直线检测中的应用。
- 查找棋盘中所有的线段:演示如何使用霍夫变换检测棋盘中的线段。
- 霍夫圆形:介绍如何使用霍夫变换检测圆形。
day05-opencv
- 形态学变换概述:介绍形态学变换的基本概念。
- 膨胀操作:介绍如何使用膨胀操作扩大图像中的前景区域。
- 腐蚀操作:介绍如何使用腐蚀操作缩小图像中的前景区域。
- 开操作:介绍如何使用开操作去除噪声。
- 闭操作:介绍如何使用闭操作填充前景物体中的小孔。
- 距离变换:介绍距离变换的概念及其在图像处理中的应用。
- 零件计数:演示如何使用OpenCV统计图像中的物体数量。
- 车道线检测:介绍如何使用OpenCV检测车道线。
- 移动侦测功能:演示如何检测视频帧之间的运动。
- 图像切边:介绍如何从图像中裁剪特定区域。
- 删除图像中所有的英文:演示如何从图像中删除英文字符。
- 鼠标监听:介绍如何使用OpenCV监听鼠标事件。
- 图片修复功能:演示如何修复图像中的缺陷。
day06-ros
- 鲁班猫连接摄像头:介绍如何连接鲁班猫开发板与摄像头。
- 打开摄像头:演示如何使用ROS打开摄像头并显示图像。
- ROS介绍:介绍ROS的基本概念和发展历史。
- ROS环境安装:介绍如何在Linux系统中安装ROS环境。
- ROS节点介绍:介绍ROS节点的基本概念和用途。
- turtlesim和rqt:介绍turtlesim模拟器和rqt图形化工具。
- topic通信:介绍ROS中topic通信的基本原理。
- service通信:介绍ROS中service通信的基本原理。
- 第一个ROS节点:编写并运行第一个ROS节点。
day07-ros
- 节点图片处理和加载:介绍如何在ROS节点中加载和处理图像。
- 苹果检测节点实现:实现一个用于检测苹果的ROS节点。
- 摄像头识别苹果实现:演示如何使用ROS和摄像头识别苹果。
- topic发布者:实现一个发布图像数据的ROS topic发布者。
- topic订阅者:实现一个订阅图像数据的ROS topic订阅者。
- 自定义msg:介绍如何定义自定义的消息类型。
- 自定义msg使用:演示如何使用自定义的消息类型。
- 节点打开摄像头:编写ROS节点打开摄像头并获取图像数据。
- 接收摄像头节点画面:编写ROS节点接收来自摄像头的数据流。
day08-ros
- topic多对多通信实现:演示如何在ROS中实现多个发布者和多个订阅者的通信。
- 小乌龟控制程序初始化:初始化用于控制小乌龟的ROS节点。
- 小乌龟控制布局:设计用于控制小乌龟的用户界面布局。
- 小乌龟线速度和角速度控制:实现对小乌龟线速度和角速度的控制。
- 订阅小乌龟位置:实现订阅小乌龟当前位置的功能。
- service通信server端实现:实现一个用于处理请求的服务端。
- service通信client端实现:实现一个用于发送请求的客户端。
- 自定义srv消息:定义自定义的服务消息类型。
- apple检测流程:演示苹果检测的整个流程。
- 苹果检测图像发布:发布苹果检测结果的图像数据。
- apple检测server端:实现处理苹果检测请求的服务器端。
day09-ros
- 扫地机器人界面搭建:搭建用于控制扫地机器人的用户界面。
- 小乌龟位置信息订阅:实现订阅小乌龟位置信息的功能。
- 小乌龟移动到前方位置:实现控制小乌龟移动到前方指定位置的功能。
- 通过PID调节小乌龟移动速度:使用PID控制器调节小乌龟的速度。
- 小乌龟转向任意方向实现:实现控制小乌龟转向任意方向的功能。
- param参数命令:介绍如何使用ROS参数命令。
- launch文件实现:介绍如何编写ROS launch文件。
- 节点名和命名空间:介绍ROS中的节点名和命名空间概念。
- topic重定向:介绍如何在ROS中重定向topic。
- param参数和yaml文件加载:介绍如何加载YAML文件中的参数。
day10-ros
- 鲁班猫串口调试:介绍如何调试鲁班猫开发板的串口通信。
- usart1串口实现:实现鲁班猫开发板的USART1串口通信。
- 上位机和下位机通信流程:介绍上位机与下位机通信的一般流程。
- struct回顾:回顾C语言中的结构体。
- rk3566给gd32发数据流程:演示rk3566与gd32之间的数据发送流程。
- gd32发送数据给rk3566流程:演示gd32向rk3566发送数据的流程。
- 整合上位机和下位机通信:整合上位机与下位机的通信。
- usb_cam摄像头节点:实现用于控制USB摄像头的ROS节点。
- rk3566识别车道线:演示rk3566如何识别车道线。
- 上位机通过串口发布线速度和角速度:演示上位机通过串口向rk3566发布速度和角速度信息。
09阶段:机器狗项目
day01
- 机械狗介绍:介绍机械狗的基本构造和工作原理。
- 机械狗自由度介绍:介绍机械狗的自由度和关节。
- 机械狗扩展版设计介绍:介绍机械狗扩展版的设计理念。
- 舵机驱动:介绍舵机的工作原理及其驱动方法。
day02
- 正解和逆解:介绍机械臂的正向运动学和逆向运动学。
- 常见狗腿逆解:介绍常见的狗腿逆向运动学解决方案。
- 狗腿逆解alpha:详细介绍狗腿逆向运动学中的alpha角计算。
- 狗腿逆解abc夹角:介绍狗腿逆向运动学中的abc夹角计算。
- 绘制所有的狗腿直线:演示如何在计算机上绘制狗腿的运动轨迹。
- 手动设置狗腿目标点:演示如何手动设置狗腿的目标位置。
day03
- 狗腿反解补充:补充讲解狗腿逆向运动学。
- 摆动曲线和步态规划:介绍摆动曲线的概念和步态规划。
- 舵机初始化及角度控制:介绍如何初始化舵机并控制其角度。
- 8个舵机控制:演示如何同时控制8个舵机。
- 下位机实现反解:介绍如何在下位机上实现逆向运动学。
- 安装角度及舵机偏差调节:介绍如何调整安装角度和校准舵机偏差。
- 小跑步态实现:实现机械狗的小跑步态。
- 小跑步态实现常见动作:演示机械狗小跑步态下的常见动作。
如果您有具体的问题或者需要进一步的帮助,请随时告诉我。
THE END