Category Archives: Arduino

Windows下使用Eclipse开发Arduino程序

Arduino IDE功能简单,对于不熟悉编程环境的用户十分容易上手;但是对于大型的Arduino项目开发,如果再使用自带的IDE就会多少显得不便。之前我曾经使用过Eclipse + CDT + avr-gcc开发AVR程序,鉴于Arduino也是基于AVR和avr-gcc的,理论上应该也可以使用Eclipse开发。Google之后发现在Arduino官方网站上就有配置方法的介绍[1],此处自己按照步骤实现了一下,并将要点归纳如下。这里仅针对Windows平台,对于其他平台的用户请在原文中找到对应的配置方法。

(作者补充:Eclipse配置Arduino相对比较麻烦,如果想要相对简单的配置方法,可以使用Arduino for Visual Studio插件配合VS2012 – 2015使用,感谢Herry的评论。)

1.下载Eclipse IDE for C/C++

下载地址在Eclipse网站:http://www.eclipse.org/downloads/该下载页面中有很多Eclipse版本,找到并下载C/C++版本:

eclipse-cpp-download

2. 在Eclipse环境中安装AVR插件

打开Eclipse软件,点击菜单 > Help > Install New Software…

在弹出的菜单中的 “Work with:” 处输入插件更新的URL地址: http://avr-eclipse.sourceforge.net/updatesite,点击 “Next>” 按照提示安装即可。

Read more »

Gameduino | Gameduino 2: Arduino图形开发板

一、Gameduino 2简介

今天给大家介绍的新玩意是去年十月在Kickstarter上筹资成功的一款嵌入式图形外设:Gameduino 2。Gameduino 2是Gameduino的升级版,这两款硬件都曾经在Kickstarter成功筹资。与Gameduino一代不同,Gameduino 2集成了TFT触摸屏,从而不需要像一代一样使用VGA输出图像,使得其更加整体化。

云飞实验室在该开源项目中,参加了中文手册的翻译和制作工作。最新的Gameduino 2中文手册 (V1.0) 可以在此处下载

image
Figure 1. Gameduino 2
在Kickstarter的筹资

Gameduino 2结合GPU芯片、4.3寸触摸屏、三轴加速度传感器、SD卡接口和音频接口,主要设计目标是构建一个基于Arduino / 树莓派的游戏平台,但就我目前的使用情况,该平台同样适用于设计简单的用户交互界面,而且经过移植同样可以用于其他嵌入式平台。我在英国Cool Components网站上以54磅(540人民币)的价格购得,因为较新所以目前国内销售该平台的厂商还不多,相信不久就能跟进了。

clip_image001
Figure 2. Gameduino 2
实物图(正面)

目前在原作者的支持下,Gameduino 2的开发手册已由本实验室翻译完成并正式发布(下载链接见本页置顶)。同时,云飞实验室也将提供关于该模块的实验例程与技术支持。

clip_image003
Figure 3. Gameduino 2实物图(背面)

二、Gameduino 2主要特性

● 与Arduino、树莓派等控制器结合使用,提供软件支持库,极易使用;

● 使用FTDI公司FT800 GPU芯片,该芯片为SPI接口,最大支持驱动512*512像素的LCD屏,具有内置的图形指令、触摸屏指令和音频指令;

● 使用4.3寸LCD触摸屏,视频分辨率为48027224bit;

● 类Open-GL的图形编程指令;

● 最大支持2000个图形分块(sprites);

● 256KB视频缓冲;

● 提供旋转、伸缩以及双线性过滤;

● 硬件支持点、线、圆的绘制,16倍抗锯齿;

● 硬件支持JPEG的载入;

● 硬件支持文本、按钮、渐变色的绘制。

正是由于以上的特性,Gameduino有极强的图形绘制能力,可以在低速MCU上实现复杂的2D/3D图形绘制。

三、硬件接口

Gameduino 2的引脚定义如下:

gameduino2_pinout
Figure 4. Gameduino 2引脚定义

从图中可见,Gameduino 2主要使用了一组SPI接口,被GPU与SD卡复用,通过D8与D9选通;另外三个模拟信号用于加速度传感器,输出的模拟量与对应轴的加速度成正比。还有一个INT引脚我目前也不太清楚用于什么用途,推测应该是触摸事件的中断信号。

四、应用领域与实例

在我看来,Gameduino 2可能的应用领域有:

● 图形编程的学习平台

● 电子艺术与图形算法验证

● 树莓派及Arduino的用户交互界面

● 与传感器结合实现环境交互式作品

说了这么多,下面展示几个基于Gameduino 2的作品:

0s01736447447IMAG1419
Figure 5. Gameduino 2+Arduino Mega显示Hello World

0s0-1246227742IMAG1424
Figure 6. Gameduino 2+Arduino UNO显示混沌图形

 main2
Figure 7. 官方例程:blobs

 main4
Figure 8. 官方例程:cobra(3D)

 main3
Figure 9. 官方例程:chess

 main7
Figure 10. 官方例程:invaders

目前云飞实验室可能是国内最早接触到这款GPU图形外设的博客,实际使用一段时间后,Gameduino 2的性能给我留下了深刻的印象,这也是为什么我愿意深入研究这个项目的原因。目前在原作者的支持下,我正在进行本模块说明手册的翻译,等翻译工作完成后,我将提供更多关于Gameduino2的使用方法与例程,同时会将Gameduino 2移植到更多的嵌入式平台。

【相关链接】

[1] GD2 项目主页:http://excamera.com/sphinx/gameduino2/index.html#gameduino2

[2] GD2 Kickstarter:https://www.kickstarter.com/projects/2084212109/gameduino-2-this-time-its-personal

[3] GD2技术讨论论坛:http://gameduino2.proboards.com/

【修订历史】

V1.1   2014/03/30  增加了应用领域一节。

Arduino Yun入手评测与基本配置指南

一、不一样的Arduino Yún

DSC01304
Figure 1. Arduino Yún开箱图

上周末从英国本地的网站买到了觊觎已久的Arduino Yún,今天拿到之后大概试用了一下。在我看来,最新的Arduino Yún在三个方面完全不同于以往的Arduino:
1) 高运算速度;
2) 与Linux系统的结合;
3) 网络连接的无缝性。

1) 运算速度

Arduino的运算速度和性能一直是被Geeks诟病的问题,很长一段时间,我也因此拒绝使用Arduino。所以Arduino团队发布了Arduino Due,试图提高Arduino系列的计算能力。而Arduino Yún则是Due的又一次升华,此次Yún使用CPU+MCU架构,400MHz主频的Atheros AR9331处理器使得更多复杂算法的实现成为可能,突破使用单一ATmega32u4单片机16MHz的束缚,让玩家们更加自由的发挥自己的想法。

DSC01307
FIgure 2. Arduino Yún正面特写

2) 与Linux系统的结合

此次Arduino Yún使用CPU+MCU架构,使用一款Bridge的软件包通过UART实现双处理器之间的通信。AR9331内置了发行代号为Linino的Linux版本,此版本基于著名的OpenWRT开源路由器系统。这也是Arduino第一次将Arduino与Linux进行结合,因为Linux有数不甚数的软件包,其引入大大提高了Arduino的可玩性。Yún的有线网络、WiFI、USB Host、microSD等功能都是由AR9331控制的,该方案相比以前的使用Arduino + 扩展板在性能和易用上都有很大提升。内建的USB通讯与Linux系统对多种外设的支持,使Yún可以直接支持外接鼠标、键盘、摄像头、U盘等USB设备。

Read more »