加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶(hù)
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

51單片機(jī)送餐機(jī)器人快遞機(jī)器人_ESP8266_APP_WIFI(原理圖+PCB+源碼)

08/06 09:20
2405
服務(wù)支持:
技術(shù)交流群

完成交易后在“購(gòu)買(mǎi)成功”頁(yè)面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

原理圖PCBAltium Designer

程序編譯器:keil4 / 5

編程語(yǔ)言:C語(yǔ)言

設(shè)計(jì)編號(hào):C0056

功能介紹

小車(chē)通過(guò)三個(gè)紅外探頭進(jìn)行線路識(shí)別,兩個(gè)紅外傳感器識(shí)別停止的地點(diǎn),手機(jī)連接WIFI后通過(guò)APP傳輸相關(guān)的送貨信息,小車(chē)行駛到相關(guān)對(duì)應(yīng)的送貨地點(diǎn)就停止卸貨。

1、裝置上具有紅外線感應(yīng)尋跡的功能,在指定軌道布線之內(nèi),小車(chē)能遵循路線的范圍行走,不跑偏、不失控,若未在指定的軌道上不做出任何反應(yīng)原地待命。

2、派送的地址通過(guò)手機(jī)APP進(jìn)行信息傳輸,即具有APP地點(diǎn)配送功能,在APP設(shè)置配送的地點(diǎn),小車(chē)走到相應(yīng)的地點(diǎn)后進(jìn)行停止卸貨,若不小心走到的地點(diǎn)為非配送地點(diǎn),則繼續(xù)行走到軌道外,等待人工重新操作。

3、機(jī)器人電池供電具有方便的替換性,當(dāng)供電電池沒(méi)電時(shí),工作人員只需將備用電池進(jìn)行更換即可,省去充電的麻煩。

img

以下為本設(shè)計(jì)資料展示圖:

? 51單片機(jī)最小系統(tǒng)相對(duì)簡(jiǎn)單,除了主控芯片電源供電外,只需要在外圍搭建一個(gè)晶振、和兩個(gè)起振電容即可,該系統(tǒng)中的晶振由單片機(jī)可支持的最大頻率有關(guān),一般在12MHZ左右,起振電容在15P到30P之間。系統(tǒng)的供電在5V左右,而系統(tǒng)的起振只需大于3V即可,系統(tǒng)中通常會(huì)加入一個(gè)復(fù)位按鍵,該按鍵的作用在于當(dāng)系統(tǒng)運(yùn)行著繁瑣的程序中,若該程序驅(qū)動(dòng)的外圍器件初始化是一個(gè)相對(duì)較久的傳感器,而程序運(yùn)行過(guò)程出現(xiàn)BUG如法繼續(xù)運(yùn)行的情況下,手動(dòng)按下復(fù)位按鈕即可完成系統(tǒng)的重啟,無(wú)需斷電。如下圖所示為該單片機(jī)最小系統(tǒng)。

原理圖

img

PCB

imgimg

程序

img

main函數(shù)

#include<reg52.h>	   //頭文件
#include<LCD1602.h>
#include<ESP8266.h>
#include<EEPROM.h>
/*****************燈、蜂鳴器、按鍵引腳定義*******************/
sbit red1    = P2^0;  
sbit red2    = P2^1;  
sbit red3    = P2^2; 
sbit red4    = P2^3;  
sbit red5    = P2^4;  

sbit moto1	= P3^4;	 //
sbit moto2	= P3^5;	 //
sbit moto3	= P3^6;	 //
sbit moto4	= P3^7;	 //
/************************變量定義***********************/
uchar temp_f=0,diqu_f=0,diqu_f2=0; 		  	
uchar T0_num=100;		//計(jì)數(shù)變量

