步驟1:電路組件
IC1-7805,5V穩(wěn)壓器
IC2-ATmega328微控制器
IC3- LM1117-33,3.3電壓調(diào)節(jié)器
IC4-HT12E,2 12串聯(lián)編碼器
IC5-HT12D,2 12串聯(lián)解碼器
IC6-L293D,雙H橋式電動(dòng)機(jī)驅(qū)動(dòng)器
LED1和4-5mm LED
電阻器(全部1/4瓦,碳含量為5%):
R1-1兆歐
R2-10千歐
R3-750千歐
R4-R7-220歐姆
R8-47千歐
電容器:
C1,C2-22pF陶瓷盤
C3-0.1μF陶瓷盤
C4-0.33μF陶瓷盤
C5-10μF,16V電解
其他:
CON1,CON3-2針連接器
CON2-6針連接器
X TAL 1-16MHz晶體
TX1-433MHz發(fā)射器模塊
RX1-433MHz接收器模塊
M1,M2 -直流減速電機(jī),100rpm
S1,S2-開/關(guān)開關(guān)
電池1-9V PP3電池
電池2-4.5V, 1.5Ah鉛酸電池
ANT.1,ANT.2-17厘米長的單股線天線
-ADXL335 3軸加速度計(jì)
第2步:這是什么?
ATmega328
ATmega328是Atmel的單芯片微控制器,屬于mega AVR系列。基于Atmel 8位AVR RISC的微控制器結(jié)合了具有讀寫功能的32kB ISP閃存,1kB EEPROM,2kB SRAM,23個(gè)通用I/O線,32個(gè)通用工作寄存器,三個(gè)靈活的定時(shí)器/計(jì)數(shù)器,以及比較模式,內(nèi)部和外部中斷,串行可編程USART,面向字節(jié)的2線串行接口,SPI串行端口,10位A/D轉(zhuǎn)換器,帶有內(nèi)部振蕩器的可編程看門狗定時(shí)器和5個(gè)軟件可選的電源-節(jié)能模式。設(shè)備工作在1.8至5.5伏之間它實(shí)現(xiàn)了接近每MHz 1 MIPS的吞吐量。 ATmega328p可以替代ATmega328p。
ADXL335
這是一個(gè)完整的三軸加速度測(cè)量系統(tǒng)。 ADXL335的最小測(cè)量范圍為±3g。它包含一個(gè)多晶硅表面微機(jī)械傳感器和信號(hào)調(diào)理電路,以實(shí)現(xiàn)開環(huán)加速度測(cè)量架構(gòu)。輸出信號(hào)是與加速度成比例的模擬電壓。加速度計(jì)可以測(cè)量傾斜感應(yīng)應(yīng)用中的靜態(tài)重力加速度,以及由于運(yùn)動(dòng),沖擊或振動(dòng)而產(chǎn)生的動(dòng)態(tài)加速度。
該傳感器是一個(gè)多晶硅表面微加工結(jié)構(gòu),位于頂部硅晶片。多晶硅彈簧將結(jié)構(gòu)懸掛在晶片表面上方,并提供抵抗加速力的能力。使用由獨(dú)立的固定板和連接到運(yùn)動(dòng)物體上的板組成的差分電容器來測(cè)量結(jié)構(gòu)的撓度。固定板由180°異相方波驅(qū)動(dòng)。加速度會(huì)使移動(dòng)的質(zhì)量偏轉(zhuǎn)并使差動(dòng)電容器不平衡,從而導(dǎo)致傳感器輸出的幅度與加速度成比例。然后使用相位敏感的解調(diào)技術(shù)確定加速度的大小和方向。
L293D
這是一個(gè)16引腳DIP封裝電機(jī)驅(qū)動(dòng)器IC(IC6),具有四個(gè)輸入引腳和四個(gè)輸出引腳。全部四個(gè)輸入引腳連接到解碼器IC(IC5)的輸出引腳,四個(gè)輸出引腳連接到機(jī)器人的直流電動(dòng)機(jī)。啟用引腳用于啟用IC6兩側(cè)的輸入/輸出引腳。
編碼器(HT12E)和解碼器(HT12D)IC
212編碼器是用于遠(yuǎn)程控制系統(tǒng)應(yīng)用的一系列CMOS LSI。它們能夠編碼由N個(gè)地址位和12 N個(gè)數(shù)據(jù)位組成的信息。每個(gè)地址/數(shù)據(jù)輸入可以設(shè)置為兩個(gè)邏輯狀態(tài)之一。接收到觸發(fā)信號(hào)后,已編程的地址/數(shù)據(jù)將與標(biāo)頭位一起通過RF或紅外傳輸介質(zhì)進(jìn)行傳輸。選擇HT12E上的TE觸發(fā)或HT12D解碼器上的數(shù)據(jù)(DIN)觸發(fā)的能力進(jìn)一步增強(qiáng)了212系列編碼器的應(yīng)用靈活性。 HT12D還為紅外系統(tǒng)提供38kHz的載波。
發(fā)射器
發(fā)送器由ATmega328微控制器(IC2),ADXL335加速度計(jì),HT12E編碼器(IC4)和433MHz RF發(fā)送器模塊(TX1)組成。在該電路中,來自ADXL335引腳(x,y)的兩個(gè)模擬輸出與微控制器的輸入引腳(23,24)連接。模擬信號(hào)通過微控制器轉(zhuǎn)換為數(shù)字信號(hào)。來自微控制器的引腳16、17、18和19的數(shù)字輸出直接發(fā)送到編碼器IC4的引腳13、12、11和10。此數(shù)據(jù)通過RF模塊TX1進(jìn)行編碼和傳輸。
接收器
接收器部分由433MHz射頻接收器模塊(RX1),HT12D解碼器(IC5)和L293D電機(jī)驅(qū)動(dòng)器(IC6)組成,用于運(yùn)行電機(jī)。此處,接收器模塊RX1接收發(fā)送的信號(hào),該信號(hào)由解碼器IC解碼以獲得相同的數(shù)字輸出。 IC6的四個(gè)輸出驅(qū)動(dòng)兩個(gè)電動(dòng)機(jī)。機(jī)器人按照發(fā)射器中加速度計(jì)的傾斜方向移動(dòng)。
步驟3:方框圖
步驟4:發(fā)射器和接收器電路
前兩個(gè)圖像是接收器電路的布局,其他兩個(gè)圖像是發(fā)射器電路的布局。/p》
步驟6:軟件程序
該軟件程序是用Arduino編程語言編寫的。我借助Arduino IDE 1.0.5和Arduino Uno板編寫了一個(gè)新的ATmega328微控制器。
首先,您必須將引導(dǎo)加載程序代碼加載到微控制器中。為此,通過選擇文件→示例→Arduino ISP,我將Arduino Uno用于IDE中給出的系統(tǒng)內(nèi)編程(ISP)。將引導(dǎo)程序上傳到微控制器后,即可上載該項(xiàng)目的pose.ino代碼。
步驟7:源代碼
const int ap1 = A0;
const int ap2 = A1;
int sv1 = 0;
int ov1 = 0;
int sv2 = 0;
int ov2 = 0;
void setup()
{//以9600 bps初始化串行通信:
Serial.begin(9600);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
}
void loop()
{AnalogReference(EXTERNAL);//將3.3v連接到AREF
//讀取模擬值:
sv1 = AnalogRead(ap1);
ov1 = map(sv1,0,1023,0,255);
delay(2);
sv2 = AnalogRead(ap2);
ov2 = map(sv2,0,1023,0,255);
延遲(2);
Serial.print(“ Xsensor1 =”);
Serial.print(SV1);
Serial.print(“ \ t output1 =”);
Serial.println(OV1);
Serial.print(“ Ysensor2 =”);
Serial.print(sv2);
Serial.print(“ \ t output2 =”);
Serial.println(OV2);
if(analogRead(ap1)《514 && analogRead(ap2)《463)//用于向后移動(dòng)
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
}
else
{
if(analogRead(ap1)《486 && analogRead(ap2)》 508)//左打開
{
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
}
其他
{
if(analogRead(ap1)》 512 && analogRead(ap2)》 560)//用于轉(zhuǎn)發(fā)
{
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
}
else
{
if(analogRead(ap1)》 550 && analogRead(ap2)》 512)//右打開
{
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
}
否則
{
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,HIGH);
}
}
}
}
}
步驟8:測(cè)試
安裝此處所示PCB上的所有組件,以最大程度地減少組裝錯(cuò)誤。將接收器PCB和4.5V電池固定在機(jī)器人的機(jī)箱上。在機(jī)器人的后側(cè)固定兩個(gè)電機(jī)以及車輪,在前側(cè)固定一個(gè)腳輪。將主代碼上傳到微控制器后,將其從Arduino Uno板上移除,然后將其插入到組裝好的發(fā)送器PCB中。
現(xiàn)在,打開發(fā)送器和接收器電路中的電源。將變送器電路連接到您的手(或手套)上,然后向前,向后和側(cè)向移動(dòng)您的手。機(jī)器人的運(yùn)動(dòng)方向在表I中給出。如果您保持手掌水平并平行于地球表面,則機(jī)器人將停止運(yùn)轉(zhuǎn)。
為進(jìn)行故障排除,請(qǐng)首先驗(yàn)證各個(gè)測(cè)試點(diǎn)的電壓是否符合表1所述。
-
微控制器
+關(guān)注
關(guān)注
48文章
7903瀏覽量
153679 -
機(jī)器人
+關(guān)注
關(guān)注
213文章
29463瀏覽量
211492 -
手勢(shì)控制
+關(guān)注
關(guān)注
4文章
44瀏覽量
22006 -
ATmega328
+關(guān)注
關(guān)注
1文章
37瀏覽量
21197
發(fā)布評(píng)論請(qǐng)先 登錄
具身智能機(jī)器人控制器的創(chuàng)新未來需要高效、可靠、易用的控制方案
突破人形機(jī)器人控制器性能瓶頸:高效穩(wěn)定的電容器解決方案

【開源項(xiàng)目】你準(zhǔn)備好DIY一款功能強(qiáng)大的機(jī)器人了嗎?

評(píng)論