找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 48366|回復: 70
打印 上一主題 下一主題
收起左側(cè)

手機藍牙控制智能小車:STM32+藍牙模塊+藍牙APP源碼與資料

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:380690 發(fā)表于 2018-11-7 10:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
智能小車是買的,芯片是STM32F103ZET6
代碼也有被我改過,畫圈是可以調(diào)車速的,

藍牙模塊是買的,主要做透傳,

藍牙APP是自己寫的,看程序只要接收到I,A,B,C,D就能行走,還是比較簡單,

在網(wǎng)上找了一個連接藍牙的方法,然后寫四個按鍵,點擊按鍵就發(fā)送相應的字母就OK了,最開始是實現(xiàn)的,只不過需要不斷點擊,連續(xù)發(fā)送才能一直行走,就想要按下讓小車一直行走,想著讓手機藍牙在按下按鍵時候一直連續(xù)發(fā)送指令,貌似沒辦法實現(xiàn),因為一直按下就像死循環(huán),Android會檢測到不允許死循環(huán),后來改小車的代碼,接收到前進指令單片機就死循環(huán),一直前進,直到接收到停止指令,在手指抬起后發(fā)送一個停止指令就實現(xiàn)按下一直行走,還是需要轉(zhuǎn)換一下思想!。

智能小車的原理圖和代碼都貼出來了,藍牙模塊直接插上就可以用,手機APP源碼和工程也貼出來了。

