发新话题
打印

为艺术家设计师写的Arduino互动入门

为艺术家设计师写的Arduino互动入门

http://imlab.cn/whale/?p=147
作者是一位互动设计的爱好者。
————————————————

艺术系的互动入门-1-为艺术院校学生写的前言
Dec 5th, 2007 by Whale

(这一系列文章为第一次听说电阻电路第一次听说Arduino第一次听说ActionScript第一次听说Processing第一次听说Physical Computing第一次xxx的超级入门者而写,而我,也只是在10个月之前第一次听说以上东西,也是需要大家指点的初学者,所以文章中许许多多用词不当以及曲解原意的地方,敬请指正,万分的感谢。

这系列文章的目的是尝试归纳学习资源,为艺术院校学生做些基础引导(理顺思路)。 对于艺术学院的初学者来说,互动媒体这个新东西的的意义和版式课程,字体课程或更加基础的素描,色彩,色彩构成,平面构成一样,是几十门必须科目之一。没有多少特殊的地方,甚至比其它科目更加没有商业应用价值。(太难掌握与实施)

所以阻挡学习热情的,除了互动媒体学习资源的匮乏,缺乏有组织的教学引导以及学院派教学天生的慢一拍导致普及的困难外,对技术的恐惧和对新媒体应用的片面认识都是原因之一。我看到许许多多发现互动媒体的乐趣想投身其中却不知道从何下手的家伙,(包括我自己)但愿这些文章能让这些人找到入门的乐趣,从肤浅的崇拜到开始真正的学习。

这系列引导文章的思路是:概述-例子-结论,而结论正是进入基础的学习。 能写出基础教学的是那些真正厉害的家伙,我做不到,所以希望看到愿意帮助初学者的厉害家伙出现,我想程序员,设计师,艺术家多方的参与才能够造出一个真正有趣的创作环境,希望前进者帮助下后进者。:)

互动新媒体比交互设计更好听也更不容易误解,当有人告诉你他的职业是交互设计师时,要等问清楚后再表达你的崇拜,很有可能他是网页设计师而非想像中的高科技艺术家;“科技艺术”是台湾的叫法,我更喜欢这个。)

我不能说科技艺术比传统的国油雕,平面动画影视等等科目有趣或有用,做为新形态表现媒介,作者和观者都会被它带来的新鲜所吸引,但和其它艺术形态一样,技术层面的新鲜之后我们更需要着重思维与意识的探索。所以说即使科技艺术新鲜好玩入门不难,也没有必要抛开自己的专业深究,因为把简单的互动技术应用到自己擅长的绘画,影视,装置领域强强结合要比用很久的时间做一个技术演示有意义的多。

接触需要用到传感器,Arduino,面包板,电阻等等这些电子设备的互动媒体纯属偶然,在05?06?年E3展看完WII的技术演示后就发疯般的想把那些技术用到来年的毕业创作中,之后在网络中收集资料意外遇到Arduino这个更加神奇的玩意,零基础自学和用MSN,eMail请教别人花费4,5个月时间,但这并不意味着你也要用这么久。从2006年的11月份开始零散收集资料,07年1月确定使用Arduino做毕业创作,2月份从国外购买Arduino和学习电路,传感器,4月份做出第一个例子,之后完善作品直到6月份毕业展览。我相信单纯的把技术引用在自己的作品上用1个月时间就可以搞定,需要知根知底的话准备半年时间再说。

开始学习之前,请做好两方面的准备,一是完全陌生的代码学习,二是硬件购买。之后的文章里我会给出足够的源代码帮助你完成作品,但是如果有条件最好去报名参加Flash as动作脚本的学习(当然自学也ok)。至于硬件,请准备500块人民币,在以后的文章里指导大家如何购买。

那么“鲸男的互动新媒体入门”这一系列文章的目的,就是介绍结合传统艺术与互动新媒体的最简单方法(其实我的水平也只能写到这种程度,大家心照不宣好了……)。请大家慢慢期待接下来的更新(请一定慢慢期待,我的速度很慢,每天有一堆游戏要打,,)。
乐乎设计,乐乎生活~

TOP

艺术系的互动入门-2-软件类,代码(code)概述Dec 10th, 2007 by Whale

代码(code)

画画需要纸和笔,互动新媒体的创作也需要特定的工具,把Arduino这块裸体的电路板算做纸的话,构成程序的代码(code)就是对应的笔。Arduino会在下一节的硬件部分做详细讲解,本节出场的主角是代码(code)们。
Arduino是一台机器,它能听懂的语言不是中文,日文,朝鲜文,也不是英文,法文,而是“010101011010100101001“,但这么多0和1写起来实在麻烦,就有了逻辑清楚便于理解的高级代语言,要告诉Arduino我们的想法,就要用它能够理解的语言给它下命令。这就是为什么我们要学习代码(code)的原因。
听到写程序,不管是Flash AS动作脚本还是号称设计师艺术家专用的Processing都能让艺术院校的同学们胆战心惊。
非要用代码不可吗?
回答是半肯定的,在本系列的文章里一定要用。

写程序不完全像想像中可怕,找到合适入门途径,多多尝试保持热情很快能找到其中乐趣。这里有许许多多艺术院校出身学习使用程序做艺术创作还成绩斐然的榜样们,比如《Processing: A Programming Handbook for Visual Designers and Artists》的作者Casey Reas,以及《Processing Creative Coding and Computational Art》的作者Ira Greenberg.






有没有必要学写程序?为什么要学?
Ira Greenberg在他的Processing教学引言中的一段文章很适合做这个问题的答案,以下是我做的粗略翻译。

From 《Processing Creative Coding and Computational Art》
Chapter INTRODUCTION
Page XXii-XXIII
Author Ira Greenberg
Translate GaoLei(whlaforest)

