該智能車采用紅外傳感器對賽道進行道路檢測,單片機根據采集到的信號的不同狀態判斷小車當前狀態,通過電機驅動芯片L298N發出控制命令,控制電機的工作狀態以實現對小車姿態的控制。
本模型車的電路系統包括電源管理模塊、單片機模塊、傳感器模塊、電機驅動模塊。其中采用AT89C52作為單片機控制芯片(5V),同時需要6V電源電機(L298N)和舵機、傳感器、紅外對管和電壓比較器模塊和7805穩壓模塊。
從而實現將紅外采集模塊中的紅外發射接收對管檢測路面上面的軌跡,并將軌跡信息送到單片機中去,單片機采用模糊推理求出轉向的角度和行走速度,然后去控制行走部分,最終實現智能小車在規定路面上的軌跡行駛。
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
e7c3f604457da3f7280e7596c565fea.png (211 KB, 下載次數: 146)
下載附件
2019-6-9 22:10 上傳
0.png (29.72 KB, 下載次數: 92)
下載附件
2019-6-10 04:28 上傳
單片機源程序如下:
- #include <STC12C5Axx.h>
- sbit IN3=P1^0;
- sbit IN4=P1^1;
- sbit IN1=P1^2;
- //sbit ENA=P1^3;
- //sbit ENB=P1^4;
- sbit IN2=P1^5;
- sbit D4=P0^4;
- sbit D1=P0^1;
- sbit D2=P0^2;
- sbit D3=P0^3;
- sbit D0=P0^0;
- sbit D5=P0^5;
- void qian() //前進
- {
- IN1=1;
- IN2=0;
- IN3=1;
- IN4=0;
- }
- void you() //YOU
- {
- IN1=1;
- IN2=0;
- IN3=0;
- IN4=1;
- }
- void zuo() //ZUO
- {
- IN1=0;
- IN2=1;
- IN3=1;
- IN4=0;
- }
- void PWMinit()
- {
- CMOD=0X02;//"時鐘源為1/2; "
- CL=CH=0X00;
- CCAPM0=0X42;
- CCAP0L=0X00;
- CCAP0H=0x00;
- CCAPM1=0x42;
- CCAP1H=0x00;
- CCAP1L=0x00;
- CR=1;
- }
- void PWMtiaojie(unsigned int num,int cex) //NUM"越大越快,調節范圍為55~99",cex"電機0,電機1"
- {
- double i=256*(100-num)/100;
- switch(cex)
- {
- case 0: CCAP0L=i; CCAP0H=i; CCAPM0=0x42; break;
- case 1: CCAP1L=i; CCAP1H=i; CCAPM1=0x42; break;
- }
- }
- void main()
- {
- PWMinit();
- while(1)
- {
- if(D1==1&&D3==1&&D2==1&&D0==1)
- {
- PWMtiaojie(25,0);
- PWMtiaojie(25,1);
- qian();
- }
- if(D2==0||D3==0)
- {
- PWMtiaojie(1,0);
- PWMtiaojie(1,1);
- you();
- }
- if(D1==0||D0==0)
- {
- PWMtiaojie(1,1);
- PWMtiaojie(1,0);
- zuo();
- }
- }
- }
復制代碼
所有資料51hei提供下載:
循跡小車硬件部分.rar
(1.27 MB, 下載次數: 233)
2019-6-9 23:04 上傳
點擊文件名下載附件
PCB板圖 下載積分: 黑幣 -5
循跡小車程序部分.rar
(4.41 KB, 下載次數: 162)
2019-6-9 23:00 上傳
點擊文件名下載附件
基于AT89C52的程序設計 下載積分: 黑幣 -5
|