創(chuàng)新者:孫露露
可適應(yīng)開關(guān)的殘疾兒童汽車設(shè)計
創(chuàng)新者:孫露露
殘疾兒童汽車是近年來一個新穎的研究領(lǐng)域,美國特拉華大學(xué)已經(jīng)創(chuàng)立了名為GoBabyGo的項目,獲得國內(nèi)外的廣泛關(guān)注。本文對已有的兒童汽車進(jìn)行改裝,通過使用Arduino單片機(jī)控制一系列簡單的可適應(yīng)開關(guān)來代替方向盤,并增加了頭部可接觸開關(guān)、距離傳感器、制動開關(guān)等,滿足患有不同殘疾的兒童的需求。
患有身體殘疾,尤其像腦殘和脊柱斷裂的兒童,很難保持身體平衡地走路,與同齡人玩耍。這使他們被排除在基本的互動的社交活動之外,例如在球場上追逐、學(xué)習(xí)新游戲。嚴(yán)重影響了他們的社交能力和感性思維的發(fā)展,對以后的生活產(chǎn)生了很大的困難。兒童之間玩耍和互動是他們成長的重要組成部分。
本文主要針對改裝一輛已有的兒童汽車,可以允許患有腦癱、脊柱斷裂,或者類似殘疾的兒童操作,以便于和同齡伙伴一起玩耍和互動。改裝包括汽車控制方法的簡單化。本文還設(shè)計了一些特別之處來確保兒童的安全。
汽車原來的轉(zhuǎn)向和驅(qū)動系統(tǒng)將被一系列簡單的可適應(yīng)的開關(guān)替代。這些開關(guān)可以提供向前和轉(zhuǎn)向運(yùn)動。因為殘疾兒童很難轉(zhuǎn)臉向后看,為了避免安全問題,去掉了向后運(yùn)動的功能。另外,這些開關(guān)能夠適應(yīng)不同的殘疾兒童。本文還將重點(diǎn)集中在控制汽車的緩慢啟動和制動技術(shù)上,給兒童提供一個舒適的平滑的啟動和制動過程。最后,該設(shè)計還加入了距離傳感器用于蔽障,遠(yuǎn)程制動開關(guān)(父母持有)用于在必要的時候關(guān)閉汽車??傮w來說,本文給殘疾兒童提供了安全舒適的開車環(huán)境。
問題描述
圖1 是一個說明汽車輸入與輸出關(guān)系的黑箱子框圖。本文的主要目的是制作出一輛響應(yīng)迅速、舒適的兒童汽車。輸入系統(tǒng)包括來自電池的能源,控制輸入(來自兒童、家長和環(huán)境)和支撐系統(tǒng)。輸出系統(tǒng)包括兒童的舒適程度和汽車的響應(yīng),圖2詳細(xì)介紹了該子系統(tǒng)。
圖1 黑箱子框圖
圖2 子系統(tǒng)框圖
控制系統(tǒng)
汽車的控制系統(tǒng)是指兒童如何最大程度地控制汽車。本文改裝了正常的油門踏板和車輪操作系統(tǒng),能夠允許殘疾兒童通過一系列簡單的開關(guān)單獨(dú)控制汽車。
頭部開關(guān):該設(shè)計中,兒童能夠通過操作安裝在頭部支撐上的三個開關(guān)來控制汽車。這些開關(guān)安裝在兒童頭部的左邊、右邊和后邊。例如,兒童可以通過頭部按壓左、右、后方的開關(guān),控制汽車向左、右、后方行駛。
操縱桿:操縱桿允許兒童通過手來控制汽車。操縱桿可以提供更多的緩沖時間,它不像控制開關(guān)一樣響應(yīng)迅速。這有利于汽車的加速和轉(zhuǎn)向。操縱桿相比于之前設(shè)計的開關(guān),將賦予兒童更大程度的自由。
手部開關(guān):這部分開關(guān)的功能和頭部開關(guān)的功能是一樣的。只是手部開關(guān)是安裝在汽車原來方向盤的位置。它們的應(yīng)用將使不同身高體型、患有不同殘疾的兒童駕駛這輛汽車,實現(xiàn)了最簡單的控制方法。
單片機(jī)模塊
Arduino Uno 是一款基于ATmega328處理器的微控制器板。它有14個數(shù)字輸入/輸出管腳(其中6個可以用作PWM輸出),6個模擬輸入管腳,一個16MHz的晶振,一個USB連接線,一個電源接口,一個ICSP插針和一個重啟按鈕。它包含支持單片機(jī)工作的所有芯片。將它通過一個USB線或者AC-DC轉(zhuǎn)換器或者電源供電,連接到電腦上即可工作。如圖3
技術(shù)參數(shù):
處理器 :ATmega328
工作電壓 : 5V
輸入電壓(推薦): 7~12V
輸入電壓(范圍): 6~20V
數(shù)字IO腳 :14 (其中6路作為PWM輸出)
模擬輸入腳 :6
IO腳直流電流 :40 mA
V腳直流電流 :50 mA
Flash Memory :32 KB (ATmega328,其中0.5 KB 用于 bootloader)
SRAM :2 KB (ATmega328)
EEPROM :1 KB (ATmega328)
工作時鐘 :16 MHz
電機(jī)驅(qū)動模塊
L298N是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動電路。是一種二相和四相電機(jī)的專用驅(qū)動器,即內(nèi)含二個H橋的高電壓大電流雙全橋式驅(qū)動器,接收標(biāo)準(zhǔn)TTL邏輯電平信號,可驅(qū)動46V、2A以下的電機(jī)。電機(jī)驅(qū)動原理圖見圖4。
圖3 Arduino Uno 管腳圖
圖4 電機(jī)驅(qū)動原理圖
模塊接口說明:
+5V:芯片電壓5V
VCC:電機(jī)電壓,最大可接50V
GND:共地接法
A-~D-:輸出端,接電機(jī)
A~D+ :為步進(jìn)電機(jī)公共端,模塊上接了VCC
EN1、EN2:高電平有效,EN1、EN2分別為 IN1和IN2、IN3和IN4的使能端
IN1~ IN4:輸入端,輸入端電平和輸出端電平是對應(yīng)的
超聲波測距模塊
HC-SR04超聲波測距模塊提供2cm~400cm范圍的無接觸的測量函數(shù),測量精度高達(dá)3mm。該模塊包括超聲波發(fā)射器,接受器,控制電路?;竟ぷ髟瓌t如下:
使用IO觸發(fā)器,給出至少10us的高電平信號,
自動發(fā)射8個40KHz脈沖,檢測是否有信號返回,
如果有信號返回,發(fā)射高電平,高電平持續(xù)的時間就是發(fā)射超聲波信號到返回的時間。測試距離=(高電平時間*聲速(340M/S))/2
5V接電源,Trigger接輸入,Echo接輸出,0V接地。
電氣特性如圖5
圖5 HC-SR04 電氣特性
主要程序
//declare motor variables
int enableDrive = 7;
int enableTurn = 8;
int PWMDrive = 5;
int PWMTurn = 6;
int forwardPin = 3;
int leftPin = 9;
int rightPin = 10;
int forwardStateCurrent = LOW;
int leftStateCurrent = LOW;
int rightStateCurrent = LOW;
int forwardStatePast = LOW;
int leftStatePast = LOW;
int rightStatePast = LOW;
//declare sensor variables
int echo = 2;
int trigger = 4;
int led = 13;
float distance;
float highlevel;
void setup() {
//define motor variables
pinMode(enableDrive, OUTPUT);
pinMode(enableTurn, OUTPUT);
pinMode(PWMDrive, OUTPUT);
pinMode(PWMTurn, OUTPUT);
pinMode(forwardPin, INPUT); //IP for buttons, I for R/T
pinMode(leftPin, INPUT); //IP for buttons, I for R/T
pinMode(rightPin, INPUT); //IP for buttons, I for R/T
//declare sensor variables
pinMode(echo, INPUT);
pinMode(trigger, OUTPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop() {
forwardStateCurrent = digitalRead(forwardPin);s
leftStateCurrent = digitalRead(leftPin);
rightStateCurrent = digitalRead(rightPin);
activate();
highlevel = (pulseIn(echo, HIGH))*0.000001;
distance = (highlevel*340)/2;
Serial.println(“”);
Serial.print(highlevel);
Serial.print(“ ”);
Serial.print(distance);
if (distance <= 0.1524) {
halt();
digitalWrite(led, HIGH);
}
else {
if (forwardStateCurrent != forwardStatePast) {
if (forwardStateCurrent == HIGH) {
forward();
}
else {
halt();
}
}
else if (leftStateCurrent != leftStatePast) {
if (leftStateCurrent == HIGH) {
left();
}
else {
halt();
}
}
else if (rightStateCurrent != rightStatePast) {
if (rightStateCurrent == HIGH) {
right();
}
else {
halt();
}
}
forwardStatePast = forwardStateCurrent;
leftStatePast = leftStateCurrent;
rightStatePast = rightStateCurrent;
digitalWrite(led, LOW);
}
}
void forward() {
digitalWrite(enableDrive, HIGH);
analogWrite(PWMDrive, 255);
analogWrite(PWMTurn, 0);
}
void left() {
digitalWrite(enableDrive, HIGH);
digitalWrite(enableTurn, LOW);
analogWrite(PWMDrive, 255);
analogWrite(PWMTurn, 255);
}
void right() {
digitalWrite(enableDrive, HIGH);
digitalWrite(enableTurn, HIGH);
analogWrite(PWMDrive, 255);
analogWrite(PWMTurn, 255);
}
void halt() {
analogWrite(PWMDrive, 0);
analogWrite(PWMTurn, 0);
digitalWrite(enableTurn, HIGH);
digitalWrite(enableDrive, LOW);
}
void activate() {
digitalWrite(trigger, HIGH);
delayMicroseconds(50);
digitalWrite(trigger, LOW);
}
實驗結(jié)果
經(jīng)患有腦癱的兒童開車測試,能夠緩慢開啟和停止汽車,通過手操作簡單的開關(guān),控制汽車向前、向左和向右行駛,也能夠通過頭部控制開關(guān)實現(xiàn)同樣的功能。遇到障礙時汽車能夠自動停止,家長也可通過使用制動開關(guān)在兒童遇到危險時緊急停止汽車,極大程度地確保了兒童的人身安全。綜上,本文改裝的兒童汽車,滿足了患有不同殘疾兒童的要求,使其能夠與同齡人一起玩耍嬉戲,極大提高了他們的社交能力和娛樂興趣,對其身心健康發(fā)展起到了巨大的作用。
本文解決了一個特殊的問題,通過給患有身體殘疾和需要社交幫助的兒童提供安全、高性能的開車環(huán)境?;镜哪繕?biāo)都已經(jīng)達(dá)到。
建議
購買的兒童汽車對于改裝不是很理想。汽車車艙的尺寸很小,導(dǎo)致改裝設(shè)計很有局限性。而且車子外形的曲線性也使安裝操作很困難。
改裝的汽車目前使用增加的Arduino單片機(jī)作為開關(guān)的電源。在為開關(guān)供電的部分需要更多的研究。
遠(yuǎn)程控制開關(guān)應(yīng)該被考慮進(jìn)來,在這方面應(yīng)該做更多研究。
孫露露
中國礦業(yè)大學(xué)(北京)機(jī)電與信息工程學(xué)院
10.3969/j.issn.1001-8972.2015.16.027