“Intended audience
这本书的读者定位为程序编写初学者,做为Processing的入门介绍,阅读本书并不需要你有任何的编程技术,所以无须担心。我在想,也许你有使用Adobe PhotoShop这类设计软件进行创作的经历,不是说这本书意义重大到需要设计师,艺术家们捧读。事实是我不想向你灌输一定要“很擅长”或者喜欢数学的思想,但是相信我,数学并不像想像中高高在上盛气凌人。
Coding as an organic, creative, and cathartic process
当我告诉人们用编程做艺术创作时,他们总表现的很古怪顾左右而言它,或者告诉我说他们认识的某个做设计的家伙是用IMovie来做视频。当然,对没有编程经验的人而言代码就是莫名其妙,古怪和复杂的代名词,学习起来还耗时耗力。另外一种常见的说法,代码是属于技术范畴而和艺术创作完全搭不上边的玩意。
相对以上两种态度,我们有一条折中的路可以走,这也是本书中所提倡的,它把代码看作一种艺术形式而不是单纯的技术工具,也许有些代码看起来超出我们的理解范围,但不用担心,尝试运行它看看结果就可以。大多数时候艺术家们都在尝试属于自己的创作方式,这种探寻和尝试使得艺术家们能够得到意想不到的灵感。通过编写程序也能让我们获得相同的灵感,而Processing语言就为我们提供了实现”用编程做创作”的便利。
“I’m an artist—I don’t do math”
我记得在学校的时候,大家都有很多名头:写作能手,阅读健将,数学小子,艺术青年,运动猛男,等等等等。事实上这些外界贴在我们身上的标签在生活中起到的更多是限制发现真正自我的反面作用。当然,另外一些标签(口齿不清,数学白痴,五音不全,等等)更加过份。从纯粹的实用性上说,这些标签有效的帮助管理者和电脑提高了管理我们的效率。从人性的角度来看,这些标签把我们框在一个小小的框框中,直到我们真的以为自己真的只适合做某一件事情。(妈的,我严重同意作者这段话,当然括号中这句屁话是我加的)。
我最喜欢给我的艺术系学生们上三角学课。只要听到三角学他们就像屁股上扎了针一样心神不宁,心里还一定会想 “这个老师没变态吧?”当我还是艺术院校学生时也有相同的反应,我还记得自己在高中时三角代数都没学好,所以基本上我靠自己又学了一遍三角学。然而,我最大的收获是发觉三角学(和普遍意义上的数学)有着无穷无尽的诱人魅力,特别是在创建视觉有机模型及其它自然现象时-从大海中轻轻摇摆的波浪,到复杂的swarm?(怎么翻译呢)和海贝的曲线构造。数学完全可以算作极富表现力与创造性的媒介(可能这个结论在高中阶段不成立)。最后的结论就是,对于多数读者而言使用Processing进行数据运算将会非常非常非常容易上手-毫无疑问。”
翻译完毕,那么我要推荐以下软件和书籍作为大家的入门教材。
软件选择Flash ActionScript 2.0(Flash 8) 或者 3.0(Flash CS3),以及重复了无数遍的Processing.
Flash有表现具像形式的能力,而Processing对于复杂的图像生成很在行,我这个门外汉姑且这么偏颇分类-前者适合具像表现(做做简单运算),后者适合抽象表现(适合做复杂运算)。(多谢aaajiao同志的补充)
ActionScript 2.0的教学在国内有很多(开动Google和Baidu搜索吧)。ActionScript 3.0版本的《Make Things Move》将会是大家入门的超级好书,英文版可以通过搜索下载(当然买原版最好不过),由Webstudio的站长egoldy翻译的中文版应该会在年前由图灵出版社出版,之前可以[url=]在这里看到翻译样稿[/url]。
至于Processing,请先前往官方网站看看可以用它做什么。教学书籍当然是选择上面推荐过的《Processing Creative Coding and Computational Art》,及《Processing: A Programming Handbook for Visual Designers and Artists》我正在做后者的中文化翻译,大家过段时间来blog看看有没有更新(来的太勤会失望)。中文化的豆瓣讨论组请看这里,中文讨论论坛可以看这里
两者都适合做交互设计,而我接下来的文章将使用Flash ActionScript做为示范工具,所以大家可以稍微了解下ActionScript先。
学习代码(code)有什么需要注意的吗?
恩,最怕的是在不知道这些软件可以干什么的状态下就逐个学习语法,这样会很难很费时间。先大体了解ActionScript和Processing可以做什么,有什么特性,有了总体印象后再跟着最最简单的但是很系统的教学来做。我看过最有趣的一套教程(ActionScript 2.0)是由台湾吕聪贤做主讲,点这里可以在线看到。ActionScript 3.0的视频教程点这里可以看到(这一部没有仔细看过,不知道质量如何),2.0和3.0的区别非常大,急用的话学习下前者,有长远的打算并且时间足够,还是请慢慢寻找资源学习3.0,引用Chang的话来说就是“会是一个很棒的投资”。
我用那个软件多一些呢?
和大家一样鲸鱼也是初学者,最初我选择使用ActionScript 2.0来做网页和小小的用鼠标控制的交互试验以及动画,有机会接触到众多软件后一时迷糊起来,不知道该择哪一个做主打,在一股脑尝试了ActionScript 2.0,Processing和ActionScript 3.0后,我决定通过先学Processing来做程序世界的敲门砖(这个软件真的是太容易学习喽),不同的程序其实在语法上也有很多的共同处,就像是学会Photoshop再看Illustrator,哈,好多相似的地方!通过Processing的学习搞懂程序编写的简单规则后,钻研ActionScript 3.0时的思路会变的开阔清晰。
所以我的选择是,由Processing入手,再转变至ActionScript 3.0。
题外话--在经由亲手试验Processing的教学范例时,深深被它呈现的由点,线,面构成的图案所吸引,让我想起来在大学一年级平面构成课程时专心研究点,线,面的情形。
那么代码(code)部分完结了,接下来将对硬件部分做简单介绍,Arduino or Wiring。
乐乎设计,乐乎生活~

TOP

艺术系的互动入门-3-硬件类,Arduino(Wiring)概述Dec 14th, 2007 by Whale

那么代码(code)部分完结了,接下来将对硬件部分做简单介绍,ArduinoWring
都在说Arduino,Arduino,Arduino,它到底是个什么鬼呢?

通过看图可以确定它不是鬼,,,而是一部裸体的微型电脑主机(这样说好理解些吧),我们把传感器插入它身上特定接口(就像是电脑上的USB接口)的意义,就像把鼠标插入家里的电脑主机,平时使用鼠标控制电脑里的程序,现在可以用传感器控制这个微型电脑主机中的程序。

