高一信息技术《走进Arduino的世界》教学设计_第1页
高一信息技术《走进Arduino的世界》教学设计_第2页
高一信息技术《走进Arduino的世界》教学设计_第3页
高一信息技术《走进Arduino的世界》教学设计_第4页
高一信息技术《走进Arduino的世界》教学设计_第5页
已阅读5页,还剩17页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高一信息技术《走进Arduino的世界》教学设计一教学设计说明本教学设计依据《普通高中信息技术课程标准(2017年版2020年修订)》中“信息系统设计与实现”模块及“开源硬件项目设计”选修模块要求编制。浙江省新课改背景下,兴趣特长类选修课程旨在突破学科边界,以项目式学习为主线,培养学生计算思维、工程思维与创新意识。Arduino作为开源硬件平台的典型代表,其软硬件结合的特性,为高中生理解嵌入式系统、物联网雏形提供了低门槛、高上限的载体。学情分析显示,高一学生已完成“信息技术基础”必修模块,具备Python或C语言基础语法认知,但缺乏硬件电路与底层驱动认知。部分学生有机器人社团经历,大多停留在图形化编程或成品拼装层面。教学需从“会用”向“懂理、会改、能创”跃迁,重点解决软硬件协同、时序逻辑、信号采集与执行三大认知断层。教材选用省教研室推荐校本教材《开源硬件项目设计》第一单元,配套ArduinoUnoR3开发板、面包板、基础传感器扩展包。教学环节设计遵循“情境引入拆解认知代码实现现象观测原理归纳迁移拓展”六步法,嵌入故障诊断与代码重构环节,强化工程素养。评价体系引入过程性评价量表,覆盖硬件接线规范、代码注释质量、故障排查日志、小组协作贡献四个维度,落实核心素养显性化。二教学目标1.信息觉悟:辨析模拟信号与数字信号在物理层面的本质差异,理解微控制器对物理世界的感知与控制机制,建立“物理实体信号转换数据处理执行反馈”完整信息系统模型。2.计算思维:掌握ArduinoIDE开发环境配置、库文件管理、串口调试技巧;能将控制逻辑抽象为流程图,用C/C++语法实现顺序、分支、循环结构;会用模块化思想封装传感器驱动函数,提升代码复用性。3.工程思维:熟练使用万用表测量电压、电阻、通断;规范完成面包板搭建、杜邦线布线、共地处理;具备读取原理图、数据手册关键参数能力;能针对“上传失败、现象异常、数值漂移”三类典型故障,制定分级排查方案。4.数字化学习与创新:完成从“跟随教程点亮LED”到“设计智能台灯/温控风扇”原型迭代;学会在GitHub、Gitee检索开源库,遵循GPL协议二次开发;培养文档记录习惯,产出包含原理图、源码、测试视频的项目档案袋。5.信息社会责任:遵守实验室用电安全规范,理解开源文化中“贡献代码、共享成果”伦理;关注电子垃圾环保处理,设计低功耗休眠模式,践行绿色计算理念。三重难点分析重点:Arduino最小系统硬件架构认知;GPIO数字/模拟口复用机制;`setup()`与`loop()`双核心函数执行时序;PWM模拟输出原理与`analogWrite()`参数映射;串口通信协议波特率匹配与数据帧解析。难点:按钮消抖算法的软硬件双重实现逻辑;`millis()`非阻塞定时替代`delay()`的状态机重构思维;多任务并发控制下的变量作用域与全局标志位管理;模拟量读取噪声滤波(滑动平均/卡尔曼简化)的工程落地。四教学策略与资源准备策略组合:项目式学习(PBL)贯穿始终,以“智能互动装置设计”为驱动任务;搭建“脚手架”教学,提供半成品代码框架、接线对照表、故障案例库;实施分层教学,基础组完成单外设控制,提高组挑战多传感器融合与低功耗优化;引入同伴互评与专家(教师)复评机制。环境配置:机房预装ArduinoIDE2.3.2、CH340驱动、串口绘图器插件;每组配备1套主控板、1个400孔面包板、30根公对公杜邦线、LED×5、220Ω/10kΩ电阻各10、按键×2、光敏电阻×1、NTC热敏电阻×1、无源蜂鸣器×1、SG90舵机×1、USB数据线×1;教师机投屏展示示波器波形、逻辑分析仪时序图;班级建立钉钉/飞书资源库,存放数据手册、参考代码、评价量表。五教学过程设计(共12课时,每课时40分钟)(一)第一课时:初识开源硬件·硬件架构拆解情境导入:展示智能家居控制中枢、自动浇花装置、平衡小车三类成品视频,提问:核心控制器是什么?学生回忆单片机最小系统概念,引出ArduinoUnoR3实物观察。拆解认知:分组拆解开发板,填写《硬件结构认知卡》。重点定位:ATmega328P主控芯片(Flash32KB、SRAM2KB、EEPROM1KB)、16MHz晶振、USB转串口芯片CH340G、DC电源接口(712V)、ICSP烧录接口、复位按键、电源指示灯、内置LED(引脚13)、数字引脚013(含PWM~3,5,6,9,10,11)、模拟输入A0A5、电源引脚组(VIN,5V,3.3V,GND,AREF,RESET)。原理归纳:教师讲解AVR哈佛架构、总线结构、引脚复用映射表。强调:数字口可输入输出,模拟口仅输入,PWM本质为占空比可调方波。展示引脚功能映射表,要求学生标注个人开发板对应关系。实操演练:安装CH340驱动,IDE设置开发板型号“ArduinoUno”,端口识别口,点击“获取开发板信息”验证通讯。常见故障:端口灰色→驱动未装/线材仅供电;上报`avrdude:stk500_recv()`→选错板型/端口被占用。课堂小结:建立“硬件即接口、代码驱动硬件”认知。布置预习:阅读《Arduino语言参考》核心函数表,预习`pinMode`、`digitalWrite`、`delay`语法。(二)第二课时:点亮第一盏灯·数字输出与时序控制代码导入:打开示例`File>Examples>01.Basics>Blink`,逐行解析。`setup()`初始化运行一次,`pinMode(LED_BUILTIN,OUTPUT)`配置引脚方向;`loop()`死循环执行,`digitalWrite(HIGH/LOW)`控制电平,`delay(1000)`阻塞1000ms。现象观测:上传成功,板载LED以1Hz频率闪烁。挑战任务:修改代码实现SOS摩斯密码(······),短闪200ms,长闪600ms,符号间隔200ms,字母间隔600ms,单词间隔1400ms。学生需列时序表,计算总周期时长。外接电路:面包板搭建外接LED电路。讲解限流电阻计算:$R=\frac{V_{CC}V_F}{I_F}$,取$V_{CC}=5V,V_F=2V,I_F=10mA$,得$R=300\Omega$,选用220Ω或330Ω。正极接D2,负极串联电阻接GND。验证共地原则:外部电源与主控GND必须相连。进阶重构:引入“非阻塞闪烁”思维。对比`delay()`阻塞导致无法响应按键,讲解`millis()`时间戳原理。代码重构:```cppconstuint8_tLED_PIN=2;constunsignedlongINTERVAL=1000;unsignedlongprev_ms=0;boolled_state=false;voidloop(){unsignedlongcurr_ms=millis();if(curr_msprev_ms>=INTERVAL){prev_ms=curr_ms;led_state=!led_state;digitalWrite(LED_PIN,led_state);}//此处可添加其他并发任务}```学生体会状态机思想:记录上次翻转时刻,判断时间差,翻转状态,更新基准。此为后续多任务并发基石。作业:设计“心跳灯”效果,亮度渐变模拟呼吸,需查阅`analogWrite()`用法,下课时验收。(三)第三课时:按键交互·数字输入与消抖算法电路搭建:按键一脚接D3,另一脚接GND。启用内部上拉电阻`pinMode(3,INPUT_PULLUP)`,按下为低电平,松开为高电平。讲解上拉/下拉电阻作用:防止悬空态随机翻转,保证默认态确定。现象异常:学生直接读取引脚控制LED,发现轻触按键LED疯狂闪烁。演示示波器波形:机械触点弹跳持续520ms,产生多个高低电平跳变。软件消抖方案一:延时法。读取到低电平,`delay(20)`,再次确认仍为低电平,判定有效。缺点:阻塞主循环。方案二:状态机法(非阻塞)。定义枚举`IDLE,PRESS_DEBOUNCE,PRESS_HOLD,RELEASE_DEBOUNCE`。结合`millis()`记录进入各状态时刻,仅在稳定窗口后触发事件。代码框架:```cppenumBtnState{IDLE,DEBOUNCE_PRESS,ACTIVE,DEBOUNCE_RELEASE};BtnStatestate=IDLE;unsignedlongt_enter=0;constuint16_tDEBOUNCE_MS=20;voidupdateBtn(){boolreading=digitalRead(BTN_PIN);switch(state){caseIDLE:if(!reading){state=DEBOUNCE_PRESS;t_enter=millis();}break;caseDEBOUNCE_PRESS:if(millis()t_enter>=DEBOUNCE_MS){if(!reading){state=ACTIVE;onPress();}elsestate=IDLE;}break;caseACTIVE:if(reading){state=DEBOUNCE_RELEASE;t_enter=millis();}break;caseDEBOUNCE_RELEASE:if(millis()t_enter>=DEBOUNCE_MS){if(reading)state=IDLE;elsestate=ACTIVE;}break;}}```工程拓展:区分“短按”、“长按”、“双击”事件,设计回调函数指针数组,实现按键事件驱动框架。提高组尝试封装`Button`类,支持多按键实例化。课堂练习:完成“按键切换LED模式:常亮呼吸闪烁关闭”三态循环。要求代码模块化,`loop()`仅调用`btn.tick()`,`led.update()`。(四)第四课时:感知模拟世界·ADC采集与电压换算原理讲解:ATmega328P内置10位逐次逼近型ADC,参考电压默认AVCC=5V。分辨率$\frac{5V}{1024}\approx4.88mV$。`analogRead(A0)`返回01023整数。电压换算公式:$V_{in}=\frac{ADC_{val}}{1024}\timesV_{ref}$。光敏电阻电路:光敏电阻与10kΩ固定电阻串联分压,中点接A0。强光电阻小(~1kΩ),分压高;弱光电阻大(~1MΩ),分压低。学生实测不同光照下ADC值,绘制“光照度电压”特性曲线,体会非线性关系。热敏电阻电路:NTC10kΩ@25°C,B值3950。同构分压电路。引入SteinhartHart方程简化模型:$$\frac{1}{T}=\frac{1}{T_0}+\frac{1}{B}\ln\left(\frac{R}{R_0}\right)$$其中$T,T_0$为热力学温度(K),$R$为实测电阻,$R_0=10k\Omega$。推导代码实现:```cppfloatreadTemp(){intadc=analogRead(A1);floatv=adc5.0/1024.0;floatr=10000.0v/(5.0v);//分压反推电阻floatt_k=1.0/(1.0/298.15+log(r/10000.0)/3950.0);returnt_k273.15;//转摄氏度}```滤波实战:串口绘图器观察原始波动±23LSB。实现滑动平均滤波:定长数组缓存最近10次采样,剔除最大最小值取均值。对比滤波前后稳定性,量化信噪比提升。数据可视化:使用`Serial.print()`配合标签输出`Temp:25.3Light:450`,串口绘图器实时显示双通道波形。讲解CSV格式导出,Excel二次分析。作业:设计“过温报警”逻辑,温度>30°C蜂鸣器响,按键可静音。预习PWM原理。(五)第五课时:PWM模拟输出·呼吸灯与舵机控制原理深度:PWM(脉宽调制)以固定频率(Uno默认490Hz/980Hz)输出方波,通过调整占空比$D=\frac{T_{on}}{T}$控制有效电压$V_{eff}=D\timesV_{CC}$。`analogWrite(pin,0255)`对应占空比0%100%。引脚3,5,6,9,10,11支持硬件PWM,由定时器0/1/2产生。呼吸灯算法:正弦波映射vs线性渐变。线性渐变人眼感知不均匀(WeberFechner定律)。引入伽马校正表或`sin()`函数映射:```cppfor(inti=0;i<256;i++){floatrad=iPI/256;uint8_tduty=127.5(1cos(rad));//半周期正弦analogWrite(LED_PIN,duty);delay(10);}```舵机控制:SG90标准舵机,周期20ms,脉宽0.52.5ms对应0180°。`Servo`库底层占用定时器1,导致引脚9,10失去PWM功能。演示:`myservo.attach(9);myservo.write(90);`。学生测量不同角度脉宽,绘制校准曲线,补偿机械零位偏差。综合挑战:光控舵机指针仪。光敏电阻ADC映射至0180°,舵机指针指示光照强度。引入死区滤波:角度变化<2°不驱动,防止抖动磨损齿轮。故障案例:舵机抖动严重。原因:供电不足(USB500mA限制),舵机启动电流大拉低电压导致单片机复位。解决:外接5V/2A电源,共地;或加装470μF电解电容滤波。(六)第六课时:串口通信与调试体系构建协议基础:UART异步全双工,起始位1、数据位8、校验位无、停止位1(8N1)。波特率9600/115200,双端必须一致。`Serial.begin(115200)`初始化,`Serial.print/println`发送,`Serial.available()/read()`接收。调试三板斧:6.关键节点打印:变量值、函数入口、分支走向。7.串口绘图器:实时波形观测,捕捉尖峰、周期、相位。8.指令解析:实现简单Shell,解析`LEDON`、`SETPWM128`、`READTEMP`指令,练习`String`分割、`strcmp`、字符数组解析,避免`String`类碎片化内存。通信框架设计:定义帧头`0xAA0x55`、命令字、长度、数据、校验和(累加和/CRC8)。上位机Python脚本演示:```pythonimportserial,structser=serial.Serial('3',115200,timeout=1)defsend_cmd(cmd,data=b''):frame=b'\xaa\x55'+bytes([cmd,len(data)])+dataframe+=bytes([sum(frame)&0xFF])ser.write(frame)```学生体会定长帧/变长帧解析状态机,理解可靠传输基础:确认应答、重发、超时。实战演练:上位机发指令读取温度,下位机回帧。串口助手十六进制模式抓包分析。常见坑:波特率错→乱码;电平翻转(TTLvsRS232)→收不到;缓冲区溢出→数据丢失。(七)第七至八课时:模块化封装与库开发实战痛点引入:主程序膨胀至300行,传感器代码耦合严重,复用困难。引入“库”概念:`.h`声明,`.cpp`实现,`keywords.txt`高亮,`perties`元数据。封装示例:`MySensor.h````cppifndefMY_SENSOR_HdefineMY_SENSOR_Hinclude<Arduino.h>classLightSensor{uint8_tpin;uint16_tbuffer[10];uint8_tidx;public:LightSensor(uint8_tp):pin(p),idx(0){}voidbegin(){pinMode(pin,INPUT);}intreadRaw(){returnanalogRead(pin);}floatreadLux(){/滤波+标定公式/}};endif````MySensor.cpp`实现细节。讲解命名空间、构造函数初始化列表、`const`正确性、静态成员共享配置。库安装:Sketch>IncludeLibrary>Add.ZIPLibrary。验证示例程序编译通过。版本管理:初始化Git仓库,编写`.gitignore`排除`build/`、`.vscode/`。提交规范:`feat:addlightsensordriver`、`fix:debouncelogic`、`doc:updatereadme`。引导学生体会工程化协作流程。(八)第九至十二课时:综合项目实战·智能互动装置设计与迭代项目发布:设计“桌面智能助手”,功能清单:9.环境监测:温湿度(DHT11)、光照、噪声(麦克风模块)实时显示OLED(SSD1306I2C)。10.交互控制:旋钮编码器调节参数,按键确认,蜂鸣器提示音。11.执行响应:舵机驱动遮光板、风扇(MOS管驱动)、RGB灯带(WS2812B)。12.通信上报:定时/阈值触发串口上传JSON格式数据,Python上位机绘制仪表盘。13.低功耗:无操作30秒进入LightSleep,按键/定时器唤醒。设计阶段(1课时):小组绘制系统框图、时序图、状态机图、原理图(EasyEDA/立创EDA)、PCB布局草图(可选)、任务分工表、风险预案表。教师巡组质询:供电方案?I2C总线冲突?定时器资源冲突?内存占用预估?实现阶段(2课时):分模块并行开发。•显示组:移植`U8g2`库,设计多页面UI,实现页面切换状态机。•传感组:封装`DHT11`非阻塞读取(数据手册时序严格,需微秒级延时),噪声包络检测。•执行组:`WS2812B`时序库(NeoPixel/Adafruit_NeoPixel),MOS管PWM调速,舵机平滑插值运动。•通信组:定义JSON协议`{"t":25.3,"h":60,"lux":400,"db":45}`,使用`ArduinoJson`库序列化,注意`StaticJsonDocument<256>`内存池大小。集成调试(1课时):模块合并冲突解决。•引脚冲突:舵机占用D9,WS2812需高精度时序建议用D6,避开定时器1。•内存溢出:全局缓冲区过大,优化:字符串放Flash(`F()`宏),动态分配改静态。•看门狗复位:长时间阻塞喂狗,启用`wdt_enable(WDTO_4S)`,关键处`wdt_reset()`。•供电噪声:电机启动干扰ADC,电源去耦电容0.1μF+10μF并联,模拟地/数字地单点汇流。验收答辩:每组5分钟演示+5分钟问答。评价量表权重:功能完整性30%、代码规范性20%、硬件规范性15%、创新亮点15%、答辩表达10%、过程日志10%。优秀项目推荐校科技节展出、申请软著、投稿省赛。六板书设计┌────────────────────────────────────────┐│走进Arduino的世界·核心知识脉络│├────────────────────────────────────────┤│硬件层│ATmega328P│GPIO/ADC/PWM/UART│││最小系统│原理图阅读·选型│├────────────────────────────────────────┤│软件层│setup/loop│非阻塞/状态机│││库封装│内存优化·版本控制│├────────────────────────────────────────┤│交互层│数字IO│按键消抖·边沿触发│││模拟量│分压/ADC/滤波/标定│││PWM│占空比/呼吸/舵机│││串口│协议帧/上位机/调试│├────────────────────────────────────────┤│工程层│面包板规范│共地/去耦/布线美学│││故障诊断│现象假设验证修复│││项目迭代│需求设计实现测试│└────────────────────────────────────────┘七教学反思与持续改进实施三轮教学后,主要观察与调整:14.认知跳跃过大:第一课时直接上原理图,部分学生无电工基础产生畏难。改进:增加“万用表基本用法”微课预习,首课引入乐高式接线图对照实物,降低抽象门槛。15.代码抄袭现象:复制粘贴库代码不懂原理。对策:设置“代码阅读考题”,要求手写核心驱动逻辑;考核加入“现场改需求”环节,如“将延时改为非阻塞”、“增加长按复位功能”,倒逼深度理解。16.硬件损耗高:杜邦线接触不良、引脚烧毁、面包板内部断路占调试时间40%。对策:引入“接线自检清单”入场券制;采购带测试点的定制扩展板过渡;建立“硬件医生”轮值制,学生互查。17.评价单一化:过重结果轻过程。新增“故障日志本”评分,记录现象、假设、实验、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论