單片機源程序如下:
  1. #include "motor.h"
  2. #include "interface.h"
  3. #include "stm32f10x.h"

  4. //GPIO配置函數(shù)
  5. void MotorGPIO_Configuration(void)
  6. {               
  7.         GPIO_InitTypeDef GPIO_InitStructure;
  8.         GPIO_InitStructure.GPIO_Pin = FRONT_LEFT_F_PIN;
  9.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
  10.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         
  11.         GPIO_Init(FRONT_LEFT_F_GPIO, &GPIO_InitStructure);   
  12.         
  13.         GPIO_InitStructure.GPIO_Pin = FRONT_LEFT_B_PIN;        
  14.         GPIO_Init(FRONT_LEFT_B_GPIO, &GPIO_InitStructure);
  15.         
  16.         GPIO_InitStructure.GPIO_Pin = FRONT_RIGHT_F_PIN;        
  17.         GPIO_Init(FRONT_RIGHT_F_GPIO, &GPIO_InitStructure);
  18.         
  19.         GPIO_InitStructure.GPIO_Pin = FRONT_RIGHT_B_PIN;        
  20.         GPIO_Init(FRONT_RIGHT_B_GPIO, &GPIO_InitStructure);
  21.         
  22.         GPIO_InitStructure.GPIO_Pin = BEHIND_LEFT_F_PIN;        
  23.         GPIO_Init(BEHIND_LEFT_F_GPIO, &GPIO_InitStructure);  
  24.         
  25.         GPIO_InitStructure.GPIO_Pin = BEHIND_LEFT_B_PIN;        
  26.         GPIO_Init(BEHIND_LEFT_B_GPIO, &GPIO_InitStructure);  
  27.         
  28.         GPIO_InitStructure.GPIO_Pin = BEHIND_RIGHT_F_PIN;        
  29.         GPIO_Init(BEHIND_RIGHT_F_GPIO, &GPIO_InitStructure);  
  30.         
  31.         GPIO_InitStructure.GPIO_Pin = BEHIND_RIGHT_B_PIN;        
  32.         GPIO_Init(BEHIND_RIGHT_B_GPIO, &GPIO_InitStructure);  
  33.         
  34. }

  35. //根據(jù)占空比驅(qū)動電機轉(zhuǎn)動
  36. void CarMove(void)
  37. {   
  38.         
  39.          BEHIND_RIGHT_EN;
  40.         
  41. /* //左前輪
  42.         if(front_left_speed_duty > 0)//向前
  43.         {
  44.                 if(speed_count < front_left_speed_duty)
  45.                 {
  46.                         FRONT_LEFT_GO;
  47.                 }else
  48.                 {
  49.                         FRONT_LEFT_STOP;
  50.                 }
  51.         }
  52.         else if(front_left_speed_duty < 0)//向后
  53.         {
  54.                 if(speed_count < (-1)*front_left_speed_duty)
  55.                 {
  56.                         FRONT_LEFT_BACK;
  57.                 }else
  58.                 {
  59.                         FRONT_LEFT_STOP;
  60.                 }
  61.         }
  62.         else                //停止
  63.         {
  64.                 FRONT_LEFT_STOP;
  65.         }*/
  66.         
  67.                 //右前輪
  68.         if(front_right_speed_duty > 0)//向前
  69.         {
  70.                 if(speed_count < front_right_speed_duty)
  71.                 {
  72.                         FRONT_RIGHT_GO;
  73.                 }else                //停止
  74.                 {
  75.                         FRONT_RIGHT_STOP;
  76.                 }
  77.         }
  78.         else if(front_right_speed_duty < 0)//向后
  79.         {
  80.                 if(speed_count < (-1)*front_right_speed_duty)
  81.                 {
  82.                         FRONT_RIGHT_BACK;
  83.                 }else                //停止
  84.                 {
  85.                         FRONT_RIGHT_STOP;
  86.                 }
  87.         }
  88.         else                //停止
  89.         {
  90.                 FRONT_RIGHT_STOP;
  91.         }
  92.         
  93.         //左后輪
  94.         if(behind_left_speed_duty > 0)//向前
  95.         {
  96.                 if(speed_count < behind_left_speed_duty)
  97.                 {
  98.                         BEHIND_LEFT_GO;
  99.                 }        else                //停止
  100.                 {
  101.                         BEHIND_LEFT_STOP;
  102.                 }
  103.         }
  104.         else if(behind_left_speed_duty < 0)//向后
  105.         {
  106.                 if(speed_count < (-1)*behind_left_speed_duty)
  107.                 {
  108.                         BEHIND_LEFT_BACK;
  109.                 }        else                //停止
  110.                 {
  111.                         BEHIND_LEFT_STOP;
  112.                 }
  113.         }
  114.         else                //停止
  115.         {
  116.                 BEHIND_LEFT_STOP;
  117.         }
  118.         
  119. /*                //右后輪
  120.         if(behind_right_speed_duty > 0)//向前
  121.         {
  122.                 if(speed_count < behind_right_speed_duty)
  123.                 {
  124.                         BEHIND_RIGHT_GO;
  125.                 }        else                //停止
  126.                 {
  127.                         BEHIND_RIGHT_STOP;
  128.                 }
  129.         }
  130.         else if(behind_right_speed_duty < 0)//向后
  131.         {
  132.                 if(speed_count < (-1)*behind_right_speed_duty)
  133.                 {
  134.                         BEHIND_RIGHT_BACK;
  135.                 }        else                //停止
  136.                 {
  137.                         BEHIND_RIGHT_STOP;
  138.                 }
  139.         }
  140.         else                //停止
  141.         {
  142.                 BEHIND_RIGHT_STOP;
  143.         }*/
  144. }

  145. //向前
  146. void CarGo(void)
  147. {
  148.         front_left_speed_duty=SPEED_DUTY;
  149.         front_right_speed_duty=SPEED_DUTY;
  150.         behind_left_speed_duty=SPEED_DUTY;
  151.         behind_right_speed_duty=SPEED_DUTY;
  152. }

  153. //后退
  154. void CarBack(void)
  155. {
  156.         front_left_speed_duty=-SPEED_DUTY;
  157.         front_right_speed_duty=-SPEED_DUTY;
  158.         behind_left_speed_duty=-SPEED_DUTY;
  159.         behind_right_speed_duty=-SPEED_DUTY;
  160. }

  161. //向左
  162. void CarLeft(void)
  163. {
  164.         front_left_speed_duty=SPEED_DUTY;
  165.         front_right_speed_duty=-SPEED_DUTY;
  166.         behind_left_speed_duty=SPEED_DUTY;//+10;//增加后輪驅(qū)動力
  167.         behind_right_speed_duty=-SPEED_DUTY;
  168. }

  169. //向右
  170. void CarRight(void)
  171. {
  172.         front_left_speed_duty=-SPEED_DUTY;
  173.         front_right_speed_duty=SPEED_DUTY;
  174.         behind_left_speed_duty=-SPEED_DUTY;
  175.         behind_right_speed_duty=SPEED_DUTY;//+10;//增加后輪驅(qū)動力
  176. }

  177. //停止
  178. void CarStop(void)
  179. {
  180.         front_left_speed_duty=0;
  181.         front_right_speed_duty=0;
  182.         behind_left_speed_duty=0;
  183.         behind_right_speed_duty=0;
  184. }

  185. void MotorInit(void)
  186. {
  187.         MotorGPIO_Configuration();
  188.         CarStop();
  189. }