那么传感器(sensors)又是一个什么鬼呢?
传感器也不是鬼,对比家用主机来说,它的实际意义就像鼠标和键盘。平时我们通过点击鼠标让动画播放,同样我们也可以通过吹一口气,开一下灯让动画播放,要使用后面两种神奇的播放方式就要用到传感器。例如我们要使用湿度传感器控制动画,首先把湿度传感器接到Arduino上,再把Arduino连上电脑,此时朝着湿度传感器吹气,当吹出来的气体潮湿到一定程度动画就播放喽。传感器有很多种类,湿度传感器用来感受环境湿度变化,超声波传感器可以感受距离远近,力传感器反映力量变化等等,使用不同的传感器可以得到各种各样好玩的交互方式。
一定要使用Arduino吗?
为了省事省钱当然要这么做,使用市面上常见的单片机也可以实现以上效果,但学习它们的意义就像一个要做炒青椒的厨师,先买了一粒青椒种子回家种上,等几个月让青椒长出来来了再炒,而使用Arduino就简单了,把切好送到你面前的青椒和蒜泥花椒一起放进锅,ok。
它很好学吗?
恩,对于艺术院校出身的电子白痴来说它一样简单好学,只要这个白痴愿意多多尝试。使用它作出一个自己可以真切看到效果的例子会带给我们更多研究它的动力,要做出第一个例子的快捷方法是看前辈们给出的教学,下载他们给出的源代码研究并修改为自己需要的程序。在后面的文章里也会给出搜集和修改过的源代码(二道贩子)。
与Arduino相关的学习资源。
如果还没有看英文教程以及PDF格式文件的习惯,为了可爱的互动新媒体,大家不妨改变下下。绝大部分初级或高级的教学都是英文而且是用PDF格式(为了图文并茂保持版式便于传播,相信艺术院校的同学可以体谅这些),今后大家电脑里需要常备的就是翻译软件和Adobe Reader喽。
中文教学资源--
Arduino乐园是我的启蒙地,这里有从初级入门到基本范例的全方位文章,通过这里可以对Arduino有一个较全面的理解。
MSM(Motion-Sensitive Media)體感互動媒體,他们翻译了几乎所有Arduino官方网站的教学范例,对英文不通的人来说是天大的喜讯。不仅如此,他们还经常发表一些自己的作品上去,甚至包括原始文件,这么一来大家就可以了解到台湾的互动大学生们的进度喽。非常感谢MSM这个超级棒的资源中心!
blog.booksforce,北京一位有电子背景的厉害家伙是它的创办者,这里提供能让你自己组装Arduino的文章和工具,并对Arduino运作原理做出详细讲解。站长提供各种版本的Arduino,传感器供出售,无论如何这里一定不能错过哦。
互动中国的站长有留学背景并在上海创建了交互设计公司,相应的论坛资源非常丰富,几乎所有我们需要了解的硬件软件资料在这里都能找到。
鲸男与互动新媒体Whale’s Interactive,王婆卖瓜,自卖自夸说的就是我这种人。如果你是艺术院校的互动艺术爱好者或者最初级的使用者,请一定经常光顾我的blog,为艺术院校学生特制的系列入门教学一直在持续哦。
可以买到的相关书籍是《Physical Computing》,中文名叫《交互式系统原理与设计》,作者Tom Igoe,NY ITP的厉害教授同时是Arduino的研发者之一,此书出版较早并没有针对Arduino做讲解,但做为NY ITP的教学总结书籍以及难得的中文版非常值得一看。搜索一下很多地方都有卖,包括淘宝网。

英文教学资源--
先去官方网站的playgrund,这里几乎是所有与Arduino相关资源的集合,还可以联结到更多其他网站。
与此教学以后章节有关的是Arduino + FlashArduino + Processing的应用讲解。



Massimo Banzi(Arduino研发者之一)写的入门书籍Arduino_booklet03.pdf非常重要。










Tom Igoe的新书《Making things talk》针对Arduino,Peocessing,Flash综合应用举了学多例子,英文好不好都可以买一本来做研究。Amazon上包括邮费在内$30(人民币240块)。













在哪里购买Arduino呢?
最简便的方式是从什么都有卖的淘宝网买喽,Arduino是一块特制的特殊用途的微控制器,当地的电子市场中基本没可能买到。他们出售的Arduino功能几乎没有差别,需要注意的是最便宜的那块(150元)只能在Windows平台使用。
台湾省的用户一样可以使用“淘宝网”购买,国内的“顺丰快递”收费很低,由内地到台湾的快速邮件只需要35块人民币(5.5美元)。
至于Wiring,请待我试用之后再做补充喽。
to be continue…
乐乎设计,乐乎生活~

TOP

看到代码就昏厥意味着要和互动说永别吗?!
正所谓条条大道通罗马,这里还为讨厌写代码的家伙准备了一剂良药,使用Max/Msp Jitter和PD,VVVV或者Virtools等等软件一样可以做出有声有色(这些软件都可以不用看一行行的程序),甚至比用编程类软件更绚丽的互动作品。
请原谅我又拉出来这么多新软件扰乱你的心绪,即使我不在这里提,将来你用Google,Youtube搜索相关资料还要遇到它们。当初我们报考艺术院校,并不太懂油画系,国画系,视觉传达系或者工业造型系等等究竟的区别,也不懂哪个最适合自己,所以大学中选对科目的家伙一路春风得意,选错的就自暴自弃鸟(当然也有有志青年力挽狂涛逆流而上但这里说的是反面教材请多多见谅,,)。找到适合的工具同样要多方比较再做决定,毕竟放学后的空余时间太多,大家可以从泡妞打游戏和睡懒觉上挤些时间出来,把这些不算多的软件都稍稍了解了解(不是建议全部掌握,,)。

Max/Msp Jitter是什么?


Max你知道吧,恩,对了!就是3Ds MAX!(如果这句冷笑话不能让你发笑请忽略,,,)
事实上,Max/Msp我只知道它超级超级厉害和超级有名,不仅擅长处理声音,更可以结合声音,图形与视频创作作品。用Max/Msp做作品就像用乐高积木,把本来就有的长条,正方块,卡槽等等拿出来拼和在一块就ok(Max/Msp的工具长的还真像是积木,一块一块的,用的时候就拉出来放到工作窗口)。
我请Max/Msp的使用者Chang比较它与Proccessing,他说“Max/Msp像是乐高积木,Proccessing像是黏土,前者很强大很方便,但遇到没有那一条的时候没有办法继续,而Proccessing可以自己捏一个零件出来。”

你一再追问Max/Msp究竟是什么的话,我只有把你推给有经验和有名气的使用者了:请参看小王老師Arbyth的MaxMSP心得,以及M之道。当然了,通常看完这些文章还会继续摸不着头脑,不如先看看用Max/Msp创作的作品放松放松。

