时间:2024-09-03
深圳技师学院 郭惠婷
AVRduino创客训练装置开发
深圳技师学院 郭惠婷
AVRduino创客训练装置是一种采用AVR单片机为核心的进行程序设计和控制的电子装置。它既可以进行AVR单片机控制,又可以进行Arduino项目转AVR单片机控制、AVR单片机控制项目转51单片机、Arduino控制项目。
AVR;Arduino;单片机;创客
随着经济的快速发展,产业结构的不断调整,企业对创客、创新型技能人才的需求量越来越大,对创客、创新型技能人才的要求也越来越高。
AVRduino创客训练装置是一种采用AVR单片机为核心的进行程序设计和控制的电子装置,它是为了支持大众创业、万众创新,为创客实现创新提供技术支持和应用技能训练而开发的实训装置。该装置结合AVR单片机开发应用实际,改变长期以来只重单片机基础知识演示实验、不与应用结合的现状,将实际项目抽象为简单的训练任务,为学生提供系统全面的技能训练,让学生从单片机系统开发高度,确定系统模块,再通过模块化编程,协调解决应用问题,提高AVR创客和学生的学习效率和产品创新设计的能力。
AVRduino是吸收AVR开发技术和Arduino开源创新特点的开发装置,即Arduino+AVR = AVRduino。Arduino是开源硬件和软件的全称,风靡全球,创客资源丰富,但硬件接口少;无通用定时器、计数器;实时控制功能差等。AVR是采用RISC结构的高级单片机,能够采用高级语言来编写嵌入式系统的系统程序,从而能高效地开发出目标代码,但AVR无底层驱动;带传感器难;I2C通信难;LCD、SPI、SD卡驱动复杂等;
本项目充分吸收AVR与Arduino的优点,克服其各自的缺点开发出AVRduino创客训练装置,本装置采用ISP下载线结合ICCV7、WINAVR+AVRStudio软件编程,可以完成AVR单片机的各种控制开发,采用USB下载线结合Arduino IDE软件编程,充分利用Arduino 的优点,可以完成Arduino创客创意产品的开发。
本装置的主芯片是ATmega16,包含16KB的Flash,256字节的RAM。该装置采用集成电路构建的方式制成,结构简单、易于制作、体积小、便于携带和使用。所需的单元电路分解为CPU控制模块、输入/输出控制模块、通信电路模块、电源电路模块等。
2.1 输入/输出控制模块
AVR单片机ATmegal6有32个输入/输出端口,分别为PA、PB、PC、PD 4组8位端口,对应于芯片的32个I/O端口引脚,所有的I/O端口都是复用的,第一功能是数字通用I/O端口,复用功能可以是中断、定时/计数器、I2C、SPI、USART、模拟比较、输入捕捉等。为了方便进行各项输入/输出实验,本装置的4组I/O口都用排针引出,如图1所示。以下简略介绍本装置的数字输入/输出控制电路。
2.1.1 交叉闪烁LED灯输出控制电路
本装置将8只LED灯连在主控芯片的PB口,为方便做交叉闪烁及流水灯等实训项目,交叉闪烁LED灯输出控制电路如图2所示。
图1
图2
2.1.2 LED数码管输出显示电路
单片机的拉电流比较小,灌电流比较大,不能用来直接驱动数码管,所以扩流电路是必需的,且AVR单片机只有32个I/ O口,因此不能用三级管来驱动,否则I/O口将不够用,于是选用74HC573锁存器来解决即扩流又扩I/O口的问题,电原理图如图3所示。PA3用于位选,用于控制哪个数码管亮,PA4用于段选,用于控制显示某位数字。
2.1.3 按键输入控制电路
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,即每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接,如图4所示,矩阵按键与单片机的PD口连接。本装置采用的是2脚的轻触式按键,按下时导通,松开则断开。
图3
图4
2.2 通信电路模块
本装置涉及到的通信有I2C,SPI、RS232通信等,以下只简单介绍本装置的RS232通信接口电路的实现方式。
在远距离数据传输时,普通的TTL或CMOS 电平无法满足工业现场的抗干扰要求和各种电气性能要求,因此本装置采用国际电气工业协会EIA推进的RS-232接口标准。
(1)RS232电平与TTL/CMOS电平的转换
本装置采用DB9作为连接器,TTL/CMOS电平采用的是0-5V的正逻辑,即 OV 表示逻辑0,5V 表示逻辑1,而RS-232采用的是负逻辑,逻辑0用+5~+15V 表示,逻辑1用-5~-15V 表示。在TTL/CMOS中,如果使用RS-232 串行口进行通信,必须进行电平转换。MAX232是一种常见的RS-232 电平转换芯片,外围仅需少数几个电容器即可,如图5所示。
图5
图6
(2)USB到RS232的转换
为实现用笔记本电脑下载程序,本装置设置了USB转RS-232,采用的芯片是CH340。参照CH340数据手册,CH340T的USB下载和外扩电源接口电路如图6所示。
软件设计主要包括AVRduino的Bootload开发、下载和调试,ICCV7 for AVR应用实践开发测试,AVRduino库文件开发和Arduino IDE应用实践的开发。在软件测试中,利用ICCV7开发软件设计AVR单片机应用程序,利用ISP下载线和ISP通信接口下载程序,进行AVR单片机的输入输出控制技术、定时器及计数器应用技术、中断控制技术、串行通信技术、LCD驱动技术、模拟控制技术、模块化编程技术的训练实验。利用Arduino IDE开发软件,进行上述控制实验外,还进行超声传感器、温湿度传感器、红外传感器实验,进行I2C、1-WIRE、SPI总线实验。
本装置软件设计的难点在于AVRduino的Bootload开发、下载和调试。为实现在Arduino IDE中进行软件编程,使用Arduino的库文件,通过串口交互信息,通过串口烧录程序,就必须开发Bootload程序固化在AVR芯片中。通过Arduino IDE烧录bootloader时,要注意“熔丝位”的设置, 熔丝字节在board.txt中描述,低位设定选择内部RC震荡还是外部晶振,高位设为0xDA,高位中有关键的ISP位(0x20位),一旦设错以后就无法再通过ISP下载程序了!格式如下:
其中0xFF使用外部晶振,如使用内部RC震荡,设成0xE4(8MHZ),内部晶振必须校准后才能使用,本装置使用的是外部晶振。此外,还要将主控芯片的pins_Arduino.h文件中的物理PIN与逻辑IO对应起来,重新标定每个物理PIN和逻辑IO的关系。
AVRduino创客训练装置既可以进行AVR单片机开发训练,也可以采用Arduino IDE软件编程,进行Arduino控制的实操训练,其总体设计电路如图7所示。本装置的创新之处在于:
(1)为创客创意实现提供技术支持
目前创客进行创意使用的是Arduino开源硬件和软件,初期进行一些简易开发尚可,深层次的开发会有较多困难,通过本训练装置,为创客学生提供全面系统的应用技术训练,逐步提高创客的开发水平。
图7
(2)突破AVR单片机教学实践的难点,将AVR单片机实际工程应用技术贯穿于应用技能训练中,让学生系统地提高AVR单片机应用能力。
[1]胡斌.电子线路基础轻松入门[M].北京:人民邮电出版社,2010.
[2]肖明耀,郭惠婷.AVR单片机应用技能实训[M].北京:中国电力出版社,2016.10
[3]李全利.单片机原理及应用技术[M].北京:高等教育出版社.2009.
郭惠婷(1991-),女,广东梅州人,本科,助理讲师,教师,研究方向:智能电子。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!