復制代碼


所有資料51hei提供下載:
智能小車資料.7z (4.94 MB, 下載次數(shù): 771)
APP工程.7z (3.61 MB, 下載次數(shù): 811)
藍牙模塊資料.zip (4.26 MB, 下載次數(shù): 647)


評分

參與人數(shù) 2黑幣 +130 收起 理由
indeed嘻嘻哈哈 + 30 很給力!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

來自 2#
ID:380690 發(fā)表于 2018-12-17 12:36 | 只看該作者
本帖最后由 wyhnb 于 2018-12-17 13:06 編輯

藍牙APP

藍牙APP.rar

2.95 MB, 下載次數(shù): 363, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:336990 發(fā)表于 2018-11-25 11:45 | 只看該作者
手機APP怎么安裝啊 樓主
回復

使用道具 舉報

地板
ID:434968 發(fā)表于 2018-11-28 14:45 | 只看該作者
怎么裝啊
回復

使用道具 舉報

5#
ID:380690 發(fā)表于 2018-11-30 13:16 | 只看該作者
不懂裝懂 發(fā)表于 2018-11-25 11:45
手機APP怎么安裝啊 樓主

手機APP直接下載到手機就可以安裝。。!有問題?
回復

使用道具 舉報

6#
ID:380690 發(fā)表于 2018-11-30 13:16 | 只看該作者

裝APP?
回復

使用道具 舉報

7#
ID:437503 發(fā)表于 2018-12-2 09:32 | 只看該作者
可不可以發(fā)郵箱呀
回復

使用道具 舉報

8#
ID:89134 發(fā)表于 2018-12-3 08:33 | 只看該作者
STM32+藍牙模塊+藍牙APP源碼與資料
回復

使用道具 舉報

9#
ID:380690 發(fā)表于 2018-12-3 09:57 | 只看該作者
ll19961225 發(fā)表于 2018-12-2 09:32
可不可以發(fā)郵箱呀

可以加我QQ
回復

使用道具 舉報

10#
ID:380690 發(fā)表于 2018-12-3 09:58 | 只看該作者
cmxgx 發(fā)表于 2018-12-3 08:33
STM32+藍牙模塊+藍牙APP源碼與資料

資料都在這里了啊
回復

使用道具 舉報

11#
ID:440361 發(fā)表于 2018-12-5 19:54 | 只看該作者
樓主你好,可以QQ發(fā)一下給我嗎
回復

使用道具 舉報

12#
ID:303722 發(fā)表于 2018-12-6 15:31 | 只看該作者
謝謝樓主,,,,,,,,,,,,
回復

使用道具 舉報

13#
ID:441706 發(fā)表于 2018-12-7 16:28 | 只看該作者
謝謝分享
回復

使用道具 舉報

14#
ID:166208 發(fā)表于 2018-12-9 11:54 | 只看該作者
不懂裝懂 發(fā)表于 2018-11-25 11:45
手機APP怎么安裝啊 樓主

看看我的帖子  他這個是源程序 使用 andorid studio寫的   需要打包成apk文件
回復

使用道具 舉報

15#
ID:380690 發(fā)表于 2018-12-11 10:04 | 只看該作者
里面有生成的APK,仔細看!
回復

使用道具 舉報

16#
ID:437105 發(fā)表于 2018-12-11 20:52 | 只看該作者
wyhnb 發(fā)表于 2018-12-11 10:04
里面有生成的APK,仔細看!

拓展名是什么?
回復

使用道具 舉報

17#
ID:380690 發(fā)表于 2018-12-12 09:28 | 只看該作者

手機軟件的后綴就是.apk
回復

使用道具 舉報

18#
ID:89134 發(fā)表于 2018-12-17 23:16 | 只看該作者
看看是用的什么藍牙模塊 學習了
回復

使用道具 舉報

19#
ID:58625 發(fā)表于 2019-1-9 11:05 | 只看該作者
學習學習
回復

使用道具 舉報