Max/Msp可以做出什么效果呢?
以下Max/Msp Jitter互动实例视频就是对台湾热血互动青年宋恒作品“三位一體 # 2”的纪录。



更多资料的寻找就请善用无所不知的Google和Youtube或者Flickr,在以下的学习途径介绍中依然要推荐使用它们,不管是文章,视频还是图片都能在它们的帮助下一网打尽。
怎么开始了解与学习Max/Msp Jitter呢?
就现在教学环境而言用网络自学最方便,从M之道可以下载到由李岳凌前辈翻译的Max中文手册Msp中文手册Jitter中文手册。而在看这些手册之前,了解其它Max/Msp使用者的学习经历与方式非常必要,所以继续推荐你看小王老師Arbyth的MaxMSP心得一文。
如果你在成都,或者正是四川音乐学院及任何分院中的一员,川音的本部开设有Max/Msp的教学,由白小墨老师任教,我曾经去听过一节并带了Arduino做交流,你可以参看这篇文章“初访四川音乐学院作曲系重点学科实验室max/msp及白小墨老师”。
趣味横生简单易懂的Max/MSP讲解请持续关注台湾元智大学孙恒的Blog
Max/MSP与Arduino的交互教学请关注Chang为台湾开南大学开设的Blog-互動裝置設計
还有更多优秀的中文站点请自行查询吧~
乐乎设计,乐乎生活~

TOP

艺术系的互动入门-5-非代码编写类软件-VVVV简介Dec 29th, 2007 by Whale

VVVV也是个好玩意,可惜我一点也不会,但是一点也不会为什么说它是好玩意呐?!因为我见有人用过它,它有着像Max/Msp一样的图形操作界面,那天我带上光敏电阻和Arduino给某人做测试时,只见某人装好为VVVV特制的Patch,鼠标直接拖动操纵滑竿就能很方便的改变各种参数。(忘了更改的是什么参数,所以用“各种”这个词来糊弄一下,抱歉)当时就想抱头鼠窜,可怜我在ActionScript更改读取湿度电阻的灵敏度都要重新写加测试好多此代码啊!
那么此篇VVVV简介就邀请了某人来做讲解,在此谢谢某人在百忙之中抽出时间写下这篇文章。
VVVV简介 by 李坤 kkstudio
VVVV是一个开源程序语言及开发环境,提供给那些想要对影像、动画、声音进行程序编辑的学生、艺术家、设计师、研究员以及有兴趣的人。vvvv可以免费地下载,支持的平台是Windows。
在 VVVV 的环境下没有条列式的程序撰写,其运作方式是将程序代码集结成特定功能的程序组节点(Node),再进一步整合节点架构出整个视觉性的网络系统。
它适用于许多任务,涉及常见计算机相关媒体如音频,视频,三维动画,网络…..。并且还能很方便的连接各种外部设备。
VVVV的特点有:
    1. 能够同时处理大量计数的物件,图形或数据。控制单个图形对象与1000个之间不会有明显的差别,这种技术被称为”Spreading”。

    Spreading 实时处理多个对象
    2. 无缝多媒体投影技术,这样可以让我们很容易的使用多台投影仪进行超宽屏无缝投影,这个由一台服务器统一控制任何数量的客户端计算机的技术被称为“Boygrouping”

    Boygrouping
    4. 实时视频分析(光学追踪),在4v里可以同时或分别使用不同追踪技术. 如:轮廓捕捉,色彩捕捉,运动检测,二维码识别等等。

    实时视频分析
    5.音频功能。vvvv的声音引擎基于微软的DirectShow技术,能够播放绝大多数格式的音频文件以及对多个音频文件进行简单的混合。而且运用FFT(傅立叶转换)算法可以很方便的创作现场实时音视频交互作品。

    音频功能
(Copy完毕,根据你的爱好,擅长之处选择适合你的软件可以让你如虎添翼,介绍不同软件的目的也正是希望大家找到最适合自己的创作工具,并非是说务必全部掌握)
再次感谢神秘的某人,以下是八卦播放时间。
作者 李琨 LIKUN
Multi-media artist. Currently engaged at the project of sampling and profiling the minority folk music in SiChuan Area.
Performances and Concerts:
ShenZhen Rock&Roll Music Festival
KunMin Contemporary Music Festival
“2004inChengDu” Contemporary Art Exhibition
Chengdu Intl. Contemporary Music Festival
Beijing Intl. Electronic Music Festival
First Grand Winner of “Musicacoustica”Electronic Composition Contest Group A
乐乎设计,乐乎生活~

TOP

艺术系的互动入门-6-开工前的最后一关:工具准备
Jan 5th, 2008 by Whale

古语有云:工欲善其事 必先利其器
互动青年们要做好互动,就要先去自己家的工具箱里翻一翻,如果在里面找到了一堆的扳手锯条螺丝刀,很抱歉你要去准备买工具的钱喽。如果在阁楼里找到了一把带血的卷刃大砍刀和自己失踪老爹与未知美女相拥的照片,,,你可以去重新拍一遍彼得杰克逊老兄的群尸玩过届,,而我们的小明同学就很幸运,他从老爹的工具箱里找到了在这篇文章里需要的所有工具,让我们看看有啥吧:

    工具清单
    1,一台电脑,里面装了Windows XP系统,OS X系统和Lunix系统(三系统,好强)
    2,Arduino一块,女主角(真奇怪,,,很久之前就有Arduino吗)
    3,一头扁一头方的USB数据线,连接电脑和Arduino(大的外接硬盘用的那种)
    4,输出电压范围5V到12V,输出电流500mA到1000mA的变压器。
    5,面包板(BreadBoard)一块,用来给所有零件提供表演舞台(稍后做说明)
    6,面包板数据线或硬一点的单条细电线,用来在面包板上构建传输数据和电流的线路(稍后作说明)
    7,各种各样的开关,向上按是开向下按是关的拨动开关(就像家里开关灯泡那种),按一下是开再按一下是关瞬时开关(就像台式电脑主机上那种)
    8,一大把电阻,阻值包括常用的22K,10K,1K,470Ω,220Ω,100Ω和较冷门的1M,100K。
    9,红色,绿色的LED发光二极管一大堆(分不清红绿的色盲同学不要担心,只要是两种不同颜色的LED就OK)
    10,各种各样奇奇怪怪的传感器(Sensor),例如光照传感器,湿度传感器,弯曲传感器,超声波传感器等等
    11,可以测量电流电压电阻的万用表
    12,可以轻松脱去电线外衣的剥线钳子
    13,小小的电焊和焊锡(一定要买无铅那种,小心杀精呐)
