国内综合精彩aⅤ无码不卡_日本少妇做爰全过程_欧美性爱在线播放免费_午夜?V日韩一区二区_免费a级毛片无码免费播放_成在人线av无码喷水_亚洲精品网站色视频_国产婷婷精品成人_老师撩起裙子让我桶的视频_秋霞影院国产

基于openwrt路由器串口通訊實(shí)現(xiàn)網(wǎng)頁(yè)控制Arduino智能小車

作者:貝殼物聯(lián) | 更新時(shí)間:2016-03-02 | 瀏覽量:10863

一、硬件說(shuō)明

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文件夾下。

路由器控制頁(yè)面

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="前進(jìn)" /></td><td/></tr>
<tr><td><input type="button" onmousedown="sendSer('L')" onmouseup="sendSer('S')" value="左轉(zhuǎn)" /></td><td/>
<td><input type="button" onmousedown="sendSer('R')" onmouseup="sendSer('S')" value="右轉(zhuǎn)" /></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="自動(dòng)控制" /></td></tr>
<tr><td colspan="3" align="middle"> <input type="button" onclick="sendSer('M')" value="手動(dòng)控制" /></td></tr>
</table>
</div>
</body>
</html>

2、lua代碼,通過(guò)控制界面調(diào)用lua腳本web2ser放在/www/cgi-bin/下。

web2ser腳本如下:

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

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

四、小車Arduino代碼

/*
 Arduino小車WIFI遙控程序
 功能:小車接收到WIFI模塊串口發(fā)送過(guò)來(lái)命令,執(zhí)行不同動(dòng)作,字符“G”前進(jìn),字符“B”后退,字符“L”左轉(zhuǎn),字符“R”右轉(zhuǎn),字符“S”停止。
 By 愛(ài)之家淘寶店 2015.11.5
 小車DIY配件購(gòu)買地址:https://item.taobao.com/item.htm?id=523953094755
 */
const int L298nIn1 = 2;//L298N模塊信號(hào)輸入
const int L298nIn2 = 3;
const int L298nIn3 = 4;
const int L298nIn4 = 5;
const String GO = "G";//串口發(fā)送信息代碼定義
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() {//小車前進(jìn)
  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() {//小車右轉(zhuǎn)
  digitalWrite(L298nIn1, LOW);
  digitalWrite(L298nIn2, HIGH);
  digitalWrite(L298nIn3, LOW);
  digitalWrite(L298nIn4, HIGH);
}
void turnLeft() {//小車左轉(zhuǎn)
  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()//主循環(huán)函數(shù)
{
  String s = readTtl();
  if (s == GO ) goForward();//發(fā)送“G”,小車前進(jìn),直到接收到“S”停止
  if (s == LEFT ) turnLeft();
  if (s == STOP ) goStop();
  if (s == RIGHT ) turnRight();
  if (s == BACK ) goBack();
}



評(píng)論:共4條

ridxqqqq 評(píng)論于:2016-04-14 12:09:24
裸板GL-inet路由器多少錢?
貝殼物聯(lián) 回復(fù)于:2016-04-14 16:14:51
回復(fù) @ridxqqqq:70¥左右吧
ridxqqqq 回復(fù)于:2016-04-18 10:06:11
回復(fù) @貝殼物聯(lián):有淘寶地址店嗎 發(fā)過(guò)來(lái)看下
ridxqqqq 評(píng)論于:2017-01-17 08:00:17
內(nèi)容里面有地址 開(kāi)始 美仔細(xì)看
返回頂部