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

QQ登錄

只需一步,快速開始

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

Micropython控制加速度傳感器無線小車

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
    現(xiàn)在無線控制已經(jīng)成為了電子科學(xué)領(lǐng)域的主流,這次就來教大家做一個(gè)主流中的主流--無線控制的小車,先給大家看一下最終的成品演示視頻:




    首先介紹一下需要用到的材料:

    TPYBoardv10x開發(fā)板兩塊
    小車底盤一個(gè)
    LORA無線模塊兩塊
    充電寶一個(gè)
    9014三極管兩個(gè)(為什么用到它呢,后面再說)。

    在這個(gè)開發(fā)板上有一個(gè)及速度傳感器,我是看到開發(fā)板上有個(gè)加速度傳感器才想起來這樣做的,這里的呢我們先介紹一下加速度傳感器。(注:本人用的是下面的開發(fā)板,大家可根據(jù)個(gè)人喜好自行選擇,這里僅以此板子為例




    加速度傳感器,包括由硅膜片、上蓋、下蓋,膜片處于上蓋、下蓋之間,鍵合在一起;一維或二維納米材料 、金電極和引線分布在膜片上,并采用壓焊工藝引出導(dǎo)線;工業(yè)現(xiàn)場(chǎng)測(cè)振傳感器,主要是壓電式加速度傳感器。其工作原理主要利于壓電敏感元件的壓電效應(yīng)得到與振動(dòng)或者壓力成正比的電荷量或者電壓量。目前工業(yè)現(xiàn)場(chǎng)典型采用IEPE型加速度傳感器,及內(nèi)置IC電路壓電加速度傳感器,傳感器輸出與振動(dòng)量正正比的電壓信號(hào),例如:100mV/g (每個(gè)加速度單位輸出100mV電壓值。1g=9.81m/s-2)。

    關(guān)于上面的介紹你是不是沒看懂?沒看懂也沒關(guān)系,那是我參照官方的介紹寫的,其實(shí)我也看不懂。其實(shí)通俗的說吧,加速度傳感器就是通過測(cè)量由于重力引起的加速度,你可以計(jì)算出設(shè)備相對(duì)于水平面的傾斜角度。通過分析動(dòng)態(tài)加速度,你可以分析出設(shè)備移動(dòng)的方式。是不是還是不太懂怎么獲取這個(gè)傾斜的值?那也沒關(guān)系,我們的Python語言里有獲得這個(gè)傾斜值的函數(shù),直接使用就可以啦。但是這里值得注意的是,這個(gè)函數(shù)返回的傾斜度是一個(gè)值,每一個(gè)傳感器因?yàn)樽龉r(shí)的差異,返回值不同,這個(gè)需要大家自己做實(shí)驗(yàn)看一下。

    得到傾斜值后,下面的工作的就簡(jiǎn)單了,那就是判斷板子在怎么傾斜,然后把傾斜的信號(hào)傳出去,這樣就OK啦,妥妥噠。

    介紹完了這控制端的,那咱們得說說怎么把控制的信號(hào)傳出吧。這里呢主要是使用了lora模塊,這個(gè)模塊現(xiàn)在還是挺流行的。我親自去做過一個(gè)傳輸距離的實(shí)驗(yàn),具體的距離我沒測(cè),但是我感覺最起碼也得有個(gè)二三里地吧,這距離對(duì)于做個(gè)小車妥妥噠夠用啦。

    說一下lora模塊的使用吧,lora模塊的使用呢,也很簡(jiǎn)單,串口通信,無線透?jìng)。就是說你使用單片機(jī)通過串口給模塊什么,模塊就給你傳輸什么(定點(diǎn)的話需要帶上地址信道),這個(gè)lora模塊說明說的很詳細(xì)。但是是不是覺得還要用串口,感覺好麻煩?我也覺得麻煩,但是Python語言和這個(gè)開發(fā)板的功能都很強(qiáng)大,有一個(gè)寫好的使用串口的方法,直接調(diào)用就可以(瞬間感覺開發(fā)好簡(jiǎn)單啦)。

    上面介紹了控制端的工作和原理,下面說一下被控制端(就是按在小車上的)。

    被控制端就是要使用開發(fā)板控制小車地盤的電機(jī)轉(zhuǎn)動(dòng),這里被我被坑了一次,我在某寶上買這架車的時(shí)候,問了客服需不需要其他的東西,客服說不用。我感覺現(xiàn)在連電機(jī)的驅(qū)動(dòng)都不用啦,感覺好高端,但是買回來發(fā)現(xiàn)還是需要一個(gè)L298N驅(qū)動(dòng)。瞬間感覺被騙了,但是,悲憤的同時(shí),我的兩個(gè)9014上場(chǎng)了,簡(jiǎn)單的做了一個(gè)三極管開關(guān)電路,妥妥噠(雖然速度略慢)。

    信號(hào)接收部分,這個(gè)和控制端差不多的,都是使用了lora模塊,然后把收到的數(shù)據(jù)做判斷。判斷后再按照自己的邏輯驅(qū)動(dòng)電機(jī),小車就開起來了(小車怎么拐彎的我就不介紹了,網(wǎng)上教程大把多)。

    上面說了這么多,其實(shí)也很抽象啦,下面來個(gè)聚象的,上圖。

    先上一個(gè)自己畫的簡(jiǎn)單的原理圖。

    控制器

   
    被控制端

    這兩張圖是我畫來幫助大家理解的(我這樣做的被控制端的電路,速度略慢。大家可以在驅(qū)動(dòng)那里做個(gè)放大電路,速度可以上去的,但是不能后退,大家可以直接使用L298N驅(qū)動(dòng)。),我做的時(shí)候是使用杜邦線的,并沒有電路圖,再上一張成品圖給大家看。

  
    成品圖

    這些都是給大家參考的,大家做的時(shí)候多學(xué)習(xí)多看看,親身體驗(yàn)了才能真的學(xué)到東西。

    下面的程序給大家,大家可以參考一下。

    控制端源代碼:

  1. import pyb
  2.     xlights = (pyb.LED(2), pyb.LED(3))
  3.     ylights = (pyb.LED(1), pyb.LED(4))
  4.     from pyb import UART
  5.     from pyb import Pin
  6.     #from ubinascii import hexlify
  7.     from ubinascii import *
  8.     accel = pyb.Accel()
  9.     u2 = UART(2, 9600)
  10.     i=0
  11.     K=1