面包板(BreadBoard)的小说明
小明拿起工具后看着面包板(BreadBoard)挠头,这是什么玩意呐?突然一张纸掉了出来,上面密密麻麻写了很多字,配的的还有图片,我们一起来看看吧:
    在四川地区大家都喜欢米饭,不管是吃炒菜还是冒菜,串串和火锅都会叫上一碗来吃,所以米饭简直是大家离不开的一个东西。而老外的面包和米饭一样,可以配上肉肠配上黄油配上意大利面,真是很万能呐。那么顾名思义,面包板(BreadBoard)就是让我们配各种元件的板子了,在上面插电线,插电阻插开关插传感器都不会有问题。
小明看的若有所思,心中在想(若有所思和心中在想这两个词的意思一样吧。。):面包板好厚啊!表面是密密麻麻的插孔,内部又是什么构造呢?里面相通吗?一直说要在面包板上构建电路,到底该怎么构造呢?他接着开始看起了图片。

    为了了解面包板的构造,我们现在把最上面和最下面的两条横行算一个阵营,中间的一大块算一个阵营。
    为什么这么分呐?
    阵营1-横行
    在面包板最上面标着X那行内部用一条金属片连通(画着一条贯通的红线),它就像一条下水道,你从数字5丢瓶子进去,待会就能从数字25看到那个瓶子,,标着Y的那行也是同样道理。
    如果你问从X行丢的瓶子能不能飘到Y呢?当然不可以了,傻孩子,一块面包板才几块钱,怎么可能做的这么复杂呢?
    如果你继续问很贵的面包板是不是就可以做的很复杂让X,Y相通呢?记住,,钱不是万能的,,其实X,Y不相通不是因为造价,,它们有各自的作用,一条用来接电池正极一条用来接电池负极,如果相通就短路了。
    阵营2-竖行
    中间剩下那陀是阵营2,不同的阵营政策理念打死也不能一样。
    既然阵营1横向相通,阵营2就一定要反着来竖向相通,你看面包板上标着的英文字母,A到E内部是相通的,F到J内部是相通的。还拿下水道来作比喻:从A丢的瓶子飘啊飘啊就到E处喽。
    大家还知道大的阵营一定有内部矛盾,在E和F之间就有一条很深的沟渠导致它们没办法连通。想要从A到J一通到低?没门!
    暗度陈仓行不通的话就开始明修栈道喽。正大光明的拿一个电阻或一根电线一头接在E点一头接在F点,OK,A到J通过裸露于面包板上的电线一通到低了。
    事实上,E和F之间相隔的真正原因是为了避免短路,等我们需要用单片机在面包板上构建电路时再做详细解释,此时我们不用考虑这么多了。
使用面包板构建电路的实例下一节再讲,好了,我们继续解释其它疑难问题:
数据线与电线

    图片中5根线的前3根形状一模一样,中间柔软两头尖硬,这是专用的面包板线。它们通常一把一把的出售,每把有包括不同颜色不同长度的几十根线。
    黄色电线两端没有塑胶包裹的地方露出了许多细细的金属丝,这是家里常用的分股电线。
    而蓝色电线整条都硬硬的,裸露出的金属丝像针头一样,这是实心电线。
    面包板专用线结合了分股电线和实心电线的优点,既能方便弯曲又能够轻松插入紧实的面包板插孔。但是在做长距离的供电或数据传输时还需要用到普通分股电线。
    为了方便的区分电源传输线路和数据传输线路,我们会用不同颜色的电线构建不同作用的线路,例如使用红色电线(代表正极)和黑色电线(代表负极)构建供电电路,使用蓝色,黄色电线构建数据传输线路。
小明心里还是着急的想要看看面包板上的真正电路,所以他竟然都没看上面的文字,,,真让作者感觉难过啊!可是小明不管这么多,你难过关我屁事,我可是不想再看这么多罗嗦,好了,我要亲自动手试试看。
。。。。。。
。。。。。。
。。。。。。
(过了一天之后)

很抱歉小明不能和大家一起上课了,而照片里黑黑的那位就是热血互动青年小明,我可以告诉大家,他不是黑人,之所以这么黑是因为做实验时碰到了电线,,,
小明的受伤让我们明白了小心用电的哲理,,我想大家都不希望自己变成黑人,那么接下来就开始枯燥而又可以保命的电源知识之旅。
电源的准备
    理论上讲任何电源都可以帮助我们做互动实验,包括电视机插头接的那种220V交流电(可以让我们与互动说永别),由变压器(AC/DC转换器)提供的5V直流电(可以让我们有被蚂蚁叮的体验),手电筒电池提供的1.5V直流电(我的最爱)和不太常见的9V方型电池。
    这些电源可以帮助我们驱动大型机械,让震动电机运转(想想手机里那种),点亮LED(想叫它灯泡就叫吧,,)。但我们这一系列文章只是入门的介绍,所以请忘记常常幻想的在万人舞台上帅气表演互动的念头吧,接下来我们只用低电压的电源来做点亮电灯泡之类的“互动”。
    在动手前请去购买以下种类的供电装置:
    1,必须的1.5V电池两节。
    2,比较容易买到的输出电压范围为5V到12V,输出电流为500mA到1000mA的变压器。(带你的Arduino一起去,看哪个插口可以插到Arduino USB接口右边的哪个插孔里就买哪一个,,价格10到20块)
    3,Arduino用的USB数据线。(还是带你的Arduino一起去,看哪种插口可以插到Arduino USB口就买哪一条。价格为5到10块)
    4,可以买到就买买不到就不要的9V长条电池和电池扣。
如果以上工具准备完毕,就请进入下一章节开始第一次的实际操作吧!
乐乎设计,乐乎生活~

TOP

艺术系的互动入门-8-Flash实例:吹个球-A:模拟输入与传感器
Jan 21st, 2008 by Whale

