聚豐項目 > 家用式定樁充電割草機(jī)
本設(shè)計采用無線定樁充電的遙控和自定義路徑的割草方案,打草方案采用小車兩側(cè)掛載打草繩打草的方式(此處用小電機(jī)演示)。 小車頂部掛載雨滴傳感器,大雨情況下,小車無人控制直行,駛進(jìn)預(yù)訂的避水車間(發(fā)射端預(yù)先做隔水措施)。 小車底部掛載無線充電接收模塊。模塊以12V輸入形式供電。通過穩(wěn)壓模塊處理后,經(jīng)過主控IC控制允許后向小車電池進(jìn)行充電。 使用無線方案的充電模式,增強(qiáng)小車防水性能,不用頻繁更換電池,解放了勞動力。 遙控模式能讓用戶在室內(nèi)操作,不用頂著太陽使用割草機(jī),符合機(jī)器為人服務(wù) 的理念。 防雨設(shè)計在主人不在家時電子器件會進(jìn)行自我保護(hù),延長使用壽命。 (本項目采用的是IDT 15W無線充電開發(fā)套件)
AA_Knight
分享AA_Knight
團(tuán)隊成員
柯銘凱 學(xué)生
王興才 學(xué)生
周思剡 學(xué)生
主控芯片為51內(nèi)核的擴(kuò)展IC:
控制電機(jī)驅(qū)動信號,采集電源電壓做電量指示,采集雨滴傳感器數(shù)據(jù)做是否避雨的判斷,控制繼電器對蓄電池進(jìn)行充電。
解碼遙控信號,做出響應(yīng)。
2.遙控信號發(fā)射器主控為6060:
發(fā)射遙控信號,并以紅色指示燈做指示。
控制器俯視圖草圖如下:
控制割草機(jī)前進(jìn)、后退;割草,可實現(xiàn)遠(yuǎn)程軟關(guān)機(jī),全鍵喚醒;可遙控割草機(jī)開始接受充電;可遙控割草機(jī)在庭院按預(yù)設(shè)路線自動巡航割草;可開關(guān)電池電量指示,由主板上的5個led燈做電量等級指示。
3.電機(jī)驅(qū)動IC為MX612:
引腳分布圖及定義:需注意該ICvcc與vdd與默認(rèn)定義不同,此處VCC是指邏輯電平。
可以實現(xiàn)一個電機(jī)前后驅(qū)動。
4.穩(wěn)壓元件為2596:
右圖為LM2596原理圖,LM2596用于無線接收端穩(wěn)壓至5V為鋰電池充電。輸入電壓可達(dá)40V,輸出電壓范圍是1.2V到37V±4%。
5.realplay雨水傳感模塊:
當(dāng)感應(yīng)到雨點到達(dá)某種程度時,小車徑直驅(qū)動,駛進(jìn)預(yù)設(shè)避雨區(qū)。(假設(shè)發(fā)射端已做防水措施。)
備注:
因成本問題只是概念階段,未按真實數(shù)據(jù)選型,電機(jī)因為電源沒有使用大功率電源,所以用三個直流無刷電機(jī)代替。
原預(yù)定的陀螺儀因系統(tǒng)時鐘占用無法調(diào)用資源,電機(jī)振動引起誤差參數(shù)沒意義,方案舍棄。
原預(yù)定的GPS因搜星不便,經(jīng)常沒有信號又白白占用一組串口和時鐘資源被舍棄。
改為采用遙控和預(yù)設(shè)路徑巡航割草方案。
項目持續(xù)完善中,遙控正在轉(zhuǎn)2.4G控制,測試階段。2.4G版割草機(jī)使用PWM驅(qū)動,程序分六級調(diào)速。
遙控開發(fā)平臺:WIN7,WINScope IDE
代碼主程序如下:
IDT_ir_code.txt紅外源碼
主控IC開發(fā)平臺:WIN7,IAR
部分代碼如下
雨水傳感,電壓檢測AD采樣的部分源碼:
u16 adc_value;
ADC_IE(0);
adc_value = ((u16)ADC_DATH << 8) | ADC_DATL;
ada_value[adc_channel-2] = adc_value;
//deg_puts("\n");
//deg_u16(adc_value);
adc_channel++;
if (adc_channel > 11)
{
adc_channel = 2;
ADC_CON1 = ad_table[adc_channel];
ADC_CON0 |= BIT(6); //啟動ADC轉(zhuǎn)換
ADC_IE(1);
}
else
{
ADC_CON1 = ad_table[adc_channel];
ADC_CON0 |= BIT(6); //啟動ADC轉(zhuǎn)換
ADC_IE(1);
}
遙控信號解碼部分源碼:
const u8 IRTab1151[] = //user code is 0x1151
{
0xff,IR_01,IR_03, IR_07,IR_04, 0xff, 0xff, 0xff,IR_05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
IR_06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
IR_00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
IR_02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
};紅外接收編碼表
u8 get_irkey_value(void)
{
u8 tkey = 0xff;
if (pIR_code->bState != 32)
{
//my_putchar('a');
return tkey;
}
if ((((u8*)&pIR_code->wData)[0] ^ ((u8*)&pIR_code->wData)[1]) == 0xff)
{
//my_putchar('b');
if (pIR_code->wUserCode == 0x1151)
{
//my_putchar('c');
tkey = IRTabFF00[(u8)pIR_code->wData];
}
}
else
{
pIR_code->bState = 0;
}
return tkey;
}
PWM驅(qū)動設(shè)置部分代碼如下:
void timer2_output_PWM2(void) //16位 PWM2輸出函數(shù)
{
///系統(tǒng)時鐘為48MHZ即48000KHZ
///輸出100KHZ PWM波形,正占空比為33%
//1、timer模式和預(yù)分頻設(shè)置
TMR2_CON0 = 0; //清零
TMR2_CON0 |= BIT(0); //定時器為PWM模式
TMR2_CON0 &= ~(BIT(2) | BIT(3)); //使用系統(tǒng)時鐘作為時鐘源
TMR2_CON0 |= BIT(6); //清除中斷請求標(biāo)志
TMR2_CON0 &= ~(BIT(3) | BIT(4)), TMR2_CON1 &= ~BIT(6); //預(yù)分頻為1
//2、PRD計算
TMR2_PRDL = 479 & 0xff; //TMRx_PRD = 48000(KHZ)/1/100(KHZ) - 1 = 479
TMR2_PRDH = 479 >> 8;
//3、正占空比設(shè)置
TMR2_PWML = 158; //TMRx_PWMx = TMRx_PRD * 33% = 158
TMR2_PWMH = 0;
//4、使能PWM2輸出(默認(rèn)輸出)
P2DIR &= ~BIT(7);
TMR2_CON1 |= BIT(0); //PWM2(P27)使能
}
因為主控芯片為閉源芯片,完整代碼涉及權(quán)限問題不能上傳。
上圖分別為2.4G遙控器框架,和信號接收端。IDT感應(yīng)式無線充電15W模塊工作電壓電流。時間關(guān)系,項目未完全竣工無法接成實物,只能用測試板演示。
動心忍性1234: 您好我是無線電雜志的編輯,我們對您的項目十分感興趣,請問您有興趣投稿嗎?成為我們的作者除稿費外還有其他優(yōu)厚條件。敬請參與。投稿請聯(lián)系QQ260534978.
回復(fù)