/********************************************************
函數(shù)名稱(chēng):void delayms(uint ms)
函數(shù)作用:毫毛延時(shí)函數(shù)
參數(shù)說(shuō)明:ms為延時(shí)的毫秒數(shù)
********************************************************/
void delayms(uint ms)
{
	unsigned char i=100,j;
	for(;ms;ms--)
	{
		while(--i)
		{
			j=10;
			while(--j);
		}
	}
}
void delay (unsigned int a)	   //這是一個(gè)延時(shí)函數(shù)
{
	 unsigned char i;
	 while( --a != 0)
	 {
	 	for(i = 0; i < 8; i++);
	 }         
}
/********************************************************
函數(shù)名稱(chēng):void display()
函數(shù)作用:正常顯示
參數(shù)說(shuō)明:
********************************************************/
void display()
{	
	if(ESP8266_f==1)//接收到WIFI控制指令
	{
		if(Hand("+IPD,0,1:A"))	  
		{
			temp_f=1;
		}
			else
				if(Hand("+IPD,0,1:B"))	  
				{
					temp_f=2;		diqu_f=0;	
				}
					else
						if(Hand("+IPD,0,1:C"))	  
						{
							temp_f=3;
						}
							else
								if(Hand("+IPD,0,1:D"))	 
								{
									temp_f=4;
								}										
		clearBuff();	      //清除緩存
	}	
	if(temp_f==0)
	{
			moto1=0;moto2=0;moto3=0;moto4=0;
		  lcd1602_write_character(0,2," Waiting status ");
	}	
	else
	{
		if(temp_f==1)
		{
				 lcd1602_write_character(0,2," Location one   ");
				 if(red4==1&&red5==1)//第一個(gè)地點(diǎn)識(shí)別到
				 {
							temp_f=0;	
							lcd1602_write_character(0,1,"  one finish    ");
				 }
				else
				{
					lcd1602_write_character(0,1,"  one working   ");
					if((red1==1&&red2==1&&red3==1)||(red1==0&&red2==0&&red3==0))//三個(gè)都檢測(cè)到黑線或者白線停止
					{
						 moto1=0;moto2=0;moto3=0;moto4=0;
					}
					if((red1==1&&red2==0&&red3==0)||(red1==1&&red2==1&&red3==0))//右邊檢測(cè)到  
					{
							moto1=0;moto2=1;moto3=1;moto4=0;delay(50); moto3=0;delay(100-50);  
								
					}
					if((red1==0&&red2==0&&red3==1)||(red1==0&&red2==1&&red3==1))//左邊檢測(cè)到  
					{
						
						 moto1=1;moto2=0;moto3=0;moto4=1;delay(50); moto1=0;delay(100-50); 	
					}
					if((red1==0&&red2==1&&red3==0))//中間
					{
						moto1=0;moto3=0;
					  moto2=moto4=1;                 
					  delay(50);                 
					  moto2=moto4=0;                 
					  delay(100-50); 
					}
				}	
		}

		if(temp_f==2)
		{
			   lcd1602_write_character(0,2," Location two   ");
			    if(diqu_f<2)
					{
							lcd1602_write_character(0,1,"  two working   ");
							if((red1==1&&red2==1&&red3==1)||(red1==0&&red2==0&&red3==0))//三個(gè)都檢測(cè)到黑線或者白線停止
							{
								 moto1=0;moto2=0;moto3=0;moto4=0;
							}
							if((red1==1&&red2==0&&red3==0)||(red1==1&&red2==1&&red3==0))//右邊檢測(cè)到  
							{
									moto1=0;moto2=1;moto3=1;moto4=0;delay(50); moto3=0;delay(100-50);  									
							}
							if((red1==0&&red2==0&&red3==1)||(red1==0&&red2==1&&red3==1))//左邊檢測(cè)到  
							{							
								 moto1=1;moto2=0;moto3=0;moto4=1;delay(50); moto1=0;delay(100-50); 		
							}
							if((red1==0&&red2==1&&red3==0))//中間
							{
								moto1=0;moto3=0;
								moto2=moto4=1;                 
								delay(50);                 
								moto2=moto4=0;                 
								delay(100-50); 
							}
							if(red4==0&&red5==0)	diqu_f2=0;
							if(red4==1&&red5==1&&diqu_f2==0)
							{
									diqu_f++;
							  	diqu_f2=1;
								  lcd1602_write_character(0,1,"  two working 1 ");
							}
					}
					else
					{
							temp_f=0;
							diqu_f=0;diqu_f2=0;
					    lcd1602_write_character(0,1,"  two finish    ");
					}		
		}

		if(temp_f==3)
		{
			   lcd1602_write_character(0,2," Location three ");
			    if(diqu_f<3)
					{
							lcd1602_write_character(0,1,"  three working ");
							if((red1==1&&red2==1&&red3==1)||(red1==0&&red2==0&&red3==0))//三個(gè)都檢測(cè)到黑線或者白線停止
							{
								 moto1=0;moto2=0;moto3=0;moto4=0;
							}
							if((red1==1&&red2==0&&red3==0)||(red1==1&&red2==1&&red3==0))//右邊檢測(cè)到  
							{
									moto1=0;moto2=1;moto3=1;moto4=0;delay(50); moto3=0;delay(100-50);  									
							}
							if((red1==0&&red2==0&&red3==1)||(red1==0&&red2==1&&red3==1))//左邊檢測(cè)到  
							{							
								 moto1=1;moto2=0;moto3=0;moto4=1;delay(50); moto1=0;delay(100-50); 		
							}
							if((red1==0&&red2==1&&red3==0))//中間
							{
								moto1=0;moto3=0;
								moto2=moto4=1;                 
								delay(50);                 
								moto2=moto4=0;                 
								delay(100-50); 
							}
							if(red4==0&&red5==0)	diqu_f2=0;
							if(red4==1&&red5==1&&diqu_f2==0)
							{
									diqu_f++;
							  	diqu_f2=1;
							}
					}
					else
					{
							temp_f=0;
							diqu_f=0;diqu_f2=0;
					    lcd1602_write_character(0,1,"  three finish  ");
					}		
		}	
	
		if(temp_f==4)
		{							
							if((red1==1&&red2==1&&red3==1)||(red1==0&&red2==0&&red3==0))//三個(gè)都檢測(cè)到黑線或者白線停止
							{
								 moto1=0;moto2=0;moto3=0;moto4=0;
							}
							if((red1==1&&red2==0&&red3==0)||(red1==1&&red2==1&&red3==0))//右邊檢測(cè)到  
							{
									moto1=0;moto2=1;moto3=1;moto4=0;delay(50); moto3=0;delay(100-50);  									
							}
							if((red1==0&&red2==0&&red3==1)||(red1==0&&red2==1&&red3==1))//左邊檢測(cè)到  
							{							
								 moto1=1;moto2=0;moto3=0;moto4=1;delay(50); moto1=0;delay(100-50); 		
							}
							if((red1==0&&red2==1&&red3==0))//中間
							{
								moto1=0;moto3=0;
								moto2=moto4=1;                 
								delay(50);                 
								moto2=moto4=0;                 
								delay(100-50); 
							}	
		}			
	}	

}	
/********************************************************
函數(shù)名稱(chēng):void main()
函數(shù)作用:主函數(shù)
參數(shù)說(shuō)明:
********************************************************/
void main()
{	
	LCD_init();				    //LCD1602初始化
	lcd1602_write_pic(0x00,pic);//將自定義字符“°”寫(xiě)入到LCD1602中
	ESP8266_uart();//ESP8266配置參數(shù)
	ESP8266_init();			    //ESP8266初始化
	while(1)			        //死循環(huán)
	{	
		display();	        //顯示當(dāng)狀態(tài)
	}
}

