步驟1:我們需要的電子設(shè)備
為簡單起見,我們將項目分為三個部分
·傳感器板
為此,我們需要兩種類型的傳感器及以下組件
1。彎曲傳感器2個單元,用于測量手指的彎曲程度
2。 ADXL 335獲取手的x和y軸x坐標
3。 10K歐姆電阻2個單位,與撓性傳感器一起形成分壓器偏置
4。小型PCB(覆銅2英寸X 2英寸)以構(gòu)建傳感器電路
5。連接的錯誤條
·控制器部分
我們嘗試使用兩種方法使用Arduino UNO板來實現(xiàn)該原型,而另一種方法是為Atmega制作自己的分線板328,但我們?nèi)栽谑褂肁rduino UNO燒寫引導(dǎo)程序并在Atmega 328中上載代碼。
所以這里我們需要
1。 Arduino UNO
2。 Atmega 328p-pu
4。 16 MHz晶振1個單元,用于Atmega 328
5的工作頻率。 10K歐姆電阻1個單位復(fù)位電阻
6。重置按鈕1個單位以重置Atmega 328
7。連接錯誤條
8。 7805 5V電壓調(diào)節(jié)器可從9V電池獲得5V調(diào)節(jié)電壓。
9。 BC 547 npn晶體管8個單元,用于控制音頻處理器IC
10的通道。 1K歐姆電阻8個單元,用于將Atmega 328的端口引腳連接到晶體管的基極
·音頻處理和LCD單元
1。 APR 33A3音頻處理器存儲和播放聲音1個單位
2。 LCD 16X2 1個單元來顯示消息
3。麥克風1個單元,用于錄制音頻消息
4。揚聲器16歐姆1個單位播放音頻信號
5。 10K歐姆電位器1個單位,用于控制LCD的亮度
6。并且所有支持APR 33A3的其他組件
·47K歐姆電阻
·4.7K歐姆電阻
·100K歐姆電阻
· 470歐姆電阻
·1nF電容器
·100nF電容器
·100 microF電解電容器
·10 microF電容器
·1個微型F電容器
·連接線
其他組件數(shù)量請參考APR 33A3的電路圖或數(shù)據(jù)表
步驟2:準備好硬件。。..
使用PCB WIZARD軟件進行PCB設(shè)計,您可以從此鏈接下載
軟件http://pcb-wizard.software.informer.com/4.0/
PCB向?qū)窃O(shè)計電路最簡單的軟件,即使初學者也可以使用它直接因為該軟件非常易于使用。..。.它具有許多功能,可減少設(shè)計時間電路,例如DRAG和Drop選項。..。
一旦電路設(shè)計完成,我們就將.pcb文件附加到設(shè)計好的PCB上
從該電路布局的藝術(shù)作品中取出印刷品在照片紙或光面紙上,然后通過熨燙工藝跟蹤覆銅板上的電路印刷圖稿。
在熨燙過程中,您必須注意,所有電路布局圖稿應(yīng)完全在覆銅板上跟蹤在完全跟蹤覆銅箔上的電路布局圖稿后,用水制成Fecl3溶液,并將其跟蹤到覆銅箔中約30至40分鐘。..。..。在此過程中,您應(yīng)連續(xù)檢查其中的覆銅箔一定間隔后,覆銅板的銅應(yīng)消失,除了電路布局圖的痕跡部分……意味著僅應(yīng)保留電路。..
一旦從溶液中取出板然后清洗鉆孔后涂助焊劑并完成并用砂紙打磨鉆孔。在鍍錫開始安裝組件并進行焊接操作之后,借助烙鐵進行鍍錫過程。..。..。..
使用圖像跟蹤各個組件的所有過程和位置。
請按照電路圖制作自己的PCB。
如果我們在自己制作的分線板上使用Arduino UNO,則只有Atmega 328控制器部分被忽略,其余的連接都相同并進行連接
步驟3:在ATmega 328、168、8中刻錄Bootloader
這里有我們學習使用Arduino IDE和Arduino UNO在空白的ATmega 328/168/8芯片上刻錄引導(dǎo)程序。
所以,我們需要什么
第一步連接硬件
用于ATmega 328/168/8的空白芯片的分線板
在這里,我們也可以在面包板上進行連接,我也可以根據(jù)需要選擇制作一塊特殊的板,這樣就無需做sa我一次又一次地處理,只是節(jié)省您的時間。進行如圖1所示的連接
觀看圖2。這是我用來燒寫引導(dǎo)程序的板。
在購買ATmega 328空白芯片時請注意
您可能已經(jīng)注意到,
ATMega328P-PU
ATMega328-PU
兩者之間的區(qū)別只是328之后的P。是ATMEL開發(fā)的一項技術(shù),它允許微控制器以更低的功率運行。
這對于小型應(yīng)用程序至關(guān)重要,但是伙計們在刻錄引導(dǎo)加載程序時每個芯片都有其唯一的密鑰簽名,因此需要在刻錄之前編輯該密鑰簽名引導(dǎo)加載程序。
那么這些IC的密鑰簽名是什么
ATmega328 0x1E 0x95 0x14
ATmega328P 0x1E 0x95 0x0F
所以我們需要要在刻錄引導(dǎo)程序之前更改這些簽名,請遵循以下基本步驟
·導(dǎo)航至。.. arduino-1.0.5 hardware tools avr etc
·進行備份文件的副本:avrdude.conf
·在文本編輯器中打開avrdude.conf文件r
·搜索:“ 0x1e 0x95 0x0F”(這是ATmega328P簽名)
·替換為:“ 0x1e 0x95 0x14”(這是ATmega328簽名)
·保存文件
·重新啟動Arduino IDE
·繼續(xù)進行引導(dǎo)程序的其余步驟,一旦引導(dǎo)加載完成,請還原您制作的備份副本。
使連接與圖3所示相同
現(xiàn)在,我們已經(jīng)完成了硬件設(shè)置
2步驟準備軟件
打開Arduino IDE,確保您已根據(jù)目標AVR ATmega
1更改了您的簽名。打開Arduino IDE
2。文件》示例》 Arduino ISP
3。從工具》板中選擇Arduino328
4。選擇您的串行端口。
5。在Arduino板上燒錄。
6。從工具》編程器
7中選擇Arduino作為ISP。選擇Burn Bootloader
步驟4:上傳代碼并使之運行
在我們加載的引導(dǎo)中使用Arduino UNO加載以下代碼芯片(Atmega 328)
//GESTURE
VOCALIZER進行人與人互動
#include
//伙計們從arduino.cc下載此庫
LiquidCrystal lcd(13,12,11,10,9,8);//檢查引腳連接的電路圖
void setup()
{
lcd.begin(16,2);
}
void loop()
{
lcd.clear();
int val0 = AnalogRead(0);//讀取輸入引腳柔性傳感器引腳1
val0 = map(val0,465,590,0,9);//將其轉(zhuǎn)換為0到9的窗口
int val1 = AnalogRead(1);//讀取輸入引腳柔性傳感器引腳2
val1 = map(val1,435,535,0,9);
//讀取輸入引腳
int val2 = AnalogRead(2);//讀取輸入引腳X軸引腳
val2 = map(val2,260,415,0,9);
int val3 = AnalogRead(3);//讀取輸入引腳y軸引腳
val3 = map(val3,260,420,0,9);
如果(val0》 = 0 && val0 《= 0 && val1》 = 3 && val1 《= 4 && val2》 = 7 && val2 《= 8 && val3》 = 4 && val3 《= 5)//將符號與標準存儲值相匹配,取決于佩戴者的雙手
{
lcd.print(“我是__________________”);//在LCD上顯示消息
digitalWrite(0,HIGH);//在APR 33A3上選擇語音命令1
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW) ;
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
delay(100);
digitalWrite(0,LOW);//將其關(guān)閉
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7, LOW);
delay(5000);
}
否則,如果(val0》 = 6 && val0 《= 7 && val1》 = 1 && val1 《= 2 && val2》 = 7 && val2 《= 8 && val3》 = 2 && val3 《= 3)
{
lcd.print(“ sorry”);
digitalWrite(0,LOW);//在APR 33A3上選擇語音命令2
digitalWrite(1,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW) ;
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
延遲(100);
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5, LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
delay(5000);
}
否則,如果(val0》 =-1 && val0 《= 0 && val1》 = 3 && val1 《= 4 && val2》 = 1 && val2 《= 3 && val3》 = 0 && val3 《= 2)
{
lcd.print(“ Hello”);
digitalWrite(0,LOW);//在APR 33A3上選擇語音命令3
digitalWrite(1,LOW);
digitalWrite(2,HIGH);
digitalWrite(3,LOW) ;
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
延遲(100);
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5, LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
delay(5000);
}
否則,如果(val0》 = 0 && val0 《= 0 && val1》 = 0 && val1 《= 1 && val2》 = 5 && val2 《= 6 && val3》 =-0 && val3 《= 1)
{
lcd.print(“謝謝”);
digitalWrite(0,LOW);//在APR 33A3上選擇語音命令4
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,HIGH) ;
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
延遲(100);
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5, LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
delay(5000);
}
否則,如果(val0》 = 2 && val0 《= 3 && val1》 = 1 && val1 《= 1 && val2》 = 3 && val2 《= 5 && val3》 = 1 && val3 《= 2 )
{
lcd.print(“ drink”);
digitalWrite(0,LOW);//在APR 33A3上選擇語音命令5
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW) ;
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
延遲(100);
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5, LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
delay(5000);
}
否則,如果(val0》 = 4 && val0 《= 5 && val1》 = 2 && val1 《= 3 && val2》 = 4 && val2 《= 6 && val3》 = 0 && val3 《= 2 )
{
lcd.print(“ beautiful”);
digitalWrite(0,LOW);//在APR 33A3上選擇語音命令6
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW) ;
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
延遲(100);
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5, LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
delay(5000);
}
否則,如果(val0》 = 0 && val0 《= 0 && val1》 = 4 && val1 《= 6 && val2》 = 4 && val2 《= 5 && val3》 = 1 && val3 《= 2 )
{
lcd.print(“ bye”);
digitalWrite(0,LOW);//在APR 33A3上選擇語音命令7
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW) ;
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
延遲(100);
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5, LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
delay(5000);
}
否則,如果(val0》 = 0 && val0 《= 1 && val1》 = 0 && val1 《= 1 && val2》 = 7 && val2 《= 8 && val3》 = 1 && val3 《= 2 )
{
lcd.print(“ sick”);
digitalWrite(0,LOW);//在APR 33A3上選擇語音命令8
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW) ;
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(100);
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5, LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
delay(5000);
}
else
{
lcd.print(“ System on”);//初始消息
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW) );
digitalWrite(7,LOW);
}
delay(200);//延遲200毫秒
}
責任編輯:wv
-
聲控器
+關(guān)注
關(guān)注
0文章
3瀏覽量
6619
發(fā)布評論請先 登錄
相關(guān)推薦
靜音導(dǎo)軌與不靜音導(dǎo)軌的區(qū)別
![<b class='flag-5'>靜音</b>導(dǎo)軌與不<b class='flag-5'>靜音</b>導(dǎo)軌的區(qū)別](https://file1.elecfans.com/web3/M00/04/0C/wKgZPGdudnaAEXXtAAD4BC_YojA025.png)
濾波器在噪聲控制中的作用
TAS5754M的功放的待機和靜音電流分別是多少?
LM48511靜音關(guān)的時候有咔聲,如何處理?
TPA3255沒有靜音/待機腳要如何實現(xiàn)靜音從而消除關(guān)機POPO聲的沖擊?
TLV320AIC3106給寄存器19ADC上電后,寄存器15不能設(shè)置為不靜音,怎么解決?
鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表LongPressGesture之基礎(chǔ)手勢
![鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表LongPressGesture之基礎(chǔ)<b class='flag-5'>手勢</b>](https://file1.elecfans.com/web2/M00/EB/93/wKgZomZeuXuAfmJRAADrojiVvnQ389.png)
基于毫米波雷達的手勢識別算法
基于毫米波雷達的手勢識別神經(jīng)網(wǎng)絡(luò)
OpenHarmony實戰(zhàn)開發(fā)-手勢事件
![](https://file1.elecfans.com/web2/M00/C7/F4/wKgZomYXmRaAbtV7AASud6j43Zc128.jpg)
評論