乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      利用吃灰的釣魚(yú)利器做一個(gè)手機(jī)遠(yuǎn)程遙控小車(chē)

       風(fēng)聲之家 2019-09-05

      前言

      在FB看了不少關(guān)于ESP8266釣魚(yú)測(cè)試的文章,這么低成本的玩法,我心動(dòng)了。在一次買(mǎi)了兩個(gè)燒錄數(shù)次Copy過(guò)來(lái)的代碼后就一直吃灰,想必各位也有類(lèi)似的經(jīng)歷。那么本著“廢物”利用的原則,今天來(lái)打造一個(gè)手機(jī)遙控的玩具小車(chē),使用WiFi接入,當(dāng)設(shè)備和手機(jī)在同一個(gè)局域網(wǎng)中,為局域網(wǎng)通信,其余情況,使用MQTT遠(yuǎn)程通信。

      思路:nodemcu接入wifi同時(shí)根據(jù)指令控制舵機(jī),通過(guò)給電機(jī)驅(qū)動(dòng)板不同的高低電平,使舵機(jī)驅(qū)動(dòng)板驅(qū)動(dòng)馬達(dá)。

      假設(shè) A1 A2為輸入口,D1 D2為輸出口(接電機(jī)。) 給驅(qū)動(dòng)板供電以后,假設(shè)利用Nodemcu使A1為高電平,A2為低電平,則電機(jī)正轉(zhuǎn),相反,A2高電平,A1低電平,那么電機(jī)反轉(zhuǎn),A1 A2都為低電平,則電機(jī)不轉(zhuǎn)。

      準(zhǔn)備工作

      需要的設(shè)備

      廢棄玩具遙控車(chē)、淘汰手機(jī)舊電池、吃灰的釣魚(yú)玩具ESP8266、9.9包郵舵機(jī)一個(gè)、小車(chē)?yán)锊鹣聛?lái)的線材、航模馬達(dá)一個(gè)、靈巧的一雙手。

      使用Arduino IDE來(lái)對(duì)Nodemcu(就是esp8266+4M的flask,即你們吃灰的那個(gè))編程。所以需要先簡(jiǎn)單的配置一下arduino。

      安裝軟件|添加esp8266支持

      首先從Arduino 官網(wǎng)下載最新版本的Arduino IDE軟件并安裝。

      安裝完成以后,進(jìn)入首選項(xiàng)(Preferences),找到附加開(kāi)發(fā)板管理器地址(Additional Board Manager URLs),并在其后添加如下信息:

      http://arduino./stable/package_esp8266com_index.json

      之后點(diǎn)擊工具-開(kāi)發(fā)板-開(kāi)發(fā)板管理器,進(jìn)入開(kāi)發(fā)板管理器界面:

      下載并安裝blinker Arduino庫(kù)

      點(diǎn)擊下載https://github.com/blinker-iot/blinker-library/archive/master.zip

      Windows:將下載好的blinker庫(kù)解壓到我的電腦>文檔>Arduino>libraries文件夾中

      Mac OS:將下載好的blinker庫(kù)解壓到文稿>Arduino>libraries文件夾中

      在app中添加設(shè)備,獲取Secret Key

      APK地址:http://blinker./blinker-2.2.4.apk

      進(jìn)入App,點(diǎn)擊右上角的“+”號(hào),然后選擇添加設(shè)備

      點(diǎn)擊選擇Arduino>WiFi接入

      選擇要接入的服務(wù)商

      復(fù)制申請(qǐng)到的Secret Key

      DIY一個(gè)炫酷的界面

      在設(shè)備列表頁(yè),點(diǎn)擊設(shè)備圖標(biāo),進(jìn)入設(shè)備控制面板

      首次進(jìn)入設(shè)備控制面板,會(huì)彈出向?qū)ы?yè)

      在向?qū)ы?yè)點(diǎn)擊載入示例,即可載入示例組件

      拆解并改裝小車(chē):

      以前大概這樣?

      改裝轉(zhuǎn)彎模塊

      拆掉華麗的外表,并用烙鐵在如圖位置開(kāi)個(gè)方形洞:

      把多余的部件清理掉,余下轉(zhuǎn)動(dòng)裝置

      清理干凈,電池盒的蓋子什么的掀飛。不平的地方用烙鐵抹平。

      將舵機(jī)的舵把用螺絲固定,舵把在合適的位置擰上一個(gè)長(zhǎng)螺絲釘,但是不要太長(zhǎng)以免無(wú)法合蓋。舵把的螺絲釘扣住玩具小車(chē)轉(zhuǎn)向裝置中間的洞。舵機(jī)牽拉,便可達(dá)到一個(gè)轉(zhuǎn)彎的效果。

      剛才打孔的地方就是固定舵機(jī)的地方。

      組裝好,再用螺絲壓緊。

      改裝動(dòng)力模塊

      更換電機(jī):把右邊的垃圾小機(jī)機(jī)改為左邊的老式航模電機(jī)。

      由于航模電機(jī)長(zhǎng)了一節(jié),是不可能蓋嚴(yán)了,把蓋住電機(jī)屁股的那一塊用烙鐵抹掉。

      蓋住以后傳動(dòng)絲滑流暢,雖然丑了點(diǎn),但是強(qiáng)行裝上電機(jī)了。

      編寫(xiě)程序

      值得一提的是,你需要用哪個(gè)口直接填寫(xiě)即可。例如 你使用gpio5 接一個(gè)小燈泡。聲明變量時(shí)填寫(xiě) int led = D1; 即可

      #define BLINKER_PRINT Serial#define BLINKER_WIFI

      #include <Blinker.h>#include <Servo.h>Servo myservo;
      //向右轉(zhuǎn)void right(){ int pos = 0; //舵機(jī)端口號(hào) myservo.attach(D1); for(pos = 0; pos <= 180; pos += 3){ myservo.write(pos); delay(10); } myservo.write(180); delay(200); }

      //向左轉(zhuǎn)void left(){ int pos=100; myservo.attach(D1); for(pos = 100; pos >= 0; pos -= 3){ myservo.write(pos); delay(10); } myservo.write(0); delay(200);}//復(fù)位void rest(){ myservo.attach(D1); myservo.write(100); delay(200); }

      char auth[] = "b8b8d0568edb";char ssid[] = "LookCos";char pswd[] = "123456789";

      // 前進(jìn)后退,左轉(zhuǎn)右轉(zhuǎn)BlinkerButton Button1("btn-qj");BlinkerButton Button2("btn-ht");BlinkerButton Button3("btn-zz");BlinkerButton Button4("btn-yz");//方向復(fù)位按鍵BlinkerButton Button5("btn-rest");//停車(chē)BlinkerButton Button6("btn-stop");BlinkerNumber Number1("num-abc");

      int counter = 0;

      // 前進(jìn)void button1_callback(const String & state) { BLINKER_LOG("get button state: ", state); digitalWrite(D3, HIGH); digitalWrite(D2, LOW); }// 后退void button2_callback(const String & state) { BLINKER_LOG("get button state: ", state); digitalWrite(D2, HIGH); digitalWrite(D3, LOW); }// 左轉(zhuǎn)void button3_callback(const String & state) { BLINKER_LOG("get button state: ", state); left();}// 右轉(zhuǎn)void button4_callback(const String & state) { BLINKER_LOG("get button state: ", state); right();}// 方向復(fù)位void button5_callback(const String & state) { BLINKER_LOG("get button state: ", state); rest();}//停車(chē)void button6_callback(const String & state) { BLINKER_LOG("get button state: ", state); rest(); digitalWrite(D2, LOW); digitalWrite(D3, LOW); }

      // 如果未綁定的組件被觸發(fā),則會(huì)執(zhí)行其中內(nèi)容void dataRead(const String & data){ BLINKER_LOG("Blinker readString: ", data); counter++; Number1.print(counter);}

      void setup() { // 初始化串口 Serial.begin(115200); int QQ_GROUP = 8805926; #if defined(BLINKER_PRINT) BLINKER_DEBUG.stream(BLINKER_PRINT); #endif pinMode(D2, OUTPUT); pinMode(D3, OUTPUT); // 初始化blinker Blinker.begin(auth, ssid, pswd); Blinker.attachData(dataRead); //前后左右 Button1.attach(button1_callback); Button2.attach(button2_callback); Button3.attach(button3_callback); Button4.attach(button4_callback); //方向復(fù)位 Button5.attach(button5_callback); //停車(chē) Button6.attach(button6_callback);}

      void loop() { Blinker.run();}

      燒錄程序(直接USB插上即可):

      一般的Nodemcu 如何選擇即可。

      組裝好,調(diào)試:

      第一次用這個(gè)東西畫(huà)圖,畫(huà)的不太好,而且我的電機(jī)驅(qū)動(dòng)模塊沒(méi)有找到。就找了一個(gè)(綠色的那個(gè))代替。

      如圖,我使用外置5V電源來(lái)驅(qū)動(dòng)舵機(jī)與馬達(dá),值得注意的是,舵機(jī)要與Nodemcu共地(地線接一塊)才能控制舵機(jī)。

      下面那個(gè)電池(iPhone 5S原裝電池)專(zhuān)門(mén)用來(lái)驅(qū)動(dòng)Nodemcu 3.3V與5V皆可。

      親測(cè),局域網(wǎng)環(huán)境,延遲很低。

      成了,放到地面跑還是很快的。圓了兒時(shí)夢(mèng)想。

      參考資料

      https://blinker.app/doc

      https://www.

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多