- 浏览: 143518 次
- 性别:
- 来自: 广州
-
文章分类
- 全部博客 (172)
- java (172)
- c# winform 关于窗体最大化时的是否全屏效果与是否遮盖任务栏 (1)
- c# winform 只运行一个程序实例 (1)
- Shiro权限框架 (1)
- Java字节码(.class文件)的代码解析 (1)
- Hibernate、Spring和Struts工作原理及使用理由 (1)
- 基本PKG处理命令 (1)
- 最近写的代码的小结 (1)
- Dual Palindromes (1)
- 编译TortoiseSVN1.7源代码笔记 (1)
- Android项目代码混淆 (1)
- 关于就业叨咕几句 (1)
- Java重定向System.out和System.err (1)
- IHS与WAS集成插件静默安装 (1)
- 专题地图概述 (1)
- 关于MapXtreme2004附带Sample不能运行的问题 (1)
- SQL注入漏洞 (1)
- 回顾过去 展望未来(写给自己) (1)
- DB2认证考试经验谈(700&&701) (1)
- 今天用到了RM格式文件的分割工具RealProducer (1)
- 搜索引擎还是很有发展前途的 (1)
- 泰利德破解,实现学校机房免费上网 (1)
- Arduino 引言:移动互联外设传感展望 (1)
- c/c++ static 用法总结(三版本合一) (1)
- JQuery与xml的组合谈 (1)
- Android开发之消息处理机制(一)——Handler (1)
- Android开发之PopupWindow (1)
- 解析BitmapData.getPixel32()返回值因何不准确 (1)
- 关于Ext引用js的顺序问题 (1)
- Js事件大全 (1)
- 使用JavaFX2.0编写国际象棋游戏 (1)
- Hibernate/JPA常见异常分析与解决 (1)
最新评论
-
amcucn:
这排版看得
Shiro权限框架 -
WAMING5:
这也太紧凑了,眼看花了
Shiro权限框架 -
longzhun:
大虾 ,看得出你很懒啊!发个贴 这样子怎么看!!!
Shiro权限框架 -
swanky_yao:
活干的不细!!
Spring+Hibernate框架下Mysql读写分离、主从数据库配 -
饶首建:
不错,不过用处比较少吧
批处理设ip和dns
作者:mznewfacer (Wolf Geek) 时间:2011年 11月20日 转载需说明出处,谢谢
本人上学时学的都是软的,作为硬件白痴的我,还是决定接触些硬件吧,趁着现在有空。
其实想学点微控制器(Microcontroller)还是源于偶尔看到了国外<span style="font-family: verdana,arial,sans-serif;">Ye-Sheng Kuo, Sonal Verma, Thomas Schmid, and Prabal Dutta等人的hijiack项目,简要来说他们就是想</span><span style="font-family: verdana,arial,sans-serif;">通过设计的</span><span style="color: #313131;"><span style="font-family: Arial,sans-serif; font-size: 13px; line-height: 18px;">音频耳机硬件接口,来接受传感生活中的数字、模拟信号。这个方向未来一定是迫切的需要,我们已经看到了许多的应用,不管是sixsensth(虽然只是demo,两年多了也没传上去程序),iphone的</span></span>siri,android
的ADK,当然<span>Microsoft的kinect(也有与wp7的整合应用),很成功的Bump(不知微信的摇一摇何时能完美)。总之,人们需要与虚拟世界更多样的交互,我们需要的不仅仅是简单的鼠标、键盘、触摸屏,我们的生活中无时无刻都需要更直接的交互。天天喊着云计算,是啊,我们更需要更直接的收集生活中有意义的数据利用所谓(数据挖掘/机器学习/模式识别
, 这三者概念区别至今我笨的没搞清)来为我们生活的决策、联系,提供多种清晰的选择可能和服务。</span>就拿iphone来举例,如果像digifit ,<span>AliveCor这种应用能够快点有医疗标准出来,可以对收集的血压心电等数据采集后实时分析,建立动态家庭医疗监护网络,相信会挽救不少人的性命。多的不扯了,作为小白的我,要脚踏实地,从最基础的开始。</span>
<span> 回到hijiack项目,再简单说一下他们的设计思路,下图为系统架构图,</span>
<span style="white-space: pre;"><img alt="" src="http://hi.csdn.net/attachment/201111/21/0_1321875690YadB.gif" width="715" height="486"><br></span>
<span><span style="white-space: pre;"></span></span>
可以看到,从手机耳机端引出了四个线路,分别是左声道、右声道、公用信道信号、麦克风。右声道为能量收集电路(energy harvesting circuit)提供电源,左声道将手机输出的数据输入到微处理芯片。麦克风将微处理器的数据输入回手机上。手机和微处理器都采用了频移键控(FSK)调制解调器。具体的设计细节,请参考http://www.eecs.umich.edu/~prabal/pubs/papers/kuo10hijack.pdf。
以下是其简单的示波应用硬件搭建图:
<img alt="" src="http://hi.csdn.net/attachment/201111/21/0_13218551879g5O.gif" width="692" height="571"><br>
<span><span style="white-space: pre;"></span></span>
<span><br></span>
其中,微处理器是搭载了电阻式传感器的电位计,当电阻传感器改变时,我们会看到手机上变换的相应电压波形。这里使用的微处理器是德州仪器的MSP430F1611。
<span style="font-family: Arial,sans-serif; font-size: 13px; color: #313131;"> </span>
以下是他们项目的两个应用,左图为心电监护装置,右图为土壤湿度传感器。
[size=13px; color: #313131;]</span>
<span style="font-family: Arial,sans-serif; font-size: 13px; color: #313131;"><img alt="" src="http://hi.csdn.net/attachment/201111/21/0_1321856214n4uz.gif" width="585" height="217"><br>[/size]
<span style="font-family: Arial,sans-serif; font-size: 13px; color: #313131;"><br></span>以上就是他们做的移动传感项目,像这样的项目现在应该很多。当然,google也自从Android<span style="line-height: 17px; font-size: 14px;">3.1就引入了</span>Android Open Accessory Development Kit(ADK),它就是推荐了Arduino作为外设选择。
<span style="white-space: pre;"></span>Arduino目前的应用就很多,远程泡茶,触控门,无线监控小车都还比较有意思,最后我们来看看Arduino的hello
world 程序。
<span style="white-space: pre;"></span>1.首先,下载<span style="font-family: Georgia,'Times New Roman',Times,serif; color: #555555; line-height: 23px; font-size: 14px;">Arduino 0023,</span>解压后直接能够运行。
<span style="font-family: Georgia,'Times New Roman',Times,serif; color: #555555; line-height: 23px; font-size: 14px;"><span style="white-space: pre;"></span>2.</span>将arduino 控制器用USB接入电脑(这里还用不上电源供电)。
<span style="font-family: Georgia,'Times New Roman',Times,serif; color: #555555; line-height: 23px; font-size: 14px;"><span style="white-space: pre;"></span></span>3.安装驱动,安装成功后,会显示端口。
<span style="font-family: Georgia,'Times New Roman',Times,serif; color: #555555; line-height: 23px; font-size: 14px;"><span style="white-space: pre;"><img alt="" src="http://hi.csdn.net/attachment/201111/21/0_1321862317hJj8.gif" width="565" height="521"></span></span>
<span style="white-space: pre;"> </span>4.IDE上选择Tools->Board,控制器类型,在这里我用的就是Arduino Duemilanove Mega328。<br><img alt="" src="http://hi.csdn.net/attachment/201111/21/0_1321875281GsX3.gif"><br>
<span style="white-space: pre;"></span>5.配件安接
因为从原理图上可以看出13管脚与ATmega的引脚之间连接了一个1K的电阻,能够起到限流的作用,以保护二极管不被烧坏。发光二极管是有正负极性的,因此必须连接正确才能够让其正常发光。发光二极管腿比较长的一端是正极,需要接在Arduino数字I/O的13号管脚上;腿比较短的一端是负极,需要接在GND管脚上。
<span style="white-space: pre;"></span>6.程序部分
<span style="white-space: pre;"></span>好了,看看程序吧,
<span style="white-space: pre;"></span>
<textarea readonly name="code" class="cpp">const unsigned int LED_PIN = 13;
const unsigned int PAUSE = 1000;
void setup() {
// 引脚 13是大多数arduino板子上接LED灯的引脚
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH); // 打开LED灯
delay(PAUSE); // 等待
digitalWrite(LED_PIN, LOW); // 关闭LED灯
delay(PAUSE); // 等待
}</textarea>程序很简单,其中有两个函数setup()和loop()。setup()这个函数主要用来完成相应的初始化工作,在上面的例子中是将数字I/O的13号管脚设置为数字输出。loop()这个函数则是Arduino程序的主函数,相当于C语言中的main() 函数,一个Arduino程序要完成的主要功能都在该函数中实现,在上面的例子中是通过变换13号管脚的高低电平,并设置相应的延时,从而使发光二极管能够间歇性地不断亮灭。值得注意的是,HIGH时给LED灯供给5V电压,LOW则关闭。
<img alt="" src="http://hi.csdn.net/attachment/201111/21/0_1321864524te0N.gif"><br>
<br>
<span style="white-space: pre;"></span>7.上传用AVR-GCC编译后的程序到板子上,值得一提的是,编译后的文件,存储于C:\Users\newfacer\AppData\Local\Temp\build3206993456004941706.tmp目录下,
<span style="white-space: pre;"><img alt="" src="http://hi.csdn.net/attachment/201111/21/0_132186881981rM.gif"></span>
<span style="white-space: pre;"><span style="white-space: pre;"></span>打开</span>Blink.cpp可以看到,包含了"WProgram.h"的头文件,其在Arduino IDE\arduino-0023\arduino-0023\hardware\arduino\cores\arduino 目录下,具体如何调用编译器以及函数的调用关系,有兴趣的可以自己搭建源代码环境,当然win下Cygwin,Java JDK,和ant是必须的,源码在这里下载。
另外,相关配置参数的位置都在preferences.txt文件中,我的在C:\Users\newfacer\AppData\Roaming\Arduino文件夹下面。
<span style="white-space: pre;"></span>为甚么会这样,<span style="font-family: Verdana,Arial,Helvetica,sans-serif;"><span style="line-height: 17px; white-space: pre;">具体可以去看arduinoIDE\lib\preferences.txt 的内容说明,可以照着说明更改相关属性:</span></span>
<span style="font-family: Verdana,Arial,Helvetica,sans-serif;"><span style="line-height: 17px; white-space: pre;"><span style="white-space: pre;"><img alt="" src="http://hi.csdn.net/attachment/201111/22/0_1321962055zC4t.gif"></span></span></span>
<br>
你可以更改这个配置文件以修改相关IDE编辑器的字体,硬件的板卡类型,控制台输出等等属性,但是当Arduino没运行的时候,改了才不会有问题。具体为什么会这样,就只好请你去看IDE的源码了,这里就不做多余解释了。<br>
<br>
8.运行结果
<span style="white-space: pre;"></span>当上传程序成功后,会发现发光二极管立即闪了一下,表明bootloader正常工作了。接着再过一段时间,会看到发光二极管间歇性地不断亮灭,这就表明第一个Arduino程序已经成功地运行起来了。
<span style="white-space: pre;"><img alt="" src="http://hi.csdn.net/attachment/201111/21/0_1321870686G6o4.gif"></span>
<br>
面包板的连接也好弄,看下正负极别接反了,当led灯的阳极通过限流电阻与板子上的数字I/O口相连,数字口输出高电平时,led接通,发光二极管发出亮光。这里二极管负极接GND,正极接PIN 4, 中间要加个220欧姆,让二极管在正常范围工作。当然程序也就要重新改动LED_PIN=4,编译后重新上传。<br>
<br>
<img alt="" src="http://hi.csdn.net/attachment/201111/22/0_1321978677rLHA.gif" width="726" height="637"><br>
<span style="white-space: pre;"></span>后记:
如果觉得没玩够的,其实一个LED灯还能玩点东西,摩斯电码。易懂的对照表是二叉树的结构,如下图
<span style="white-space: pre;"><img alt="" src="http://hi.csdn.net/attachment/201111/21/0_1321872611YKig.gif" width="720" height="257"></span>
<span style="white-space: pre;"><span style="white-space: pre;"></span>左子树</span>为短.,右子树为长-。例如Wolf 为
<span style="white-space: pre;"><span style="background-color: rgb(249,249,249);"><span style="background-color: rgb(249,249,249);"><span style="background-color: rgb(241,241,241);"><span style="background-color: rgb(241,241,241);"></span></span></span></span></span>
<span style="white-space: pre;"><span style="background-color: rgb(249,249,249);"><span style="background-color: rgb(249,249,249);"><span style="background-color: rgb(241,241,241);"><span style="background-color: rgb(241,241,241);"></span></span></span></span></span>
· — —— — —· — · ·· · — ·
我们可以通过设置LED灯亮的长短来表示不同的字母。
附加资料:
1.对自己微控制器硬件详细接口感兴趣的,可以到官网上下载相关文档,我的板子在这里,其他的也可以在相应的地方找到。<br>
2.Arduino与Processing的接口:<a class="urllink" href="http://arduino.cc/playground/uploads/Interfacing/processing-arduino.zip" rel="nofollow" style="border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(0,151,156); padding-bottom: 0px;">processing-arduino.zip</a>,processing在这就不多介绍了,其支持
Java 语言架构,创始人Ben Fry,Casey Reas都是mit media laboratory aesthetics + computation group Laboratory的成员,链接里相信有不少资料。
<span style="white-space: pre;"></span>
发表评论
-
Hibernate/JPA常见异常分析与解决
2012-02-07 17:24 15251. ClassNotFoundException: ... -
使用JavaFX2.0编写国际象棋游戏
2012-02-07 16:24 1098前面发布了不少Javafx2的教程,不觉手痒,想尝试一 ... -
Js事件大全
2012-02-04 15:34 794一般事件 事件 ... -
关于Ext引用js的顺序问题
2012-02-02 15:49 774今天自己搞了个ext的helloworld,所需的包都 ... -
解析BitmapData.getPixel32()返回值因何不准确
2012-02-02 12:29 1012<div style="widt ... -
Android开发之PopupWindow
2012-01-31 13:48 1690<h1>Android开发之PopupWi ... -
Android开发之消息处理机制(一)——Handler
2012-01-11 15:19 1177<h1>Android开发之消息处理机制( ... -
JQuery与xml的组合谈
2011-12-21 17:18 812JQuery与xml的组合谈 今天谈的是XML,学ja ... -
c/c++ static 用法总结(三版本合一)
2011-12-21 10:34 822<span style="&qu ... -
泰利德破解,实现学校机房免费上网
2011-12-20 13:58 956泰利德破解,实现学校机房免费上网<br> ... -
搜索引擎还是很有发展前途的
2011-12-19 11:49 978相信大家已经听说,在头几天,搜狐推出了一个专业搜索门户 ... -
今天用到了RM格式文件的分割工具RealProducer
2011-12-19 09:19 722项目要加一些视频文件,这些视频都是几个老师对数据结构课 ... -
DB2认证考试经验谈(700&&701)
2011-12-16 17:17 1123很多人都通过了D ... -
回顾过去 展望未来(写给自己)
2011-12-15 16:19 1509本来想用“昨天今天明天”做标题来着,但是人家本山大叔说 ... -
SQL注入漏洞
2011-12-15 12:19 725CSDN上的ASP.NET电子杂志下载下来看,就看到了 ... -
关于MapXtreme2004附带Sample不能运行的问题
2011-12-15 10:54 695</span> -
专题地图概述
2011-12-14 12:49 861<p class="MsoNorma ... -
IHS与WAS集成插件静默安装
2011-12-14 12:04 970<span style="col ... -
Java重定向System.out和System.err
2011-12-13 14:49 1182<div>继承PrintStream类: ... -
关于就业叨咕几句
2011-12-13 11:04 649公司开始去各个学校开宣讲会了,这让我想起又到招聘的季节 ...
相关推荐
Arduino教程:Arduino图形化编程软件-ArduBlock
项目:超声波——基于Arduino的超声波距离测量(LCD1602显示) 设计;proteus 仿真(版本8.9-可提供软件安装包) 主控:Arduino UNO 外设:超声波,LCD1602 程序:Arduino 本条包括:proteus仿真文件 + Arduino代码
针对Arduino 硬件的优化的FreeRTOS源码。 This is a fork of Richard Barry's freeRTOS, optimised for the Arduino AVR devices. ## Compatibility 兼容下面的Arduino * ATmega328 @ 16MHz : Arduino UNO, Arduino...
项目:红外循迹避障小车模拟——基于Arduino uno的红外循迹,超声波避障,L298N驱动小车模拟 设计;proteus 仿真(版本8.9-可提供软件安装包) 主控:Arduino UNO 外设:L298N,电机,红外,超声波 程序:Arduino
ArduinoJson是一个用于Arduino和IoT(物联网)的C ++ JSON库。 特征 支持单引号作为字符串定界符 与和兼容 高效的 对字符串进行重复数据删除 多才多艺的 支持和 支持和 支持和 支持定制转换器 便携的 可用于任何C...
软件:arduino 1.8.16硬件:Mega 2560 Pro、SHT40模块、Micro SD卡读写模块、Micro SD卡说明:①使用单片机的模拟口模拟采集传感器数据和IIC采集SHT温湿度传感器数据;② 将传感器数据转为JSON格式;③将JSON数据...
Arduino是一个开源电子原型平台,包括一套硬件(基于微控制器的电路板)和软件(Arduino IDE,集成开发环境)。Arduino因其易用性、灵活性和开源特性而广受欢迎,特别适合于快速原型设计、艺术安装、教育和爱好者...
### Arduino:快速入门指南 #### 一、引言与背景介绍 Arduino 是一款开源电子原型平台,被广泛用于教育、业余爱好者项目以及专业产品开发之中。它由一个微控制器板和一套开发工具组成,旨在让电子项目的开发变得...
基于步进电机控制的Arduino程序源码:多轴联动梯型加减速控制与使用感受分享,步进电机 多轴联动 梯型加减速控制 arduino程序源代。 使用感受:加减速平滑稳定 本工程采用arduino平台 SYM32可以移植 单片机:arduino ...
Arduino超声波距离测量项目:基于LCD1602显示的距离传感器设计与Proteus仿真实现,项目:超声波——基于Arduino的超声波距离测量(LCD1602显示) 设计;proteus 仿真(版本8.9-可提供软件安装包) 主控:Arduino UNO ...
window光速安装Arduino拿走不谢 Arduino简介 Arduino是一个开源的电子原型平台,基于易于使用的硬件和软件。它旨在让没有电子背景的人也能够快速创建互动式项目。 Arduino平台包括以下几个部分: Arduino电路板...
在本篇文章中,作者详细地介绍了如何使用MATLAB来连接和控制Arduino开发板,并且特别强调了MATLAB在算法开发、数据可视化、数据分析以及数值计算中的应用价值。同时,文章还着重介绍了Arduino作为开源硬件的优势及其...
基于Arduino UNO的超声波距离测量与LCD1602显示系统——Proteus 8.9仿真实现,Arduino超声波距离测量项目:基于LCD1602显示的Proteus仿真设计与实现,项目:超声波——基于Arduino的超声波距离测量(LCD1602显示) ...
Arduino开发环境是为电子爱好者和工程师提供的一种便捷的硬件编程平台,它允许用户通过简单的Arduino编程语言和IDE(集成开发环境)对各种Arduino板进行控制和编程。在本案例中,我们关注的是专为Windows操作系统...
在"Arduino实践:arduino的完整实践代码"中,你将深入到Arduino编程的世界,了解如何利用Arduino Uno板来实现各种功能。这个压缩包可能包含了多个示例程序,帮助你学习基础编程技巧和算法应用。 1. **Arduino Uno**...
这个“Arduino::high_voltage:Arduino的东西-大多只是乱七八糟”标题可能暗示着一个集合,包含了各种各样的Arduino项目或实验,可能涵盖从基础到高级的各种技巧。 在描述中,“乱七八糟”可能意味着这个压缩包包含...
Arduino是一款开源电子原型平台,广泛应用于物理计算、嵌入式系统设计、物联网设备以及创意DIY项目。"arduino-1.8.13-windows.zip"是针对Windows操作系统的Arduino IDE的安装包,版本号为1.8.13。这个压缩包包含了...