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