想必大家期待用Arduino,传感器(Sensors)和Flash配合创作期待了很久,所以本节就开讲此次创作的硬件部分:Arduino的模拟输入端口(Analog In)和传感器(Sensors).
首先需要了解怎么为Arduino安装驱动和如何写入程序。请参看以下任一教学:
Arduino.cc-Windows-en
Arduino.cc-Mac OS X-en
Arduino.cc-Linux-en
Arduino乐园-Windows-中文
Arduino的模拟输入端口(Analog In)
用鼠标点来点去就能如我们所愿打开电影播放器和移动游戏人物,它就是电脑的输入设备;同样,控制人物的手柄是游戏主机的输入设备,输入信息的键盘是手机的输入设备,让电流通过的开关是灯泡的输入设备;它们的目的都一样:控制目标物体的运作。
Arduino作为一块裸体的电脑主机怎么能够没有输入设备呢?况且本节还需要用到模拟输入。
模拟输入是什么呢?
如果你用过Wacom的手写板,一定留意到在Painter,Flash和Photoshop这些软件中,线条的粗细会随你用力的大小而改变;这是Wacom手写板的512阶或1024阶压力感应功能。Arduino同样支持类似的输入方法,例如感受温度的高低变化,空气湿度的高低变化,光线的明暗变化以及物体的远近变化。这些有变化的输入都叫做模拟输入,要让Arduino支持模拟输入,就需要把相应的传感器接入Arduino的模拟输入端口(Analog In),如图:

模拟输入有什么用呐?
因为家里放了太多电器,所以我很想要一条凶狠的看家狗帮忙防盗,可是养狗太费钱费力,想来想去还是做一条电子狗好了。所以我就在Flash中做了一个动画,动画一开始是一条狗在远处安静的卧着,动画的结尾是它跑近呲牙咧嘴的乱叫。(马上就到模拟输入,,)
我把能够测量物体距离远近的超声波传感器接上Arduino,再接上电脑运行动画后把它们都放到门外。测试测试效果真不错:当我离它们很远的时候,那条狗安安静静的一动不动,可是当我靠近它们,它就开始大吼大叫,靠的越近那家伙叫的越厉害。
当然了,第2天开门的时候发现它们都不见了,所以说电子狗还是不如真的好呐,,,
模拟输入的原理说明?
照例,更加专业的解释请点这里
传感器(Sensors)
Arduino的模拟输入设备可以是各种各样的传感器,下图由左至右依次是感受湿度变化的湿度传感器,感受明暗变化的光照传感器(也叫光敏电阻),感受距离变化的超声波传感器。

当我们需要做一个虚拟气球时,湿度传感器就派上了用场,例如把它藏在显示器边框的某个位置后引一位漂亮的学妹过来说:嗨,学妹来看魔术喽。于是在你对传感器吹气的同时,显示器中的气球也愉快的起飞,此时,学妹一定会开始流露出敬仰的神情。相信我,我的毕业创作就是用湿度传感器吹起玛丽莲 梦露的裙子,她让我赢得了无数美丽学妹的赞美和合影留念以及无数个联系电话。。。。所以说互动真的很有趣,,,o(∩_∩)o
我把左方的两个传感器叫做裸体传感器,因为它们光秃秃只有两条金属脚伸了出来(一条接正极一条接负极),右边的因为是把超声波传感器放置在电路板上所以叫模块,它有三只脚,除了接正负极之外还有数据接口,要插入Arduino模拟输入端口的正是此数据接口。裸体传感器没有数据接口怎么接呐?放心,裸体传感器的功能和模块传感器一样,只是此时需要面包板大显身手喽,请看:
传感器与Arduino连接图示
(注:连接所用电阻阻值为220欧姆)

其实上图里的湿度传感器接法很容易出事,,,它的两只脚间距小,在面包板上插拔几次估计就断喽。我们可以把两条面包板线接在传感器的引脚后再插入面包板,如下图:

硬件搞定之后,下一节开讲软件配置,离实例越来越近喽。(*^__^*)
乐乎设计,乐乎生活~

TOP

艺术系的互动入门-9-Flash实例:吹个球-B:Arduino与Flash通讯程序Jan 25th, 2008 by Whale

搞定硬件之后本节开讲Arduino与Flash通讯程序Serial Server和Tinkerproxy的使用方法。
如果Arduino是牛郎,Flash是织女,那么Serial Server或者Tinkerproxy就是鹊桥;接下来就开始搭建鹊桥帮助牛郎织女相会的拉皮条之旅。
理论上使用Serial Server或者Tinkerproxy任一程序就能让Arduino与Flash完成通讯,但它们在不同操作系统下表现不一,为了兼顾Windows和Mac用户就介绍两个喽。

Serial Server配置
Dan O’SullivanSerial Server程序需要运行在JAVA环境,所以无论Windows或Mac,都要先构建JAVA运行环境(JRE)。
Windows XP
    1,下载并安装JAVA运行环境(JRE)。听起来很复杂,实际上只用下载程序后点击安装。
    点击下载JRE
    2,下载Serial Server程序压缩包并解压,其中的ss6.jar就是Serial Server应用程序,暂不可用。
    >>点击下载Serial Server.zip
    3,在解压后的文件夹里依次点击进入serialserver/rxtx_drivers/Windows/,可以看到RXTXcomm.jar和rxtxSerial.dll文件。
    a,把RXTXcomm.jar放入C:\Program Files\Java\j2re1.4.2_04\lib\ext
    b,把rxtxSerial.dll放入C:\Program Files\Java\j2re1.4.2_04\bin
    4,点击运行ss6.jar。修改Socket左方数字为9001,修改Serial为你的Arduino对应COM端口,修改OK右方数字为9600。如图:

怎么才知道Arduino对应COM端口是哪一个呢?先连接Arduino到电脑,然后在“我的电脑”图标上点击鼠标右键,在弹出菜单里选择“属性”-“硬件”-“设备管理器”-“端口(COM和LPT)”,其中的“USB Serial Port()”括号中的就是对应端口。
现在配置完毕,打开对应的Flash就可以开始通信喽(在文章结尾处提供)。
Mac OS X
    1,Mac系统通常自带JAVA程序无需下载。
    2,与Windows XP下相同。
    3,在解压后的文件夹里依次点击进入serialserver/rxtx_drivers/mac/,可以看到librxtxSerial.jnilib和RXTXcomm.jar文件。把它们全部放入/Library/Java/Extensions/
    4,点击运行ss6.jar。修改Socket左方数字为9001,Serial为你的Arduino对应COM端口,OK右方数字为9600。
    怎么才知道Arduino对应COM端口是哪一个呢?在连接Arduino到电脑后运行ss6.jar,Serial右边下拉框出现的第一个就是,名字格式大概为/dev/tty.usbserial-A4001bKo之类,不尽相同。如图:

