|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/arduino-under-the-hood/
课程评论:没有评论
**课程名称:Arduino底层 - 面向专业人士的AVR** **课程概述:** 本课程深入探索Arduino的核心——ATmega328P微控制器,揭示了Arduino库未充分利用的众多强大功能。通过学习外设工作原理,学员将掌握编写高性能、低功耗的代码,使嵌入式系统在依靠小型电池供电的情况下能够长期运行并收集数据。AVR平台的优势在于,课程中的许多概念也适用于其他微控制器,从而为学习ATtiny到ATmega系列等更广泛的AVR家族打下基础。ATmega328P作为示例,其知识点可广泛应用于各种嵌入式系统,而非局限于Arduino平台。 课程强调实践,通过解决实际问题来巩固知识,并提供详细的代码注释、提示和解决方案,帮助学员克服实现过程中遇到的困难。 **课程内容亮点:** * **开发工具与环境:** * GNU编译器集合(GCC)及其工作流程解析 * Makefile的编译:目标、规则与快捷方式 * **C语言与底层开发:** * C语言与指针简介 * 从Arduino库到AVR裸机:精简、加速、节约资源 * C语言常见错误规避 * **AVR硬件特性与应用:** * **外设:** 定时器、计数器、脉冲宽度调制(PWM) * **中断:** 理解和利用中断机制 * **通信协议:** UART/USART, I2C/TWI, SPI, DHT和1-Wire, USI,以及如何模拟不兼容的协议 * **模数转换器(ADC):** 工作原理、无外部元件测量温度、ADC测量电池电量 * **模拟比较器** * **非易失性存储器:** Flash(程序存储器)用于常量存储与程序执行中访问,EEPROM * **熔丝位(Fuses)与锁定位(Lock Bits):** 配置与保护 * **电源管理与低功耗设计:** * 节省功耗:休眠模式(Sleeping)、动态时钟频率调整、关闭不必要的外设 * 唤醒源 * **调试技术:** * 实操调试技巧 * 模拟器(Simulators) * JTAG与debugWIRE调试接口 * **进阶主题:** * 并行任务执行 **学习目标:** 完成本课程后,学员将具备评估现有软件和创建高度优化的嵌入式系统实现的能力,能够最大限度地提升小型微控制器在性能和电池寿命方面的表现。 **授课方式:** 课程提供手工制作的英文字幕,内容侧重于实际应用和概念的实用性。课程结构灵活,学员可根据兴趣和需求自由选择学习顺序。
As one of the most extensive courses available: we will look at everything and more under the hood of Arduino. At its core, the ATmega328P MCU integrates many features that are not exposed through the Arduino library. While learning how the periphery works, the student writes code, exhibiting high performance at low power consumption. Embedded systems deployed in the field and powered by small batteries can run and collect data for years.The enormous advantage of the AVR platform is that many concepts introduced in this course also apply to other MCUs. Therefore, an entire portfolio of MCUs, ranging from the small ATtiny to the larger ATmega series, becomes accessible. The ATmega328P used in this course is just an example and the gained knowledge is applicable to many embedded systems not limited to the Arduino platform. This is motivated by practical sessions and exercises in which real-world problems are to be solved. In case questions during implementation arise, the student can peek at hints and tips and if nothing works, also at the solutions with plenty of comments in the source code.This course provides handmade captions in English covering the following topics, which focus on the practical aspects and what a concept can be used for. In addition, the course does not follow a particular outline and the topics can be taken in any order based on the interest and needs. The covered topics include:GNU Compiler Collection and what happens in every Step and whyA brief introduction to C and PointersMoving from the Arduino library to AVR: Less Luxury, faster Execution, fewer ResourcesHow to compile with Makefiles? Targets, Rules, and ShortcutsEasy Mistakes in C and how to avoid themAttack VectorsPeripheries:Timers, Counters, and Pulse Width ModulationInterruptsCommunication ProtocolsUART/USARTI2C/TWISPIDHT and 1-WireUSIHow to mimic other, formerly incompatible, and unsupported Protocols?Analog-Digital ConverterHow does it work?Measuring the Temperature without external ComponentsMeasuring Battery Level with the ADCAnalog ComparatorNon-volatile MemoriesFlashHow to use the Flash (Program Memory) for Constants?How to use the Flash while executing a Program?EEPROMFusesClock SourcesLock BitsDebuggingRunning the AVR on a BreadboardSaving powerSleepingDynamic Clock FrequencyTurning off unnecessary ComponentsWake-up SourcesDebugging (with practical examples)SimulatorsJTAGdebugWIREBonus Chapter: Parallel Task ExecutionAfter completing this course, the successful student will have the experience not only to evaluate existing software but also create implementations that are highly optimized to be deployed on small microcontrollers to squeeze out every quantum of performance and battery life.