設(shè)計(jì)說(shuō)明書(shū)

img

設(shè)計(jì)背景

機(jī)器人賦予人的概念是替代人工做一些高效率或者難以完成的事,隨著物聯(lián)網(wǎng)時(shí)代的發(fā)展,目前市場(chǎng)上出現(xiàn)的相關(guān)機(jī)器人越來(lái)越多,比如送餐機(jī)器人,洗碗機(jī)器人,無(wú)人機(jī)監(jiān)控交通機(jī)器人等,不管是否具有人的外觀形態(tài),能幫助人工完成繁瑣而復(fù)雜的工作,具有人的替代性,就統(tǒng)稱(chēng)機(jī)器人。

但隨著目前互聯(lián)網(wǎng)的發(fā)達(dá),各種電商平臺(tái)的崛起,物流行業(yè)也跟著興旺起來(lái),不管是從小公司還是知名上市大公司,物流分煉的分配大部分都是依靠人工,不僅效率慢而且還會(huì)隨著外部因素的增加導(dǎo)致分煉錯(cuò)誤的事件發(fā)生,因?yàn)槲锪鞯娜斯み\(yùn)輸成本較高,工作質(zhì)量也隨著不同物流公司的管理制度出現(xiàn)不同的服務(wù)。尤其是購(gòu)物節(jié)期間,物流物件的增多給人工的工作量帶來(lái)了很大的壓力,尤其是在總部公司的物件地方分煉,要保證精準(zhǔn)高效率的分煉配送是相當(dāng)?shù)挠须y度,若有一款智能分配物件派送地址并且制定的送貨區(qū)卸貨拉貨,豈不是方便快捷高效率很大,于是快遞機(jī)器人的想法就表現(xiàn)的非常具有意義性,本文的設(shè)計(jì)理念就是基于該現(xiàn)象提出的做法,相信在今后的市場(chǎng)肯定有廣闊應(yīng)用場(chǎng)景和一席之地。