復(fù)制代碼


    *******************************主程序**********************************

   被控制端源代碼:
   
  1. import pyb
  2.     from pyb import UART
  3.     from pyb import Pin
  4.     from ubinascii import hexlify
  5.     from ubinascii import *
  6.     M1 = Pin('X1', Pin.OUT_PP)
  7.     M3 = Pin('Y1', Pin.OUT_PP)
  8.     u2 = UART(2, 9600)
  9.     i=0
  10.     K=1
復(fù)制代碼


    *******************************主程序**********************************
  1.   print('while')
  2.     while (K>0):
  3.     M1.high()
  4.     pyb.delay(3)
  5.     M3.high()
  6.     if(u2.any()>0):
  7.     print('1234')
  8.     M1.low()
  9.     M3.low()
  10.     pyb.delay(3)
  11.     _dataRead=u2.readall()
  12.     print('123',_dataRead)
  13.     if(_dataRead.find(b'QIAN')>-1):
  14.     M1.low()
  15.     M3.low()
  16.     print('QIAN')
  17.     pyb.delay(250)
  18.     elif(_dataRead.find(b'ZUO')>-1):
  19.     M1.low()
  20.     M3.high()
  21.     print('ZUO')
  22.     pyb.delay(250)
  23.     elif(_dataRead.find(b'YOU')>-1):
  24.     M1.high()
  25.     M3.low()
  26.     print('ZUO')
  27.     pyb.delay(250)
復(fù)制代碼



評(píng)分

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

查看全部評(píng)分

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

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2016-8-20 02:31 | 只看該作者
好東東,51黑論壇有你更精彩。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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