前些時(shí)用劉洋的電腦在網(wǎng)上看了一個(gè)別人用nRF24L01做的無(wú)線聊天的東東,可以雙方發(fā)送字符或是漢字。那是一看似乎就知道了別人是怎么實(shí)現(xiàn)的:?jiǎn)纹瑱C(jī)串口收發(fā)+nRF24L01的無(wú)線數(shù)據(jù)傳輸。當(dāng)時(shí)還是覺(jué)得蠻好玩的。在那之前我就把nRF24L01+(是nRF24L01的升級(jí)版)的的雙向無(wú)線數(shù)據(jù)交換弄通了,就得在就是加個(gè)串口就好了。接下來(lái)了的一段時(shí)間在弄我的無(wú)線小車也就沒(méi)有弄這玩意,不過(guò)還是放在心里了。這個(gè)月初,小車弄好了,功能比較簡(jiǎn)單,無(wú)線控制,只有前進(jìn)、后退,左、右,沒(méi)有加入速度的控制;本來(lái)想加入ADXL345做個(gè)重力感應(yīng)的,后來(lái)覺(jué)得ADXL345我還不能怎么好好的駕馭它,不知道怎么對(duì)讀出來(lái)的數(shù)據(jù)進(jìn)行處理,這個(gè)功能就沒(méi)有加。所以就做成了前段時(shí)間上傳的視頻里的那樣的了。后來(lái)焊接了三個(gè)nRF24L01+的小板子,想做做多機(jī)通信或是玩玩它的跳頻。這個(gè)搞了幾天,可以一個(gè)發(fā)送兩個(gè)接收了,手里也就這么多硬件,只能這樣了。這個(gè)暫時(shí)放下了。又在這個(gè)星期弄那個(gè)視頻看見(jiàn)的東西了:無(wú)線串口通信。花了兩天在STC15L204EA上調(diào)試串口,由于STC15L204EA沒(méi)有獨(dú)立的串口模塊,只能模擬串口了,在網(wǎng)上找到了模擬串口的程序,也看了STC的數(shù)據(jù)手冊(cè)里介紹的模擬串口部分,感覺(jué)模擬串口可以完成數(shù)據(jù)的收發(fā),但是不怎么好用,搞了兩天就沒(méi)有弄模擬串口了,一想自己還有兩個(gè)兩個(gè)以前在漢口解放公園那里買(mǎi)的兩個(gè)STC12LE5A60S2的最小系統(tǒng)板,就用它了。這個(gè)不用焊接電路,只需要用杜邦線連接就可以了,串口的程序自己以前也寫(xiě)得有,nRF24L01+的收發(fā)的程序也早就弄好了。感覺(jué)只需要把兩個(gè)有機(jī)的結(jié)合在一起就可以了。但是,不是這樣的,主要是串口。以前的串口程序可以發(fā)送字符串到串口調(diào)試助手上去,但是接收我需要把接收的字符串存入一個(gè)數(shù)組里去,而且數(shù)組的長(zhǎng)度有限制(我只會(huì)讓nRF24L01+一次發(fā)送32字節(jié)的數(shù)據(jù),它一次最多也只可以發(fā)送32字節(jié)的數(shù)據(jù),超過(guò)32字節(jié)的就不會(huì)操作了,主要是不知道怎么樣將從串口接收到的超過(guò)32字節(jié)的數(shù)據(jù)存入多個(gè)數(shù)組里面再發(fā)送出去的數(shù)據(jù)的長(zhǎng)度就是接收到的長(zhǎng)度),再將從串口接收到了的字符串存入數(shù)組里面花了一點(diǎn)時(shí)間,但是還是發(fā)現(xiàn)有問(wèn)題。一是:當(dāng)數(shù)組長(zhǎng)度小于等于32時(shí),很好操作,但是超過(guò)32時(shí)再發(fā)送出去的就是超過(guò)的部分的數(shù)據(jù),前32個(gè)我把它清零了,后面的沒(méi)有清零。二是:當(dāng)我人為的規(guī)定了一次發(fā)送的數(shù)據(jù)的長(zhǎng)度,但是當(dāng)一次的數(shù)據(jù)長(zhǎng)度小于我人為規(guī)定的長(zhǎng)度再怎么發(fā)送出去呢?還好我想到了定時(shí)器,思路:當(dāng)數(shù)據(jù)大于32時(shí),發(fā)送這個(gè)數(shù)據(jù)的前32個(gè);當(dāng)數(shù)據(jù)小于32時(shí),我們打開(kāi)定時(shí)器,定時(shí)時(shí)間大于接收一串字符串的時(shí)間,再在定時(shí)時(shí)間到了后把數(shù)據(jù)發(fā)送出去。定時(shí)器中斷的操作也是在做老師的項(xiàng)目時(shí)經(jīng)常用到了,我就這么的寫(xiě)了代碼,發(fā)現(xiàn)奇跡出來(lái)了:達(dá)到了想象的效果。但是還有一個(gè)一直成在的問(wèn)題就是當(dāng)數(shù)組長(zhǎng)度大于32時(shí),它怎么就會(huì)把超出的部分發(fā)送出去?后來(lái)就做了一個(gè)使用說(shuō)明的東西,按照說(shuō)明來(lái)操作就OK了,自己做的東西,說(shuō)明規(guī)定當(dāng)然由我定了,呵呵……就這么的串口算是弄到了理想效果。但是問(wèn)題又來(lái)了。我的PL2302的驅(qū)動(dòng)裝不好,以前我的電腦就是用的這個(gè)驅(qū)動(dòng),這就導(dǎo)致我只能做一個(gè)的了,不能兩個(gè)同時(shí)操作。沒(méi)辦法,只好想辦法解決驅(qū)動(dòng)的問(wèn)題,搞了一天沒(méi)有搞好,驅(qū)動(dòng)有問(wèn)題我也無(wú)解了,再就是來(lái)焊接MAX3232串口電路了,焊接了兩次沒(méi)有焊接好,沒(méi)辦法,在寢室弄實(shí)驗(yàn)條價(jià)差沒(méi)有工具檢測(cè),第二次是昨天晚上上完了選修課回來(lái)焊接的,于放棄了。前幾天找彭博華借了一個(gè)CP2102的下載器,我的電腦裝CP2102的驅(qū)動(dòng)裝不好,昨天晚上又找呂靜借來(lái)了電腦,她的電腦我上次使用時(shí)裝好了CP2102的驅(qū)動(dòng)。昨天晚上焊接電路前在她的電腦上試了一下CP2102下載器,好使。今天上午的1、2節(jié)課去上劉輝的工業(yè)計(jì)算機(jī)去了,回來(lái)就來(lái)把串口部分和nRF24L01+的收發(fā)結(jié)合起來(lái)。好在在我借到彭博華的CP2102下載器之前我的大腦里就有一個(gè)思路怎么結(jié)合兩個(gè)部分了。下課回了沒(méi)有花多少時(shí)間就把它們給弄好了,11點(diǎn)鐘吃中飯之前就好了,效果出來(lái)了,可以和別人的視頻里演示的一樣了。就這么樣困擾快一個(gè)星期的問(wèn)題解決了。找黃品章借來(lái)了小米拍視屏,請(qǐng)了小強(qiáng)做攝影師。在此一并感謝提到的各位,謝謝你們!但是不管怎么拍,我的地理方位不怎么好,有點(diǎn)反光,一個(gè)人操作兩臺(tái)電腦也不好操作,視頻拍的比較亂,就截圖吧。就這么樣,我的無(wú)線通信也做完了,也達(dá)到了別人視頻里的效果。傳輸距離在空曠條件下60米沒(méi)有問(wèn)題。自己不會(huì)用VB,看見(jiàn)那語(yǔ)言就不自在,所用用的還是STC官網(wǎng)提供的串口工具。
最后說(shuō)點(diǎn)現(xiàn)在的我吧。最近比較累也感覺(jué)心里比較憋屈。上個(gè)星期五的下午去實(shí)驗(yàn)室,和研二的學(xué)長(zhǎng)聊天聊著就幾句話沒(méi)有跟上我就睡著了,還是坐在椅子上,大腦里潛意識(shí)的還有事要做,所以一會(huì)后還是醒了。前天星期四的下午三點(diǎn)多去實(shí)驗(yàn)室沒(méi)事做,由于中午在寢室一直nRF24L01+的程序到STM32上去,所以沒(méi)有睡覺(jué),就又在椅子上睡覺(jué)了這次沒(méi)上次睡得深,四點(diǎn)多老師來(lái)了,說(shuō)了他的項(xiàng)目的要求,接著從下午四點(diǎn)多開(kāi)始按照老師的要求弄項(xiàng)目,和研二的學(xué)長(zhǎng)一起弄,弄到晚上10過(guò)一點(diǎn)就弄得目測(cè)達(dá)到了老師要求的效果,沒(méi)有用示波器去檢測(cè)波形也沒(méi)有太多的實(shí)驗(yàn)裝置去實(shí)驗(yàn)8路信號(hào),只有在現(xiàn)有的條件下做2路的實(shí)驗(yàn),其中還有1路是模擬的。對(duì)于這個(gè)項(xiàng)目,老師的要求總在變,就拿那個(gè)步進(jìn)電機(jī)的部分來(lái)說(shuō),同一個(gè)東西,要求變了好幾次,弄好了他說(shuō)不行又再換,最后的結(jié)果是按幾種方法弄去弄來(lái)還是用的最初的那種方法。夏文幫別人做的畢業(yè)設(shè)計(jì),他有不清楚的地方他來(lái)問(wèn)我,又要幫他弄那,他的那個(gè)紅外發(fā)射的程序這幾天也沒(méi)有看。前幾天王可幫別人做的一個(gè)在Proteus上弄一個(gè)流水燈+數(shù)碼管的仿真,他來(lái)求助我,跟他說(shuō)了一下,感覺(jué)他不怎么會(huì),在晚上洗完澡后又來(lái)幫他做,先做了一次電路沒(méi)有保存又再畫(huà),寫(xiě)完程序仿真好了,也不知道他到底要達(dá)到一個(gè)什么效果,就按照我做的發(fā)個(gè)他了,做完了都到了凌晨30幾分。結(jié)果的結(jié)果是昨天下午又來(lái)找我叫我?guī)退bProteus,前幾天就把軟件給他了。那時(shí)我在玩游戲。………………貼上一條前幾天看見(jiàn)的微博:“【程序員的脾氣】一日,一技術(shù)支持給程序員打電話,扯了半天,程序員有點(diǎn)不耐煩了。高潮在最后,技術(shù)支持問(wèn),“那這個(gè)ftp怎么用?”程序員徹底怒了,“我一個(gè)30多歲的人哪有時(shí)間告訴你ftp怎么用!”咣當(dāng),把電話給掛了。真人真事,整層樓都聽(tīng)見(jiàn)了,樓主憋到內(nèi)傷。(via @ICodeYou )”。最近真的比較忙,實(shí)驗(yàn)室去得少,前幾天去老師都在說(shuō)我,又是考試復(fù)習(xí)又是上課,在寢室還有做點(diǎn)我自己的小玩意。心里怎么憋屈就不說(shuō)了,當(dāng)然和他們沒(méi)關(guān)系,不要誤解。
程序
演示