主要完成的工作

要整體的實(shí)現(xiàn)快遞機(jī)器人的實(shí)驗(yàn),不僅僅要從理論的分析,還需要實(shí)際的設(shè)計(jì),包括軟件硬件的設(shè)計(jì),將三者結(jié)合才能實(shí)現(xiàn)本次裝置設(shè)計(jì)的需求,所需要的研究?jī)?nèi)容如下:

1、對(duì)快遞機(jī)器人的工作原理、結(jié)構(gòu)概念進(jìn)行深入的研究和設(shè)計(jì),提出多種可實(shí)行的方案,包括單片機(jī)以及相關(guān)傳感器的選型,分析這幾個(gè)選型方案的優(yōu)缺點(diǎn),選出最佳的設(shè)計(jì)方案。

2、對(duì)選定的傳感器和單片機(jī)進(jìn)行理論上的資源分析,包括該器件的控制方式、資源利用以及精度換算等,為后期的硬件設(shè)計(jì)和軟件編寫(xiě)做鋪墊。

3、采用相關(guān)的原理圖繪制工具,對(duì)整體電路進(jìn)行線路繪制,并導(dǎo)入PCB布線布局,再利用外圍器件將繪制的原理圖進(jìn)行焊接實(shí)物利。

4、對(duì)硬件結(jié)構(gòu)焊接完成后,勾勒整體的程序流程圖,再采用相關(guān)的程序編寫(xiě)軟件對(duì)主程序、各個(gè)子程序進(jìn)行程序的編寫(xiě)和調(diào)試。

設(shè)計(jì)文件

開(kāi)發(fā)資料下載

img

  • 設(shè)計(jì)資料獲取聯(lián)系方式.doc

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
FT232RL-TUBE 1 FTDI Chip USB Bus Controller, CMOS, PDSO28, 10.20 X 5.30 MM, GREEN, SSOP-28

ECAD模型

下載ECAD模型
$4.7 查看
MC9S08PA16AVTJR 1 NXP Semiconductors Microcontroller

ECAD模型

下載ECAD模型
$2.42 查看
DSPIC33EP512MU810-I/PT 1 Microchip Technology Inc 16-BIT, FLASH, 60 MHz, MICROCONTROLLER, PQFP100, 12 X 12 MM, 1 MM HEIGHT, LEAD FREE, PLASTIC, TQFP-100
$10.04 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