<em id="ri2my"></em>
  • <em id="ri2my"></em>
    <em id="ri2my"><label id="ri2my"><nav id="ri2my"></nav></label></em>
  • <em id="ri2my"><label id="ri2my"></label></em>
    <div id="ri2my"></div>
    1. <em id="ri2my"><label id="ri2my"></label></em>
    2. <em id="ri2my"><ol id="ri2my"></ol></em>
      <em id="ri2my"></em>

      1. 基于openwrt路由器串口通訊實現網頁控制Arduino智能小車

        作者:貝殼物聯 | 更新時間:2016-03-02 | 瀏覽量:9231

        一、硬件說明

        1、刷了openwrt的路由器,需引出TX、RX、GND針腳。

        1447308523268212.png

        openwrt路由器

        圖為裸板GL-inet路由器,淘寶地址:

        2、Arduino智能小車

        1446782245752171.png

        淘寶地址:https://item.taobao.com/item.htm?id=523953094755

        3、電腦

        二、接線

        路由器  Arduino

        TX     RX

        RX     TX

        GND    GND

        三、路由器代碼

        1、控制界面,car.htm放在/www文件夾下。

        路由器控制頁面

        car.htm代碼如下:

        <html>
        <head>
        </head>
        <body>
        <div style="float:left">
        <script>
        function sendSer(value){
        document.getElementById("ser").src="http://192.168.1.101/cgi-bin/web2ser?"+value;
        }
        </script>
        <table>
        <tr><td/><img id="ser" width="1" height="1">
        <td><input type="button" onmousedown="sendSer('G')" onmouseup="sendSer('S')" value="前進" /></td><td/></tr>
        <tr><td><input type="button" onmousedown="sendSer('L')" onmouseup="sendSer('S')" value="左轉" /></td><td/>
        <td><input type="button" onmousedown="sendSer('R')" onmouseup="sendSer('S')" value="右轉" /></td></tr>
        <tr><td/><td><input type="button" onmousedown="sendSer('B')" onmouseup="sendSer('S')" value="后退" /></td><td/></tr>
        <tr><td colspan="3" align="middle"> <input type="button" onclick="sendSer('A')" value="自動控制" /></td></tr>
        <tr><td colspan="3" align="middle"> <input type="button" onclick="sendSer('M')" value="手動控制" /></td></tr>
        </table>
        </div>
        </body>
        </html>

        2、lua代碼,通過控制界面調用lua腳本web2ser放在/www/cgi-bin/下。

        web2ser腳本如下:

        #!/usr/bin/lua
        io.output("/dev/ttyATH0")
        io.write(os.getenv("QUERY_STRING"))

        代碼中ttyATHO為路由器串口,不同路由器其名稱有所不同,可以通過ls /dev 命令查看。

        四、小車Arduino代碼

        /*
         Arduino小車WIFI遙控程序
         功能:小車接收到WIFI模塊串口發送過來命令,執行不同動作,字符“G”前進,字符“B”后退,字符“L”左轉,字符“R”右轉,字符“S”停止。
         By 愛之家淘寶店 2015.11.5
         小車DIY配件購買地址:https://item.taobao.com/item.htm?id=523953094755
         */
        const int L298nIn1 = 2;//L298N模塊信號輸入
        const int L298nIn2 = 3;
        const int L298nIn3 = 4;
        const int L298nIn4 = 5;
        const String GO = "G";//串口發送信息代碼定義
        const String BACK = "B";
        const String RIGHT = "R";
        const String LEFT = "L";
        const String STOP = "S";
        void setup()
        {
          pinMode(L298nIn1, OUTPUT);
          pinMode(L298nIn2, OUTPUT);
          pinMode(L298nIn3, OUTPUT);
          pinMode(L298nIn4, OUTPUT);
          Serial.begin(115200);
        }
        void goForward() {//小車前進
          digitalWrite(L298nIn1, HIGH);
          digitalWrite(L298nIn2, LOW);
          digitalWrite(L298nIn3, LOW);
          digitalWrite(L298nIn4, HIGH);
        }
        void goBack() {//小車后退
          digitalWrite(L298nIn1, LOW);
          digitalWrite(L298nIn2, HIGH);
          digitalWrite(L298nIn3, HIGH);
          digitalWrite(L298nIn4, LOW);
        }
        void goStop() {//小車停止
          digitalWrite(L298nIn1, LOW);
          digitalWrite(L298nIn2, LOW);
          digitalWrite(L298nIn3, LOW);
          digitalWrite(L298nIn4, LOW);
        }
        void turnRight() {//小車右轉
          digitalWrite(L298nIn1, LOW);
          digitalWrite(L298nIn2, HIGH);
          digitalWrite(L298nIn3, LOW);
          digitalWrite(L298nIn4, HIGH);
        }
        void turnLeft() {//小車左轉
          digitalWrite(L298nIn1, HIGH);
          digitalWrite(L298nIn2, LOW);
          digitalWrite(L298nIn3, HIGH);
          digitalWrite(L298nIn4, LOW);
        }
        String readTtl() {
          String comdata = "";
          while (Serial.available())
          {
            comdata += char(Serial.read());
            delay(2);
          }
          return comdata;
        }
        void loop()//主循環函數
        {
          String s = readTtl();
          if (s == GO ) goForward();//發送“G”,小車前進,直到接收到“S”停止
          if (s == LEFT ) turnLeft();
          if (s == STOP ) goStop();
          if (s == RIGHT ) turnRight();
          if (s == BACK ) goBack();
        }



        評論:共4條

        ridxqqqq 評論于:2016-04-14 12:09:24
        裸板GL-inet路由器多少錢?
        貝殼物聯 回復于:2016-04-14 16:14:51
        回復 @ridxqqqq:70¥左右吧
        ridxqqqq 回復于:2016-04-18 10:06:11
        回復 @貝殼物聯:有淘寶地址店嗎 發過來看下
        ridxqqqq 評論于:2017-01-17 08:00:17
        內容里面有地址 開始 美仔細看
        返回頂部

        <em id="ri2my"></em>
      2. <em id="ri2my"></em>
        <em id="ri2my"><label id="ri2my"><nav id="ri2my"></nav></label></em>
      3. <em id="ri2my"><label id="ri2my"></label></em>
        <div id="ri2my"></div>
        1. <em id="ri2my"><label id="ri2my"></label></em>
        2. <em id="ri2my"><ol id="ri2my"></ol></em>
          <em id="ri2my"></em>

          1. 免费高清视频