一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 15674|回复: 23

[其他综合] 教你打造一台“黑云”(WR703N+Arduino)

[复制链接]
发表于 2015-3-29 21:32 | 显示全部楼层 |阅读模式
本帖最后由 文句子 于 2015-3-30 18:05 编辑

声明:
本帖内容仅作爱好者交流分享之目的。
本贴内容可被自由引用,只附带一个小要求,请引用时候标明出处: 一乐网(bbs.yleee.com.cn)


前言认识Arduino Yún
Arduino Yún是一个基于Atmega32u4和 Ar9331的微控制器。Ar9331运行着一个名为Linino的OpenWrt linux系统。
这块控制器带有网络通信和Wifi支持,USB-A端口,Micro-SD插槽,20个输入输出引脚(其中7个可用于PWM输出,12个可用于模拟输入),16 MHz晶振, micro USB接口,ICSP接口,和一个复位按键。 2015-03-22_210024.png

Arduino Yún与其他Arduino控制器的不同在于其能通过搭载的linux系统进行通信。
Yún提供了一个给力的网络计算机,除了linux 命令行外(如cURL),你还可以使用shell\python脚本来实现超爽的交互。

2015-03-22_210114.png

                                                                                                     以上文字摘自(http://www.arduino.cn/


Arduino Yún(以下简称yun)是一个“WiFi版的arduino”?
这是一种很典型的看法,之所以先拎这句话出来说道说道,是为了区别于那些“W5100+Arduino”、“串口WiFi模块+arduino”的玩法
Yun从硬件上是ARM+MCU的结合,软件上则是前端执行代码和Linux的结合。
完成ARM+MCU的结合比较简单,只要约定通讯接口和通讯协议就可以了。
但是尽可能多地面向种类繁多的网络应用接口,这就是一个难度和工作量都不小的工程了。
yun在这一点上做的非常棒,它将基于Linux的ARM和传统的MCU类arduino真正做到了有机结合。
具体完成这个结合的东东就叫做“Bridge”,它是yun真正的核心!(参见上图)


正题开始,下面开始我们的黑云打造之旅……
准备工作
  • 硬件准备
改造过的WR702N/WR703N(RAM:DDR64MB,FLASH:16MB,USB) 一台,
理论上,任何一台硬件满足括号内要求的基于AR9331的路由器都可以参照本文操作。
广义上,任何跑Linux的设备也应该可以,因为核心Bridge是python脚本实现的,而不是需要编译的具体程序。
Aduino Uno 一台,
本文特意选用了一个廉价的非标Aduino Uno,意即其他的的Arduino也没问题。但需要完全理解“espode 4 软件配置”之“III.修改几个脚本文件”之内容
其余的电脑、USB线、网线、电源线自己看着办(上网环境要能访问arduino.ccopenwrt)。
  • 工具软件准备

putty,WinSCP,arduino IDE(Ver >1.5.4)……,因为所有改造99%是针对路由器的操作,所以工具很多,哪个熟悉用哪个,所列是windows XP下本人常用的。
  • 背景知识的准备

当然是推荐对路由和arduino都多少有些了解的,完全没信心的同学也可以尝试着依葫芦画瓢,但是一旦卡壳那必然是抓瞎外加着急上火,所以要外加一个心理准备。


提示:硬件准备是包括检查它们是否能正常工作的!        改造工作也会让你面临失去保修、设备损坏等风险!

ESPODE 1 路由刷机
刷入OpenWRT的官方固件。
attitude adjustment 12.09和barrier breaker 14.07均可(但14.07下可能有一个脚本包需要强制安装),本教程中使用12.09示例。
参见 TP-LINK WR703N OpenWrt刷机教程》               引用自百度经验
PS:据说wr703n硬件新版本的情况下刷机有些注意的地方,请百度后再操作。这个《刷机教程》仅仅是个参考


ESPODE 2 网络设置
一、设置登陆密码
刷机成功后,缺省是空密码。为了putty以SSH的方式访问路由,你需要设置一个登录密码。


验证
putty登入后,
2015-03-22_232713.png

二、配置你的路由,使其可以访问互联网。
操作
我采用的方式是与上级路由(192.168.1.250)直接有线连接,其他方式的请完成相应配置。
此处不配图片,以免误导新同学。
验证
在诊断窗口中,点击“Ping”,有结果返回
2015-03-22_225048.png


ESPODE 3 安装ipk
原厂yun与OpenWRT 12.09在kernel版本号上有些差异(前者是3.3.8-1-openwrtyun1,后者是3.3.8-1-d6597ebf6203328d3519ea3c3371a493),
这个差异会导致一些软件包安装失败,并提示内核版本不兼容。
虽然有强制安装的“--force-depends”参数,但在不知道包内程序是否使用了新内核特性的前提下,不建议使用该参数。
因此,我们在安装ipk软件包的步骤会稍微繁琐一些,我们将所需安装包分成两部分,分别从两个软件包源取来安装。
一个是openwrt官方源,另一个是yun官方源。
下图是我对opkg.conf的内容改写,可以通过插入或删除“#”来切换软件源。
2015-03-22_233118.png
注意:
一次完整有效的软件源切换操作应该是修改opkg.conf文件+一次opkg update命令的执行。
操作:
第一步 从openwrt官方源安装
和内核,具体设备驱动有关的ipk,推荐在这一步里安装。


切换ipk源至http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages
putty中敲入命令:
opkg update
opkg install kmod-usb-serial-ch341 kmod-loop


第二步 从yun官方源安装


切换ipk源至http://downloads.arduino.cc/openwrtyun/1/packages

使用putty中敲入命令:
opkg update
opkg install coreutils-stty python python-mini python-json
opkg install avahi-utils avahi-dnsconfd curl gnupg luci-lib-json usbutils uhttpd-mod-lua
opkg install avrdude cpu-mcu-bridge yun-scripts

第三步 单独安装luci-app-arduino-webpanel
这个包需要但无法覆盖一个web入口文件。
可以这样解决:
使用WinSCP登入路由,将路由web界面的总入口文件 /www/index.html 重命名为“index.html.old”
2015-03-23_002817.png

然后使用putty中敲入命令:

opkg install luci-app-arduino-webpanel



验证:
在所有ipk的安装过程中,没有报错信息,就算OK。


ESPODE 4 软件配置
重头戏来了……
软件只是安装完了,还需要做必要的配置,才可以让它们协调的配合工作,变身为一台真正的yun。

I.配置 avahi 注册服务(/etc/avahi/services/)
Avahi的作用是完成网络服务的注册。使得客户端可以实现零配置下的接入。参见Zeroconf Bonjour mDNS等等
yun缺省情况下将注册一个TCP类型、53端口、外带本地IP的连接信息。

Arduino IDE则是在启动时根据另外一个SSH类型的注册信息完成对yun的自动接入。
使用WinSCP将arduino.service文件复制到/etc/avahi/services/
2015-03-23_143026.png

II.复制杂项文件夹( /etc/arduino)
使用WinSCP将arduino文件夹复制到/etc/
2015-03-23_143534.png



III.修改几个脚本文件(/usr/bin/)
关于如何修改的细节,为免赘述,我将另开一贴供讨论交流。

  • 修改run-avrdude
  • 修改run-bridge
  • 修改merge-sketch-with-bootloader.lua
  • 修改kill-bridge


以上修改可以用WinSCP将对应文件直接覆盖原文件

files-modified(for Yuno).rar (13.5 KB, 下载次数: 22, 售价: 1 人民币)

IV.配置 开机启动
参照下图配置开机启动项。
注意:generate_new_gpg_key ,rngd-turn-off 不要参与启动,否则openwrt无法正常启动,切记!!!
它们应该与web访问的操作类授权有关,我心情好了在研究。
2015-03-23_150724.png
此时,你可以重启一次你的路由。

ESPODE 5 Arduino IDE的修改

更改文件arduino-1.6.1\hardware\arduino\avr\boards.txt ,加入如下内容。(Windows下请用“写字板”,而不是“记事本”修改)
  1. ##############################################################

  2. myuno.name=Arduino Yún(Yuno)
  3. myuno.upload.via_ssh=true
  4. myuno.build.mcu=atmega328p
  5. myuno.build.f_cpu=16000000L
  6. myuno.build.board=AVR_UNO
  7. myuno.build.core=arduino
  8. myuno.build.variant=standard

  9. ##############################################################
复制代码
2015-03-23_224748.png
启动Aduino IDE,看看是否有如下变化

2015-03-23_231340.png 2015-03-23_231411.png


ESPODE LAST 黑云Yuno飘来
重启你的路由……
等待的过程中,再看看我们的成果:
IMG_20.jpg
                              改造过的wr702n(Total<20 RM)+ 廉价版Arduino Uno(15 RMB)= 绝对的惊喜!!
要知道眼前的黑云Yuno,
它不再是之前WR703n+arduino的简单组合,
它是拥有Bridge丰富便利的接口+OpenWRT强力的后盾的组合。
通过几个演示example,你很快会发现:你无需关注ARM和MCU之间的链路层,而直接面对应用层。
希望借助它,你可以玩的更开心。

Just Enjoy Arduino Yuno!

Special to像我一样仍在使用WinXP的:
使用浏览器登陆yun专有Web界面时,请避免使用IE 8。
有官方解释如下
2015-03-23_223011.png

用Chome访问
2015-03-23_153053.png 2015-03-23_153115.png 2015-03-23_153147.png

鸣谢
InstallArduino Yun (Linino) software on OpenWrt on 3rd-party devices” ,probonopd,搜索gpg key资料时才发现,我们的改造思维基本一致,且他比我还要早。
一乐论坛,提供了发布平台,我个人比较喜欢
坛友“熊”,低价wr702n的提供者,折腾动力之一














评分

参与人数 1一乐金币 +40 收起 理由
littlebadbay + 40

查看全部评分

 楼主| 发表于 2015-3-30 13:38 | 显示全部楼层
说话间
Arduino1.62出来了,
人家把board的配置信息收回去了
回复

使用道具 举报

发表于 2015-3-30 13:47 | 显示全部楼层
文句子 发表于 2015-3-30 13:38
说话间
Arduino1.62出来了,
人家把board的配置信息收回去了

什么意思? 不能自己做板子了?只能用官方的?太坑了吧,呵!那就只用老版了!
回复

使用道具 举报

 楼主| 发表于 2015-3-30 14:03 | 显示全部楼层
梨花剑雨 发表于 2015-3-30 13:47
什么意思? 不能自己做板子了?只能用官方的?太坑了吧,呵!那就只用老版了!

就是说,1.62之前,IDE要想支持自己定制的硬件(比如Zion),修改本地的board文件中的信息就可以了
但1.62之后,除非“board manager”从网络上能读到这些信息。目前还没看到提交的途径和方法


如果卸载内置的基本官方板型,你就会看到IDE是怎么“将”军的
2015-03-30_135452.png

回复

使用道具 举报

发表于 2015-3-30 14:51 | 显示全部楼层
好文章,顶顶,702n有,可是改造没有配件,功夫也不到
回复 1 0

使用道具 举报

发表于 2015-3-30 15:47 | 显示全部楼层
文句子 发表于 2015-3-30 14:03
就是说,1.62之前,IDE要想支持自己定制的硬件(比如Zion),修改本地的board文件中的信息就可以了
但1. ...

呵呵,只能做成兼容的了!其实也无所谓了,无非就是晶振,芯片一般都一样!

看来arduino也要收费了!呵,想上名单,没问题,交钱来吧!呵
回复

使用道具 举报

 楼主| 发表于 2015-3-30 19:27 | 显示全部楼层
100abc 发表于 2015-3-30 14:51
好文章,顶顶,702n有,可是改造没有配件,功夫也不到

还行吧,内存32M应该也够,

闪存16M主要是安装python相关的占空间,变通的方法是装到u盘上
usb最精简的就是用焊锡连接3对焊盘,
回复

使用道具 举报

发表于 2015-3-30 19:47 | 显示全部楼层
之前见过有人改造过,直接用ar9331的路由刷yun的固件,可惜一直没有找到。。这个要试试,手上有个极1内存和闪存都挺大
回复

使用道具 举报

发表于 2015-4-15 12:25 | 显示全部楼层
也想买个改好的702试试,但是网上找找,都是介绍这东西如何高大上,但是实用例子一个没有,好像就是个没人玩的鸡肋!单一网络模块实用材料倒是不少!赶紧停手,等高手举几个高大上的例子再说吧!!
回复

使用道具 举报

发表于 2015-8-25 13:28 | 显示全部楼层
请教下,port选择怎么样才能出现那个openwrt at xxx呢?我的只有Com口
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-10-30 06:10 , Processed in 0.045409 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表