找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3712|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于stc15單片機(jī)的遙控火星車

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:596325 發(fā)表于 2019-8-10 14:21 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 venom6 于 2019-8-10 14:25 編輯

車是一款獨(dú)創(chuàng)的基于STC15W4K61S4單片機(jī)的全地形物聯(lián)網(wǎng)運(yùn)輸車。它的機(jī)械結(jié)構(gòu)部分參照了2011年的好奇號(hào)火星探測(cè)器,為了適應(yīng)城市中的樓梯、臺(tái)階等地形又將它的機(jī)械結(jié)構(gòu)做了調(diào)整。作品電路包括藍(lán)牙模塊、遠(yuǎn)程圖傳模塊、MP3模塊、矩陣按鍵密碼箱、GPS模塊以及基本的供電、運(yùn)動(dòng)模塊,所有功能均可用單個(gè)上位機(jī)遠(yuǎn)程操控。其主要功能是實(shí)現(xiàn)快遞、外賣的短途運(yùn)輸,且該過程均可由操作者遠(yuǎn)程實(shí)現(xiàn),此外作品還可以應(yīng)用于復(fù)雜地形的探險(xiǎn)、救援、物資運(yùn)輸?shù)阮I(lǐng)域。如有朋友想詳細(xì)了解車的結(jié)構(gòu)和單片機(jī)程序,可以評(píng)論下。本人很菜,希望與大家交流。
******************************************************************************/
#include "main.h"
#include "delay.h"
#include "uart.h"
#define uchar unsigned char
#define uint unsigned int
#define KEY P1
uchar k;
uint a=0;
uchar code table[]={0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00};
uchar code key_code[]={0x77, 0xb7, 0xd7, 0x7b, 0xbb, 0xdb, 0x7d, 0xbd, 0xdd, 0xbe};
uchar code pass_word[3]={1,2,3};
uint mima[3]={0,0,0};

******************************************/
/
void GPIO_config(void)
{
P0M1 = 0; P0M0 = 0;
P1M1 = 0; P1M0 = 0;
P2M0 = 0; P2M1 = 0;
P3M1 = 0; P3M0 = 0;
P4M1 = 0; P4M0 = 0;
P5M0 = 0;
P5M1 = 0;
}
/*****************************************/
void main(void)
{
KEY=0xff;
GPIO_config();
UartInit();
Uart2SendString("Please enter your command:\r\n");
delay_ms(200);

while(1)
{
  if(Hand("MP3"))
  {  
   LED = LED_ON;
   CLR_Buf();
   Uart2CLR_Buf();
   SendString("#001P1501T0000!");
   Uart2SendString("#001P1501T0000!");         
  }
  if(Hand("Z"))
  {  
   LED = LED_ON;
   CLR_Buf();
   Uart2CLR_Buf();
   SendString("#001P1511T0000!");
   Uart2SendString("#001P1511T0000!");         
  }
  
  if(Hand("S"))
  {  
   LED = LED_OFF;
   CLR_Buf();
   Uart2CLR_Buf();
   SendString("#001P1499T0000!");
   Uart2SendString("#001P1499T0000!");         
  }
  if(Hand("NEXT"))
  {  
   CLR_Buf();
   Uart2CLR_Buf();
   SendString("#001P1496T0000!");
   Uart2SendString("#001P1496T0000!");         
  }
  if(Hand("#001P1495T0000!"))
  {  
   CLR_Buf();
   Uart2CLR_Buf();
   SendString("#001P1495T0000!");
   Uart2SendString("#001P1495T0000!");         
  }
  if(Hand("UP"))
  {  
   CLR_Buf();
   Uart2CLR_Buf();
   SendString("#001P1494T0000!");
   Uart2SendString("#001P1494T0000!");         
  }
  if(Hand("#001P1493T0000!"))
  {  
   CLR_Buf();
   Uart2CLR_Buf();
   SendString("#001P1493T0000!");
   Uart2SendString("#001P1493T0000!");         
  }
  else if(Hand("GO"))
  {  
       IN1 =1;
          IN2 =0;
          IN3 =0;
          IN4 =1;
   CLR_Buf();
   SendString("#Command: GO, Executed!\r\n");         
  }
  else if(Hand("BAC"))
  {  
       IN1 =0;
          IN2 =1;
          IN3 =1;
          IN4 =0;
   CLR_Buf();
   SendString("#Command: BACK, Executed!\r\n");         
  }
  else if(Hand("LEFT"))
  {      
     IN1 =1;
      IN2 =0;
          IN3 =1;
          IN4 =0;  
   CLR_Buf();
   SendString("#Command: LEFT, Executed!\r\n");         
  }
  else if(Hand("RIGHT"))
  {      
     IN1 =0;
     IN2 =1;
     IN3 =0;
     IN4 =1;
   CLR_Buf();
   SendString("#Command: RIGHT, Executed!\r\n");         
  }
  else if(Hand("TING"))
  {      
     IN1 =0;
     IN2 =0;
     IN3 =0;
     IN4 =0;
     MIMASUO =1;
       BEEP=1;
   CLR_Buf();
   SendString("#Command: TING, Executed!\r\n");         
  }
  else if(Hand("K"))
  {      
     MIMASUO =0;
      BEEP=0;
   CLR_Buf();
   Uart2CLR_Buf();
   SendString("#Command: KAISUO, Executed!\r\n");
   Uart2SendString("#001P1513T0000!");         
  }
  else if(Uart2Hand("ledoff"))
  {
   LED = LED_OFF;   
   Uart2CLR_Buf();
   Uart2SendString("LED Off!\r\n");         
  }
}
}



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表