20#
ID:477028 發(fā)表于 2019-2-16 08:27 | 只看該作者
感覺很好玩的樣子
回復

使用道具 舉報

21#
ID:146874 發(fā)表于 2019-3-4 09:27 | 只看該作者
感謝分享
回復

使用道具 舉報

22#
ID:491774 發(fā)表于 2019-3-15 23:39 | 只看該作者
謝謝分享
回復

使用道具 舉報

23#
ID:493630 發(fā)表于 2019-3-18 23:00 | 只看該作者
研究研究
回復

使用道具 舉報

24#
ID:501638 發(fā)表于 2019-3-31 11:57 | 只看該作者
值得學習
回復

使用道具 舉報

25#
ID:269090 發(fā)表于 2019-4-16 09:56 | 只看該作者
有用到小馬達嗎?
回復

使用道具 舉報

26#
ID:380690 發(fā)表于 2019-4-16 11:28 | 只看該作者
ghq 發(fā)表于 2019-4-16 09:56
有用到小馬達嗎?

智能小車是買的,輪子就是馬達啊
回復

使用道具 舉報

27#
ID:508379 發(fā)表于 2019-4-28 09:56 | 只看該作者
學習學習
回復

使用道具 舉報

28#
ID:449395 發(fā)表于 2019-5-3 19:30 | 只看該作者
, 我手機裝不了
回復

使用道具 舉報

29#
ID:449395 發(fā)表于 2019-5-3 19:32 | 只看該作者
不懂裝懂 發(fā)表于 2018-11-25 11:45
手機APP怎么安裝啊 樓主

把apk文件發(fā)到手機里,安裝
回復

使用道具 舉報

30#
ID:528890 發(fā)表于 2019-5-7 11:04 | 只看該作者
真強大,大神厲害
回復

使用道具 舉報

31#
ID:229106 發(fā)表于 2019-5-7 19:02 | 只看該作者
我現(xiàn)在也需要編寫一個藍牙,實現(xiàn)手機與51單片機的通信。但是我不知道怎么將軟硬件結(jié)合起來,只會用別人的藍牙軟件實現(xiàn)通信,請問在編寫藍牙怎么通過藍牙模塊hc05和51單片機進行通信啊,拜托,學長一定要看見啊
回復

使用道具 舉報

32#
ID:380690 發(fā)表于 2019-5-9 13:04 | 只看該作者
一笑泯恩仇啊 發(fā)表于 2019-5-7 19:02
我現(xiàn)在也需要編寫一個藍牙,實現(xiàn)手機與51單片機的通信。但是我不知道怎么將軟硬件結(jié)合起來,只會用別人的藍 ...

藍牙就只是透傳功能,藍牙模塊直接像串口通信一樣連接單片機,然后手機端網(wǎng)上都有例程,照抄一個就行,然后把想要發(fā)送到數(shù)據(jù)修改一下
回復

使用道具 舉報

33#
ID:243076 發(fā)表于 2019-5-10 12:03 | 只看該作者
樓主請教哈 你的藍牙APP是用什么軟件編寫編譯的
回復

使用道具 舉報

34#
ID:243076 發(fā)表于 2019-5-10 12:05 | 只看該作者
藍牙APP是用什么軟件編寫的
回復

使用道具 舉報

35#
ID:380690 發(fā)表于 2019-5-15 14:09 | 只看該作者
tw081531 發(fā)表于 2019-5-10 12:03
樓主請教哈 你的藍牙APP是用什么軟件編寫編譯的

Android stdio
回復

使用道具 舉報

36#
ID:542229 發(fā)表于 2019-5-19 18:19 | 只看該作者
感謝分享
回復

使用道具 舉報

37#
ID:546866 發(fā)表于 2019-5-25 12:16 | 只看該作者
好東西
回復

使用道具 舉報

38#
ID:461278 發(fā)表于 2019-7-22 11:05 | 只看該作者
程序在哪找呢
回復

使用道具 舉報

39#
ID:425175 發(fā)表于 2019-8-4 13:49 來自手機 | 只看該作者
wyhnb 發(fā)表于 2018-12-17 12:36
藍牙APP

謝謝大佬分享
回復

使用道具 舉報

40#
ID:484435 發(fā)表于 2019-8-5 11:41 | 只看該作者
謝謝分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表