WR720N Install OpenWrt

今天无聊跟实在无法忍受天朝的网络,就搜索了一下wr720n openwrt,发现官方已经出了wr720n专用的固件了,之前是没有官方的,民间高手有出一些教程可以自己编译,我是懒得编译了。

既然出了就当然是要刷一下了,目前还是测试版,刷机有风险。刷机过程如下:

第一步:下载专用固件

http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-factory.bin

第二步:开刷

由于刷机前没有截图,网上找了一张WR703N的图片,操作是一样的。

第三步:配置无线

刷机过程大概一两分钟,路由重启后使用 @telnet@ 命令连接路由

telnet 192.168.1.1

默认应该是不用帐号密码的,如果需要就是admin。接着就是开启无线,命令

# vi /etc/config/wireless

删除 @option disabled 1@ 即可

修改密码并开启ssh

# passwd

输入两次密码即可,现在重启

# reboot

就可以通过无线连接路由了,目前无线是没有密码的,如果需要设置密码参考官方说明

http://wiki.openwrt.org/doc/uci/wireless/encryption

第四步:配置PPPOE拨号

# vi /etc/config/network

config interface 'wan'
option ifname 'eth0'
option proto 'pppoe'
option username '上网帐号'
option password '上网密码'

# /etc/init.d/network start

过一会就可以上网

参考: http://www.geek-workshop.com/thread-2418-1-1.html

OpenWrt常用技巧

列表当前所有连接到路由的IP

arp

or

cat /tmp/dhcp.leases
OpenWrt端口映射

由于我内网还有一个Raspberry Pi,进行端口映射实现从外网访问我内网中的Raspberry Pi树莓派

首先要去申请一个动态dns,我选择了duckdns,非常合适OpenWrt

使用Google帐号登录DuckDns,申请一个子域名,然后生成配置文件,可参考

https://www.duckdns.org/install.jsp#openwrt

修改OpenWrt防火墙设置

# vim /etc/config/firewall

在最后添加

config redirect
    option src              wan
    option proto            all
    option dest_ip          raspberrypi ip

这几行配置的作用是完全把raspberry pi作为一个服务器对外公开所有端口,当然这是不安全的

对外公开的端口中肯定是包含了 @22@ 端口,此时通过duckdns提供的域名方向将直接进入raspberry pi,如果要进入openwrt可以通过raspberry pi对openwrt进行管理。

Arduino HC-SR04

HC-SR04是一个超声波测距模块

接线

table(table table-bordered). |_.HC-SR04|_.Arduino| |VCC|5v| |GND|GND| |Trig|PIN8| |Echo|PIN9|

程序

const int TP = 8;
const int EP = 9;

void setup()
{
    pinMode(TP, OUTPUT);
    pinMode(EP, INPUT);

    Serial.begin(9600);
}

void loop()
{
    digitalWrite(TP, LOW);
    delayMicroseconds(2);

    digitalWrite(TP, HIGH);
    delayMicroseconds(10);

    digitalWrite(TP, LOW);

    long microseconds =  pulseIn(EP, HIGH);
    Serial.print("ret=");
    Serial.println(microseconds);

    long distacne = microseconds / 2 / 29.1;  // 计算距离公式
    Serial.print("distacne=");
    Serial.print(distacne);
    Serial.println("cm");
    delay(1000);
}

参考: http://www.elecfreaks.com/244.html

素材: https://github.com/rngadam/ART/tree/master/ele/fritzing/HC-SR04

Linear Algebra

最近开始学习线性代数,在看http://v.163.com/special/opencourse/daishu.html麻省理工的线性代码公开课。

这里做一些笔记吧。

方程组的几何解释

x + 2y = 13;
3x - y = 4;

使用矩形表示

  -   -     -    -   -    -
  | 1 |     |  2 |   | 13 |
x |   | + y |    | = |    |
  | 3 |     | -1 |   |  5 |
  -   -     -    -   -    -

使用线性代数表示

-      -   -   -   -    -
| 1  2 |   | x |   | 13 |
|      | * |   | = |    |
| 3 -1 |   | y |   |  5 |
-      -   -   -   -    -
When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ \begin{bmatrix} 3 & 5\\ 1 & 2 \end{bmatrix} \cdot \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \begin{bmatrix} 4 \\ 1 \end{bmatrix}

Arduino HC-06

HC-06是一个Arduino的蓝牙从机扩展。从机不能主动与其它蓝牙发起连接。

接线

table(table table-bordered). |_.HC-06|_.Arduino| |VCC|3.3v| |GND|GND| |RXD|TXD| |TXD|RXD|

蓝牙参数的配置

table(table table-bordered). |_.命令|_.说明| |AT|判断是否与蓝牙通信成功| |AT+NAMExxx|修改蓝牙的名称,xxx为新的名称| |AT+PIN1234|修改蓝牙的密码,为四个字符长度| |AT+BAUDx|修改蓝牙的波特率,x为 1 --> 1200bps 2 --> 2400bps 3 --> 4800bps 4 --> 9600bps 5 --> 19200bps 6 --> 38400bps 7 --> 57600bps 8 --> 115200bps 9 --> 230400bps A --> 460800bps B --> 921600bps C --> 1382400bps|

Arduino Car

2013-05-13

原本打算是做一个四轴的,可是琢磨了好些天,感觉还是先来个小车项目吧,四轴的话最大的问题是遥控器要买,而且好一点的又贵,所以目前暂时先做个小车项目了。

其实做个小车成本也是挺贵的(╯-_-)╯╧╧

table(table table-bordered). |_.名称|_.数量|_.价钱| |小车车体|1|| |HC-06蓝牙模块|1|| |L298N电机驱动模块|2|| |SR04超声波模块|1||

2013-05-15

今天小车车体到了,晚上回来就开始组装了,原本我以为这个小车车体应该不会很大,事实是有点大啊。

把电机都装上了

有把小电钻自己焊了张电路板配合arduino nano使用

装上去之后的效果还不错

给电机连上线,电机驱动板还没到,暂时把线接上,明天电机驱动板一到就可以跑了

这个车体100多块也还算可以,质量不错。

2013-05-16

电机驱动板收到了

由于电池盒太大了,加上一个舵机的话放不下,就搭了这样一个双层板子。

在进行电机测试,没用过电机驱动板,在调试,初步知道前进后退怎么操作,还有通过pwm进行调速。

最后是把蓝牙装上去,明天写个android程序来进行小车的控制。

电机与电机驱动板的接线效果

2013-05-16

开始在Arduino Nano中调试电机了

完成了,由于地线不足,暂时用了块面包板

试了一下车,速度与冲击力还不错,用电池需要从电机驱动板中取电,否则无法驱动。

提供Android程序与Arduino程序

</br>