现在配置完毕,打开对应的Flash就可以开始通信喽(在文章结尾处提供)。
怎么?在Mac里不能通信?瞧瞧图里Serial的下面显示为Bad,看来这个程序在Mac系统中又出了状况。我们可以用另外一个程序Tinkerproxy做替补。
—————————————————————————————————————————-
Tinkerproxy
虽然Tinkerproxy在Mac平台中表现完美,但Tinkerproxy的Windows版本在有些电脑上会有数据传输延迟问题,在作者要求下还是两个版本都做介绍,说不定你就刚好适合用它。^_^
Windows
    1,点击下载tinkerproxy.zip for Win
    2,连接Arduino到电脑,解压tinkerproxy.zip后打开程序(不要删除文件夹中的MFC71.dll),修改Network Port为9001,Serial Port为你的Arduino对应端口,Speed为9600,点击Start开始运行程序,此时如果勾选Debug选项,信息框中将连续显示数值。如图:

Mac OS X
    1,点击下载Tinkerproxy for Mac
    2,连接Arduino到电脑,解压Tinkerproxy.zip后打开程序,修改Network Port为9001,Serial Port为你的Arduino对应端口,Speed为9600,点击Start开始运行程序。如图:

—————————————————————————————————————————
小小的尝试
Try before buy,通过A,B两小节你完成了对软硬件的配置。下面的Flash文件可以帮忙做成果测试:Flash文件的详细讲解下一节开始。
SensorTest0.1.swf
下载之后你会遇到一个简单的Flash文件安全设置问题,试试自己解决,当然下一节也会对它做讲解。
(*^__^*)
乐乎设计,乐乎生活~

TOP

艺术系的互动入门-10-Flash实例:吹个球-C:互动开始

Jan 28th, 2008 by Whale

湿度传感器+Arduino+Flash+吹气


一直在看教学的C小姐按照章节A指示接好电路插上电脑;用章节B写的方法配置Arduino和Flash通讯用的鹊桥,把从章节B下载来的Flash文件打开,互动开始喽。
咦,没反应,,,苦恼的C小姐看着章节A检查电路是不是没有接对,还换了新的传感器,一切照旧。难道是鹊桥问题?原来在配置Serial Server时把RXTXcomm.jar和rxtxSerial.dll放错了位置。
但是纠正完毕后Flash依然巍然不动,人品出了问题吗?
nonono,此次失败的责任全在我,经常写着写着就跑神的半吊子作者。
其实Arduino这台小小的裸体电脑主机,一直在安安静静的等着我们告诉它:你好啊,可爱的Arduino,请从标有0的模拟输入端口读取传感器数据好吗,再把它发给Flash,我们需要用这个数字做互动,谢谢。
那么就请把下面的代码复制到Arduino烧写程序中上传给Arduino吧:

int firstSensor = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
firstSensor = analogRead(0)/4;
delay(10);
Serial.print(firstSensor, DEC);
Serial.print(0, BYTE);
delay (50);
}

看不懂没有关系的,知道这些代码是在帮助我们和Arduino做沟通就好。
上传完毕再打开Flash还是有问题需要解决。
事实上当你第一次打开下载来的那个Flash时就会有一个弹出窗口请你进行安全设置,点击“设置(S)”后弹出安全设置网页。看图先:

点击“设置(S)”后弹出安全设置网页,依次点击A进入安全设置页面,勾选B处的始终信任,点击C处开始编辑位置,如果你的Flash文件在D盘,就选中整个D盘。当D处出现了你的硬盘盘符后设置完毕,此时可以关闭网页喽。

现在关闭刚刚打开的Flash文件,再打开,世界应该恢复了原貌,Flash中会有一个黑色球随传感器的数值变化而变大变小。互动成功。
这就是互动??吹个球就是互动?天呐!这是哪门子江湖医生教的互动啊。
乐乎设计,乐乎生活~

TOP

艺术系的互动入门-11-Flash实例:吹个球-D:代码详解Jan 31st, 2008 by Whale

吹球可真是一个简陋的范例呐。
虽然用传感器,Flash做创作没用多高超的互动技术,但想想看技术也不是决定作品成功与否的关键因素。写实派画家和抽象派画家就没有比较的意义嘛(其实可以比比收入)。而用不同的传感器可以搞出很多花样:用红外传感实现定点跟踪,使用超声波测量距离,压力传感器感受力度等等。有了它们做形式上的辅助技术再差也不怕了。
接下来要对Flash范例中的代码做做说明,看看运作原理,再动动手尝试。理论而言这一节需要基础的Flash绘画和代码写作经验,如果没有也OK。因为这里有两种弥补办法:1,请查看在前几节里推荐的那套又有趣又简单的台湾Flash教程。2,请身边的Flash使用者帮忙写代码完成(这些代码即使是Flash初学者也会觉得毫无挑战性)。
————————————————————————————————————————–
本节范例下载: arduinoVSflash_1.fla(使用Flash 8.0或更高版本打开)
代码详解
下载文件后用Flash 8.0或更高版本打开,在菜单栏中依次选择”窗口”,”动作”调出显示代码的窗口。鼠标点选code图层后代码出现。
这一陀代码中只需要注意中文标注的地方,如下:
//实例演示开始—————————————————-
//以下为两个实例,1为改变ball的透明度,2为改变ball的大小
_global.ArduinoInt = data;
//首先把从arduino传来的数据赋予ArduinoInt
ball._alpha = ArduinoInt;
//1,改变ball的透明度。它的透明度由ArduinoInt的数值大小决定。
ball._xscale = ball._yscale=_global.ArduinoInt;
//2,改变ball的大小。它的大小由ArduinoInt的数值大小决定。
//实例演示结束—————————————————-
看到在一大陀代码中需要关注的只有短短3行是不是大舒一口气?更开心的在下面,我们来一行一行解释.
第1行:
_global.ArduinoInt = data;
传感器的作用就是采集环境变化转化成我们需要的数值,也就是本行里的data。超声波传感器传来的远近是data,湿度传感器感受到的湿度变化也是data,所有传感器送过来的都是data,而我们的互动正是由data开始。
第2行:
ball._alpha = ArduinoInt;
读过初中英语就能看懂上面的单词,ball就是球了,视觉窗口上黑糊糊的那个;alpha是透明;ArduinoInt就是数据data。
结合在一起读读看:“球透明等于数值”。是不是很不通顺?动用情商理顺语句后就是:“球的透明度等于传感器的数值”。通了。
也就是说,在你用手捏湿度传感器时,手上的湿度越高,传感器采集的数值越高,球的透明度数值就越高。如果希望透明度不要改变的太快,可以这么写代码:
ball._alpha = ArduinoInt/2;
ArduinoInt变成了ArduinoInt/2,即是说数值减半,想要获得之前的透明度就要让自己变的更加湿润才行。。。。
第3行:
ball._xscale = ball._yscale=_global.ArduinoInt;
ball当然还是球;scale是管拉伸缩小的;合在一起读:“小球x方向的拉伸范围与y方向的拉伸范围都由传感器的数值决定”。在初中数学课上我们就学过,x代表横向y代表竖向。是不是又通了?
试试看把代码改写成以下是什么效果:
ball._xscale = ball._yscale=_global.ArduinoInt/2;
第4行:
ball._x= ball._y=_global.ArduinoInt;
完成上面的3行学习就有奖励,把这行特别赠送的代码复制进去看看效果吧。
把声音和更丰富的动画与传感器数值结合起来的例子?
看你的了,,,
—————————————————————————————————————————
了解了Arduino与Flash的沟通方法后,接下来要做的就是开学Flash动画制作和Flash代码(Action Script)编写,掌握了它们才能让灵感变为作品,在初学互动的此时不必计较更高级的技术,请多多发挥更加珍贵的灵感吧。
“Flash实例:吹个球的讲解”也到此结束,文章不通顺的地方要靠大家留言指出了,谢谢~
^_^
湿度传感器+Arduino+Flash+水

