標(biāo)題: 自動(dòng)巡航小船制作 北斗導(dǎo)航+SI4432通訊+stm32主控 [打印本頁(yè)]

作者: 1511032143    時(shí)間: 2017-7-3 21:50
標(biāo)題: 自動(dòng)巡航小船制作 北斗導(dǎo)航+SI4432通訊+stm32主控
這是一個(gè)以stm32為主控芯片制作的小船,通過(guò)51單片機(jī)制作遙控器并以si4432作為通訊模塊進(jìn)行通訊,可以進(jìn)行設(shè)點(diǎn)自動(dòng)巡航操作,作為一個(gè)剛?cè)腴T的菜逼程序?qū)懙挠悬c(diǎn)摳腳,大神們多多包涵。(遙控器原理圖已丟失,附件中只有船的原理圖以及船和遙控器的程序)
原理圖:

北斗導(dǎo)航系統(tǒng)的stm32單片機(jī)源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "pwm.h"
  5. #include "usart.h"
  6. #include "GY273.h"
  7. #include "huo.h"
  8. #include "nokia_5110.h"
  9. #include "rf4432.h"
  10. extern struct _pid pid;
  11. extern struct autoturn hello;

  12. int main(void)
  13. {        
  14.          int iii;  
  15.          
  16.          delay_init();                     //延時(shí)函數(shù)初始化         
  17.          LED_Init();                          //初始化與LED連接的硬件接口
  18.          LCD_init();
  19.          delay_ms(500);
  20.          Init_HMC5883();
  21.          uart_init(9600);
  22.    uart_init2(9600);
  23.    TIM2_PWM_Init(10000,0);
  24.          PID_init();
  25.          RF4432_Init();
  26.          RF4432_SetRxMode();
  27.          order();/*向北斗發(fā)送AT指令*/
  28.    LCD_write_english_string(0,3,"wait");
  29.          hello.juli=3.5;
  30.          hello.num=3;
  31.   while(1)
  32.         {
  33.                 if(iii==hello.Actual_du){iii=hello.Actual_du-1;}//無(wú)用語(yǔ)句
  34.     get_lc(&hello);//無(wú)線處理
  35.                 TIM_SetCompare1(TIM2,(uint)(10000-(hello.su1)*10.0));                //A1左輪
  36.                 TIM_SetCompare2(TIM2,(uint)(10000-(hello.su2)*10.0));                //A0右輪
  37.                
  38. ……………………

  39. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

遙控器51單片機(jī)源程序如下:
  1. #include <STC12C5A60S2.H>

  2. #include <intrins.h>
  3. #include <string.h>
  4. #include "uart.h"
  5. #include "spi.h"
  6. #include "rf4432.h"
  7. #include "tm1638.h"
  8. #define uchar  unsigned char
  9. #define uint   unsigned int
  10. #define RF4432_TxBuf_Len 4
  11. #define RF4432_RxBuf_Len 4   //定義RF4432數(shù)據(jù)包長(zhǎng)度
  12. #define IAP_ADDRESS 0x0000
  13. typedef unsigned char BYTE;
  14.   typedef unsigned int WORD;
  15. extern void Delay(unsigned int n);
  16. extern void IapWriteByte(WORD addr, BYTE dat);
  17. extern void IapEraseSector(WORD addr);
  18. extern BYTE IapReadByte(WORD addr);
  19. sbit deng=P1^4;
  20. //sbit set1=P4^0;
  21. //sbit set2=P0^1;
  22. //sbit set3=P0^3;
  23. //sbit set4=P0^5;
  24. //sbit set5=P0^7;
  25. //sbit set6=P2^1;
  26. //sbit go=P4^2;
  27. //sbit left=P2^3;
  28. //sbit right=P2^7;
  29. //sbit stop=P2^5;
  30. //sbit ji1=P1^0;

  31. void main(void)
  32. {
  33.         unsigned char i;         unsigned int h;
  34.         deng=0;
  35.         SPI_Init();
  36.         UART_Init();
  37.         RF4432_Init();
  38.         RF4432_SetRxMode();         //設(shè)置成接收模式
  39.         init_TM1638();
  40.     P1 = 0xfe;
  41.     Delay(10);
  42.     IapEraseSector(IAP_ADDRESS);

  43.     P1 = 0xfc;
  44.     Delay(10);
  45.     for (h=0; h<512; h++)
  46.     {
  47.         IapWriteByte(IAP_ADDRESS+h, 10);
  48.     }

  49.     P1 = 0xf8;
  50.     Delay(10);
  51.     /*for (h=0; h<512; h++)
  52.     {
  53.         if (IapReadByte(IAP_ADDRESS+h) != (BYTE)h)
  54.             goto Error;
  55.     } */

  56.         while(1)
  57.         {        
  58.         /*        i=Read_key();                          //讀按鍵值
  59.                 if(i<8)//如果有數(shù)字被按下
  60.                 {
  61.                         //Write_DATA(i<<1,tab[i]);
  62.                         Write_allLED(1<<i);
  63.                         while(Read_key()==i);                       //等待按鍵釋放
  64.                         switch (i)
  65.                         {
  66.                                 case 0 :RF4432_TxBuf[0]='P';RF4432_TxBuf[1]='F';break;
  67.                                 case 1 :RF4432_TxBuf[0]='P';RF4432_TxBuf[1]='L';break;
  68.                                 case 2 :RF4432_TxBuf[0]='P';RF4432_TxBuf[1]='R';break;
  69.                                 case 3 :RF4432_TxBuf[0]='P';RF4432_TxBuf[1]='P';break;
  70.                                 case 4 :RF4432_TxBuf[0]='S';RF4432_TxBuf[1]=0;break;
  71.                                 case 5 :RF4432_TxBuf[0]='S';RF4432_TxBuf[1]=1;break;
  72.                                 case 6 :RF4432_TxBuf[0]='S';RF4432_TxBuf[1]=2;break;
  73.                                 case 7 :RF4432_TxBuf[0]='R';RF4432_TxBuf[1]='R';break;
  74.                         }
  75.                         
  76.                 }
  77.                
  78. //                if(RF4432_RxPacket())
  79. //                {
  80. //                        
  81. //                        RF4432_ReadBurestReg(FIFO_ACCESS,RF4432_RxBuf,RF4432_RxBuf_Len);
  82. //                        RF4432_SetRxMode();
  83. //                        send_str_len(RF4432_RxBuf,32);
  84. //                        deng = ~deng;
  85. //                }
  86.                 RF4432_TxPacket();
  87.                 deng = ~deng; */
  88.          }
  89. }


  90. /* void main()
  91. {
  92.     WORD h;
  93.     P1 = 0xfe;
  94.     Delay(10);
  95.     IapEraseSector(IAP_ADDRESS);
  96.     for (h=0; h<512; h++)
  97.     {
  98.         if (IapReadByte(IAP_ADDRESS+h) != 0xff)
  99.             goto Error;
  100.     }

  101.     P1 = 0xfc;
  102.     Delay(10);
  103.     for (h=0; h<512; h++)
  104.     {
  105. ……………………

  106. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼


所有資料51hei提供下載:
無(wú)人船.rar (525.5 KB, 下載次數(shù): 324)




作者: admin    時(shí)間: 2017-7-4 01:28
好資料,51黑有你更精彩!!!
作者: asdsadsadasd    時(shí)間: 2017-7-5 14:47
厲害了 我的哥
作者: meilidianzhi    時(shí)間: 2017-8-7 19:47
樓主高手啊,贊一個(gè)
作者: gdatgb    時(shí)間: 2017-8-9 17:11
樓主厲害了 都應(yīng)用北斗導(dǎo)航了!!
作者: echoma    時(shí)間: 2018-1-19 09:27
樓主好厲害~正好有船模比賽,受用了~
作者: tieq1952    時(shí)間: 2018-1-20 11:48
北斗導(dǎo)航應(yīng)用,可以玩一玩
作者: 有八塊腹肌的魚(yú)    時(shí)間: 2018-4-5 20:11
想知道樓主怎么解決精確度的問(wèn)題,GPS誤差肯定很大的,怎么處理的呀。如果有視頻就好了。
作者: 有八塊腹肌的魚(yú)    時(shí)間: 2018-5-8 11:25
給力給力  就不知道定位 精度如何
作者: eastwin    時(shí)間: 2018-5-16 16:07
下載看看,多學(xué)習(xí)一下
作者: zhoubujin    時(shí)間: 2018-8-27 10:18
感謝共享  正好需要 謝謝
作者: 學(xué)員    時(shí)間: 2018-10-2 15:21
學(xué)習(xí)一下
作者: ngrakj    時(shí)間: 2019-4-21 19:34
厲害了,謝謝
作者: 遷就    時(shí)間: 2019-5-15 18:58
謝謝分享
作者: 夕陽(yáng)醉了I    時(shí)間: 2019-8-22 21:18
學(xué)習(xí)一下
作者: 3424773030    時(shí)間: 2019-8-29 19:44
好厲害
作者: WQY123654    時(shí)間: 2020-2-2 20:25
感謝分享
作者: yhgwork    時(shí)間: 2020-2-5 13:21
有沒(méi)有做成實(shí)物啊
作者: rm3721    時(shí)間: 2020-3-29 12:14
謝謝分享!先下載學(xué)習(xí)。
作者: cr8526    時(shí)間: 2020-4-10 23:53
搞1個(gè)巡邏機(jī)器人也好啊
作者: whwitp    時(shí)間: 2020-4-13 17:09
感謝樓主共享樓主厲害了 都應(yīng)用北斗導(dǎo)航了!
作者: liang_work    時(shí)間: 2020-6-23 11:15
謝謝分享!先下載學(xué)習(xí)。
作者: rayin    時(shí)間: 2020-11-15 17:14
不錯(cuò),值得學(xué)習(xí)。51hei有你更精彩!!
作者: cccao1    時(shí)間: 2021-5-18 20:02
厲害, 都應(yīng)用北斗導(dǎo)航了!!
作者: 川蜀浪子    時(shí)間: 2021-5-20 11:35
好資料,51黑有你更精彩!!!
作者: 我來(lái)了來(lái)了    時(shí)間: 2021-6-22 01:21
頂貼別沉了,沒(méi)有做的嗎?

作者: sabo1655    時(shí)間: 2022-6-2 00:34
51hei有你更精彩

作者: chenyucy72    時(shí)間: 2022-6-4 10:50
太強(qiáng)大了,雖然現(xiàn)在看不懂,先學(xué)習(xí)先
作者: huaishang    時(shí)間: 2022-9-14 13:40

樓主高手啊,贊一個(gè)
作者: lyhot    時(shí)間: 2022-10-28 12:13

好資料,51黑有你更精彩!!!
作者: sdlyyy    時(shí)間: 2023-3-14 21:42
真正你的強(qiáng)大,能自動(dòng)駕駛的車。
作者: szmj    時(shí)間: 2023-3-18 14:50
都是大神
作者: xxxx13    時(shí)間: 2024-4-10 09:11
還有北斗,好厲害呀




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1