本作品命名为「下一代安全衣」,其原因是它将颠覆传统的安全反光背心,本作品利用镶嵌在衣服上的发光二极管(light emitting diode;LED),产生主动的发光及闪烁效果,使得在马路上或工厂等地点都可以明显清楚地看到穿有「下一代安全衣」的人。该作品衣服内含有轻型的锂离子电池装置,可提供单芯片和所有不同颜色发光二极管所需要之电力,单芯片则负责控制发光二极管的点亮工作,并同时监测锂离子电池之电压、储电容量等性能。
传统的安全反光背心是用高反亮度之反光材料所制成,穿上反光衣能让您在天气恶劣或光线差的情况下如同两盏灯来工作,俾提醒车辆驾驶人或其他同向车道的人员,进而避免发生伤亡的事件。
传统的安全反光衣在国外常用于紧急救难事件,例如在高速公路上当汽车发生故障时,驾驶员可穿著安全衣下车查看或修理。它也是一些汽车公司送给买车人的赠品,希望买车人一路平安。在我们日常生活的各种活动中,特别是与交通相关的活动中,安全反光衣扮演着重要的警示标志及保障生命安全的角色。
由于传统的反光背心是利用被动的方式将外界的光线反射进入人眼,换言之如果没有外在光线的情况下,将看不见穿上反光背心的人。因此,本作品提出了一个新的构想,利用发光二极管的发光方式,可主动提醒远处的驾驶人以注意到前方穿著「下一代安全衣」的人。由于此方法有别于传统被动反光的方式,因此将本作品定义为「下一代的安全衣」。
本作品系采用可嵌镶在衣服内之轻型、可充电之锂离子电池,以提供所有发光二极管及相关控制电路之所需电力,本作品并利用单芯片控制器,以控制发光二极管之发光变化模式。本作品的基本操作条件可分成一般模式、骑士模式、车队模式等三种:(1)在一般模式下,单芯片可直接控制发光二极管发生不同的闪烁模式;(2)在骑士模式下,除包含一般模式之操作条件外,还可搭配机车的方向灯开关,利用无线遥控的方式,遥控穿在骑士身上的安全衣,使得安全衣上的发光二极管可依据机车方向灯的方向同步做发光指示;(3)车队模式是结合了前述的一般模式和骑士模式,但以骑士模式为优先考虑,此功能有利于一群人集合后骑机车出游。因此机车骑士或自行车骑士可以利用本作品来提高在路上行驶的安全。
本作品之功能及特色
本作品之主要特色,具有以下数种重要的功能:
- (1) 可选用多种不同型式的充电电源,包含:交流单相、110V、60Hz之一般家用插座电源、汽车上的直流12V点烟器电源以及机车上之车用蓄电池等;
- (2) 使用轻型、高密度、可充电之锂离子电池做为储能组件;
- (3) 具有电池电压过低警示;
- (4) 可直接更换锂离子电池或外接一般家用交流电源进行充电;
- (5) 可切换不同的操作模式,以应付不同场合或使用情况的需求;
- (6) 发光二极管可切换多达100种之不同闪烁方式;
- (7) 可控制发光二极管点亮的个数,以达到锂离子电池省电操作之目标,俾延长锂离子电池之续航力。
本作品之工作原理
在本作品中含有一个在衣服外面的充电器,可直接对衣服内的锂离子电池进行充电,以便提供电力给衣服上的单芯片和发光二极管使用。该充电器是使用现成的整合电路,以建构出一个可以采用交流单相、110V、60Hz之一般家用插座做为输入。
本作品使用单芯片中所内建的模拟到数字转换器(analog-to-digital converter;ADC)以监测锂离子电池之电压,当电池电压过低时,则安全衣不工作,此时单芯片点亮Bat. Low之发光二极管告知用户此时电池之电力已经不足。此时用户可以直接更换另一组新充满电能的锂离子电池,或是直接使用外接的交流或直流电源进行锂离子电池之充电。
本作品设计了三种基本操作模式,用户可以通过按钮切换不同的使用模式,此三种操作模式分别简单叙述如下︰
- (1)一般模式:在此模式下,用户可以按闪烁型式按钮(SW_FlashType)切换衣服上的发光二极管闪烁的型式;
- (2)骑士模式:在此模式下,发光二极管可做为机车号志方向灯的功能。当机车打出向左或向右的方向灯灯时,左边或右边的发光二极管将会跟着同步闪烁。当煞车时,则会点亮中间红色的发光二极管;
- (3)车队模式:此模式同时结合一般模式和骑士模式之功能,但以骑士模式为优先。换言之,当发光二极管在闪烁时,一旦机车打出方向灯或煞车时,则切换到骑士模式的闪烁方式。此模式有利于一群人集合后骑机车出游,可提供对路不熟的骑士跟随前方的领队前进或是辨别不同的骑士队友。
本作品之硬件结构
本作品分成三种电路来完成,分别是︰发光二极管之控制电路、锂离子电池充电器电路和无线射频发射器电路等三种。此三个主电路之示意图分别如图一至图三所示。
如图一所示为发光二极管之控制电路示意图,该电路由一颗具有48支接脚之A/D型微控制器完成所有的控制。发光二极管指示器(LED_Indicators)是一个由八颗发光二极管所组成的显示器,在不同的按键动作下,该指示器的发光二极管显示代表着不同的涵义,在本文中将会进一步说明。
如图一左上方所示,为本作品利用两颗3.7V、1900mAh的锂离子电池串联在一起,以提供下一代安全衣上所需的唯一电源。该电源透过一颗低压差调整器(LDO)降压成5V输出,俾提供单芯片和无线射频接收模块(RF receiver)等装置之所需电源。升压式直流对直流转换器(DC-to-DC boost converter)负责将锂离子电池电压升压至13V(Vboost),以做为源极驱动芯片的电源。
本作品使用A/D型微控制器,借着控制八个三态D型正反器(tri-state D-type flip-flops)芯片,以致能源极驱动芯片,俾控制安全衣上的发光二极管之亮灭。
A/D型微控制器透过内建的模拟到数字转换器量测锂离子电池电压(VLi),当锂离子电池电压低于7.2V时,则低电量发光二极管(LED_BatLow)将被点亮,提醒用户需要更换电池或直接对电池进行充电。电池测试按钮(SW_BatTest)则是做为测试锂离子电池之蓄电量使用。当按下电池测试按钮时,锂离子电池之电量将显示于发光二极管指示器上。
用户可以按下模式选择按钮(SW_Mode)来切换不同的工作模式,包含一般模式、骑士模式和车队模式等三种。用户可以通过发光二极管指示器得知目前安全衣的工作模式。闪烁型式按钮(SW_FlashType)则用以切换多达100种在安全衣上的发光二极管闪烁型式。发光二极管指示器也会透过二进制表示法,以显示该安全衣上发光二极管的闪烁型式。
系统开启/关闭按钮(SW_Power)可控制系统的开启和关闭。当系统开启时,振动开关(Vibration Detector)会侦测衣服是否静止不动维持五分钟,若在五分钟内振动开关的接点状态都没有变化时则关闭系统,若在五分钟内振动开关有振动发生时则重置定时器。LED_Power发光二级体则做为系统开启/关闭的指示灯。
图二所示为锂离子电池充电器之示意图,该图中系利用一个转接器(adapter)将交流单相、110V、60Hz之一般插座电源转换成为10V之直流电源,提供锂离子电池充电控制器(Li-Ion Battery Charger)对锂离子电池进行充电使用。该锂离子电池充电控制器控制2颗串联的锂离子电池同时进行充电,并藉由LED_STAT1和LED_STAT2两颗发光二极管显示目前该锂离子电池之充电状态。
《图二 本作品之锂离子电池充电器示意图(以交流单相、110V、60Hz之一般家用插座电源做为输入)》 |
|
如图三所示为本作品无线射频发射模块(RF Transmitter)之示意图,其功能是实时侦测机车的左、右方向灯按钮和煞车器的状态,通过无线射频电路发射无线电波到发光二极管控制电路中之无线射频接收模块,使A/D型微控制器得知目前机车上不同开关的状态,并控制安全衣上发光二极管的亮灭。图三中的地址设定开关(Sw_TrAddress)则是设定无线射频发射模块的地址,此地址必须搭配发光二极管控制电路中的无线射频接收模块的地址设定开关,当两者的地址完全一致时,才可达成遥控传输数据的重要功能。
硬件架构照片
本作品下一代安全衣上所嵌入不同发光二极管的配置位置如图四所示。在图四之中间为煞车灯,左右两旁分别为方向指示灯,每一条发光二极管皆可分别独立控制,以点亮红、蓝、绿等三种不同颜色做发光。本作品下一代安全衣之主控电路板如图五所示。
《图四 本作品下一代安全衣上嵌入不同发光二极管的配置位置》 |
|
本作品之单芯片程序流程图
如图六所示为本作品之单芯片主程序流程图。在该主程序中先定义程序中需要使用的变量和旗标(flags),接着初始化输入/输出接口(I/O)和变量。在设定单芯片内部的周边模块部份,包含了定时器0、定时器1和模拟到数字转换器模块等三部份。接着,该程序不断地判断机车上的不同按钮是否有被按下,若有则设定相关的旗标,以便让接下来的程序利用旗标的方式判断哪个按钮被按下。
若是电池测试按钮被按下则启动模拟到数字转换器,以量测锂离子电池电压(VLi)并呼叫锂离子电池电量显示子程序(Disp_BatCap),以显示电池电压在发光二极管指示器上。在模拟到数字转换器之中断子程序内不断的判断锂离子电池电压(VLi)是否低于7.2V,若是则设定旗标Flag_LowBat。
若模式选择按钮被按下,则改变变量Mode,以便切换到下一个操作模式,接着呼叫Disp_Mode子程序以显示目前的操作模式。
若系统开启/关闭按钮被按下,则将旗标Flag_PowerOn反转。若Flag_PowerOn=0则关闭系统。在每次模拟到数字转换器中断子程序内判断VLi是否低于7.2V,如果是则设定旗标Flag_LowBat。一旦旗标设定则关闭系统,并点亮LED_BatLow之发光二极管。
在预订的五分钟时间内,侦测振动开关的接点状态是否有变化,若有则重置计数器,否则表示衣服是静止不动的,则自动关闭系统。兹将本作品单芯片中各子程序之功能简要说明如下︰
- (1) void Init_IO()︰对单芯片各输入/输出接口做初始化,包括设定单芯片之各输入/输出接口接脚为输出或输出模式,以及设定输入/输出接口各接脚的初始值。
- (2) void Init_Variable()︰初始化程序中的所有使用之变量。
- (3) void Disp_BatCap(int8 data)︰自变量data含有VLi经模拟到数字转换后之值,若VLi=7.4V则显示一个发光二极管,表示有一格电,每上升0.1V则增加一个发光二极管,一直到VLi=8.1V时则显示八个发光二极管,此亦即是锂离子电池充满电能之满格情况,并点亮发光二极管指示器持续5秒钟。如图七所示为锂离子电池电量显示子程序之流程图。
《图七 本作品锂离子电池电量显示(Disp_BatCap)子程序之流程图》 |
|
(4) void Disp_Mode(int8 data)︰自变量data代表目前的Mode(工作模式),并点亮发光二极管指示器持续5秒钟,俾让用户了解目前的工作模式。
(5) void Disp_FlashType(int8 data)︰自变量data代表目前的FlashType(闪烁型式),并以二进制方式点亮发光二极管指示器持续5秒钟,俾让用户知道目前发光二极管的闪烁型式。
(6) void Chk_RF_Decoder(void)︰检测RF接收器的VT脚之输出为1时,表示机车上的按钮是在押下的状态,并依据接收器的data输出设定相关的旗标(Flag_Left/Right/Stop/Double)。如图八所示为本作品检查射频译码器输出(Chk_RF_Decoder)子程序之流程图。
(7) void Disp_OnClothes(uint8 type, uint8 data)︰自变量type代表衣服上的发光二极管要以何种型式点亮,引入数data代表要读取矩阵里面的某一笔数据。
本作品衣服上的发光二极管闪烁型式,系利用建表的方式完成,一种发光二极管闪烁之型式对应一个矩阵,单芯片程序则根据type数值读取相应的矩阵,并根据变量data之顺序读取矩阵中的数据笔数。
《图八 本作品检查射频译码器输出(Chk_RF_Decoder)子程序之流程图》 |
|
---本文为第四届盛群杯一般控制组A-11创意竞赛作品,并利用盛群单芯片HT46R24做为控制器;作者余国威为国立成功大学电机研究所电力组二年级研究生、王醴为国立成功大学电机系教授---
<参考数据:
[1] 钟启仁编着,『HT46xx微控制器理论与实务宝典』,全华科技图书,民国95年。
[2] 李文昌编着,『HT46系列微控制器理论与实习C语言版』,宏友图书,民国95年。
[3] 蔡辉荣.董胜源编着,『HT46系列单芯片微计算机与C语言入门实习』,宏友图书,民国96年。
技术报告
[1] Holtek, 『HT46R24/HT46C24 A/D Type 8-Bit MCU』, March 2006.
[2] Holtek, 『HT73XX Low Power Consumption LDO』, January 2006.
[3] Holtek, 『HT12A/HT12E 212 Series of Encoders』, January 2003.
[4] Holtek, 『HT12D/HT12F 212 Series of Decoders』, November 2002.>
-1-