[flash] http://www.youtube.com/v/-A0XMNqpdGg&color1=0xb1b1b1&color2=0xcfcfcf&fs=1

[/flash]
乐乎设计,乐乎生活~

TOP

艺术系的互动入门-12-物理设备交互-Servo马达

Mar 4th, 2008 by Whale


几周前因为在PC上安装OSX系统,沮丧的把所有画过的Arduino和电子元件源文件完稿统统弄丢了。但是自从昨天和可爱的高中萝莉以及正太们一起开学新托福后心情有了好转,这里继续开动。^_^

之前写的例子都需要连上电脑与软件配合,但很多时候我们想要做小巧的脱离电脑的作品,比如由马达带动的自动浇花装置,装在厨房感应老鼠活动自动播放猫叫声音的播放器等等等等。
想想看,之前不就是用USB线把数据传给电脑里的软件控制动画运作吗。那么抛开USB数据线,改用Arduino身上的输出端口(out)做数据传输就能脱离电脑喽。虽然都是传输数据,但它们有非常大的区别,连接电脑是控制软件,连接电子设备是操控这个世界里真实存在的物体。拍一拍手灯光和音乐就自动启动外带礼花狂喷,是不是很帅?黑客帝国来了!!no,no,还没这么厉害,其实更像楼道里声控灯的升级版。
输出端口
数据可以由0到13的任意一个或多个端口传给要操控的电子设备,下面图里就有伺服马达同志(RC Servo Motor)和电位计(Potentiometer)同志,它们两位正准备开始热情而诚挚的数据交流。而Arduino同志明显没有以前好看,请别介意,这是好不容易从游戏机用存储卡里找回的最早备份版本。

连接方法
从Arduino的5V供电口和GND接地口分别引出红黑两条线到面包板,之后分别引出两组供电线路到电位计和伺服马达,完成供电回路的组建。最后连线电位计的数据输出端口和Arduino的模拟输入端口0(黄色电线),再连接Arduino的数字输出端口2和伺服马达的输入端口(黄色电线)。完工。
现在为Arduino写入控制程序吧:


(以下代码出自Tom Igoe的网站:http://www.tigoe.net/pcomp/code/category/code/arduinowiring/31
/*
Servo control from an analog input
The minimum (minPulse) and maxiumum (maxPuluse) values
will be different depending on your specific servo motor.
Ideally, it should be between 1 and 2 milliseconds, but in practice,
0.5 - 2.5 milliseconds works well for me.
Try different values to see what numbers are best for you.
This program uses the millis() function to keep track of when the servo was
last pulsed. millis() produces an overflow error (i.e. generates a number
that’s too big to fit in a long variable) after about 5 days. if you’re
making a program that has to run for more than 5 days, you may need to
account for this.
by Tom Igoe
additions by Carlyn Maw
Created 28 Jan. 2006
Updated 7 Jun. 2006
*/
int servoPin = 2; // Control pin for servo motor
int minPulse = 500; // Minimum servo position
int maxPulse = 2500; // Maximum servo position
int pulse = 0; // Amount to pulse the servo
int lastPulse = 0; // the time in milliseconds of the last pulse
int refreshTime = 20; // the time needed in between pulses
int analogValue = 0; // the value returned from the analog sensor
int analogPin = 0; // the analog pin that the sensor’s on
void setup() {
pinMode(servoPin, OUTPUT); // Set servo pin as an output pin
pulse = minPulse; // Set the motor position value to the minimum
Serial.begin(9600);
}
void loop() {
analogValue = analogRead(analogPin); // read the analog input
pulse = (analogValue / 10) * 19 + 500; // convert the analog value
// to a range between minPulse
// and maxPulse.
// pulse the servo again if rhe refresh time (20 ms) have passed:
if (millis() - lastPulse >= refreshTime) {
digitalWrite(servoPin, HIGH); // Turn the motor on
delayMicroseconds(pulse); // Length of the pulse sets the motor position
digitalWrite(servoPin, LOW); // Turn the motor off
lastPulse = millis(); // save the time of the last pulse
}
}
原理说明
图中右下脚的电位计(Potentiometer)在收音机上很常见,这种可变电阻通常被拿来做控制音量的调节器用,而本例子中转动电位计产生的效果与音量无关,想看实际效果就请自行组装吧。
本例中所用电位计(Potentiometer)转动角度约为180度
阻止变化范围待测
注意事项
本例中,USB供电量不足以供应伺服马达的需要,并时常会因为供电不足导致Arduino的反复重新启动,所以务必使用外接电源为Arduino供电。
to be countiue…
乐乎设计,乐乎生活~

TOP

有空好好看看,还是蛮有意思的。。。
乐乎设计,乐乎生活~

TOP

http://blog.arduino.cn/

中国关于arduino的一个博客。
乐乎设计,乐乎生活~

TOP

发新话题