显示标签为“IDE”的博文。显示所有博文
显示标签为“IDE”的博文。显示所有博文

2012年6月21日星期四

一起學Arduino 之 數位感測器使用

上一章我们学习了模拟传感器的使用及模拟数字信号的对比,此篇我们一起看看数字传感器。
一、概述:数字传感器一般被定义为输出信号为数字量(或数字编码)的传感器,作者经常接触到的数字传感器有红外壁障传感器,数字温度传感器DS18B20,黑白循迹传感器,人体热释红外传感器,超声波传感器等等,现在以红外避障传感器作为道具,说明数字传感器的使用。
二、红外避障传感器说明:此次红外避障传感器是用555定时器整形输出38K方波,并用红外LED发射,当红外接收器接收到返回的红外方波信号时就输出低电平,没有接收到返回的方波信号时输出高电平。这样就可以检测红外避障传感器前方是否有障碍物。
三、例程说明:
    第一步:打开arduino的IDE,打开示例程序
1.png

    第二步:编译程序,下载程序到arduino

QQ截图20120610231501.png

    第三步:打开串口显示
psb2222.jpg

   PS:红外避障传感器常用于做互动,也用于很多生活中的应用,比如厕所里的自动冲水功能,也可以用来做自动避障机器人小车等

2012年6月20日星期三

一起學Arduino 之模擬感測器使用

在上几节中,我们一起了解了如何使用IDE,如何处理IO,此篇和大家一起学习模拟传感器的使用。
所谓模拟传感器是指传感器通电过后返回的是一个模拟的数值,那我们先了解下数字信号和模拟信号的区别:
一、模拟信号
    模拟信号是指信息参数在给定范围内表现为连续的信号。 或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。比如正弦函数、指数函数等。 从自然界感知的大部分物理量都是模拟性质的,如速度、压力、温度、声音、重量以及位置等都是最常见的物理量。
二、数字信号
    数字信号指幅度的取值是离散的,幅值表示被限制在有限个数值之内。二进制码就是一种数字信号。二进制码受噪声的影响小,易于有数字电路进行处理,所以得到了广泛的应用。
通俗的说:数字传感器就产生0 1信号(此0与1是指高低电平形成的矩形波)
而模拟传感器是通过输出一个线性变换的电平信号(如通常的正弦波)
      数字信号与模拟信号的对比: 

4.png 

下面就通过一个例程来介绍光敏传感器(模拟传感器):
1.jpg


   第一步打开IED,找到例程AnologReadSerial,本例程用来读一个模拟传感器的读数字,然后用串口对输出值进行监视。

2.jpg


   第二步:下载程序到arduino主控板,传感器输出端接到A0,然后连接正负接线端,打开串口便可观看测出的数据。 
psb.jpg

PS:arduino主控板上A0---A5是指ADC输入,所谓ADC值模数变换器,将读入的模拟值进行处理,将模拟数转换为数字,便于用户对数据进行处理,因为atmea328ADC是一个10位的寄存器,2的10次方=1024,从1~1023所以当arduino读入值为默认的电压最大值5V时,analogRead读到的值就是1023.

2012年6月15日星期五

一起學Arduino 修改點燈程式


IDE介绍

修改代码前还是先介绍下IDE的界面。

image002.jpg


从上而下分别是:
红色区域是标题栏,显示的是现在代码的文件名,“|”跟随的是IDE的版本号。
黄色区域是菜单栏,这个里面的东西在具体用的时候具体说下里面的内容。
白色区域依次是编译,下载(包含编译过程),新建,打开,保存。最右边的是串口调试器,用法在以后会说到。
黑色区域是文件标签栏,新建多个程序后会在这里显示不同的文件标签。
绿色区域是代码区,编写代码就在这里面进行。
紫色区域是编译,下载状态指示。(例如编译成功,编译失败,下载中,下载成功,下载失败)
灰色区域是编译,下载进度的记录以及编译错误的提示。
最后褐色区域就是显示板子的类型以及连接的端口号。

读写

想修改代码,必须要读懂代码之前是干啥的,怎么工作的,编写的时候要遵守什么样的规则,这样改出来的代码才能用。

SO 开始读代码。
先加载例程Blinks。看代码。
C语言中/**/ 以及//表示的是注释。
/ /     注释这一行//后面的文字
/**/   注释包括在中间的一段话
英文的注释不看也罢。去掉注释后代码就变成了:

void setup() {               
  pinMode(13, OUTPUT);   
}
void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}
Arduino的程序主要包括两个部分。
void setup() {}
void loop() {}
其他的代码都是在{}花括弧里面填充的。
Setup里面放的是初始化程序。
Loop实际上是循环体,会一遍又一遍的执行里面的代码直到死循环或者停电。
两个框架缺一不可。
就像吃火锅一样,先要将水装进锅里,然后打开煤气开关,点火。这些个动作就是初始化只要做一次就够了。
然后就开始添菜,熟了吃了,再添。一直循环。直到你吃饱了不想再吃了(完成了你的操作要求)或者煤气烧完了(没电了)或者有事走开(情人约会)。好吧。。。我会承认我是个吃货么?

接着语句分析:
  pinMode(13, OUTPUT);
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
有点基础的很容易看出是三个函数(带参数的)
pinMode(pin, mode)//设置指定引脚为输入或者输出模式
pin:您要设置其模式的引脚编号(数值范围0~13),LED的引脚就在13号。
Mode:数值类型 INPUT OUTPUT 设置输入或输出模式
(关于输入输出模式在以后的章节将会详细解释,现在你只要知道要想驱动外部电路,那肯定是要用输出模式啦)
digitalWrite(pin, value)// 设置指定引脚输出高电平或者低电平
pin:您要设置其模式的引脚编号(数值范围0~13),LED的引脚就在13号。
value: 数值类型HIGH  LOW 设置高电平5V(3.3V板子为输出3.3V)输出活低电平输出(0V
以上两个函数的pin值可以用变量传递。(先别问什么是变量。到了自然会讲)
delay(ms)//延时指定毫秒数
ms:数值表示范围0~4294967295,表示延时多少ms(1s=1000ms 1秒=1000毫秒)
那么,如果我想加快延时,1秒闪烁一次要怎么改?
对,就是将delay(1000)改成delay(500)

image007.jpg
点下载。。。。。。
好了, 你可以看到灯闪烁的频率加快了。。
修改你们的板子为亮250ms,灭750ms。~展现你们技术的时候到了。

记得保存你们修改后的代码。养成备份的好习惯。
1.0保存的文件类型是*.ino哦,看到这个就要知道是arduino的程序了。
在以前的版本*.pde格式。

2012年6月13日星期三

Arduino教程—點亮你的第一個燈

一.设置你的IDE工具
先连接上板子这个不用说了,运行arduino.exe软件,你将见到如下的启动界面:

image002.jpg 
等一会儿就能看到IDE界面了。
image004.jpg 

你需要做的第一件事就是先设置板子类型以及串口号。
如下图,设置板子类型,tools工具=》board板子类型=》Arduino duemilanove w/ ATmega328(Zduino的兼容类型)
image006.jpg 


然后设置串口号(记得之前在设备管理器看到的串口号吧,选择他)
在tools工具=》Serial Port串行端口=》选择你的COM*

image008.jpg 
设置完后可以在右下角紫色圈内看到板子类型以及串口号。


二.加载例程
在file菜单=》Examples例程 =》Basics基础=》blink闪灯
image010.jpg 

加载完例程后可以看到串口中间多了代码,先不管他,点下载按钮
image012.jpg 

IDE对代码进行编译
image014.jpg 
红色区域内表示正在编译中,右边的紫色区域表示编译的进度。
image016.jpg 

编译完成后状态就变成了下载中

红色区域内表示正在下载中,右边的紫色区域表示下载的进度。
下方的绿色区域表示编译出的代码大小。后面的数据表示这个程序烧写完毕后还剩下的空间大小。

下载成功
image018.jpg 
红色区域内提示下载成功

然后观察你的板子标注为L的绿色LED是否亮1s灭1S周期循环。
如果是。恭喜你完成了第一个程序。


FAQ:

image022.jpg 
上图的问题是串口号没有选对,或者板子类型没有选对,请仔细检查下。

image020.jpg 
这个图的错误类型是设置好了但是USB口松动使连接断开,请重新连接或者换USB口继续。。。

如果提示avrdude: stk500_getsync(): not in sync: resp=0x00 ,请在下载时按下USB座子旁边的红色按键。

2012年6月8日星期五

深入理解Arduino


互動技術,包括互動平臺Arduino
Arduino為互動搭建一個通用平臺。在Arduino這個通用平臺的基礎上,可以具體的應用到通用實驗教學、電子控制技術教學、職業技術教育中的互動新媒體廣告教學、高中通用技術中的單片機與控制教學、高中通用技術中的簡易機器人教學、小學科學教學、生物教學中肺活量的演示、植物生長的演示等等。
Arduino簡介
Arduino是一塊USB介面的簡易輸入輸出介面板,包括:12通道數位輸入,6通道10bit類比輸入通道;12通道數位輸出,和6通道PWM類比輸出。
Arduino軟體整合式開發環境(Arduino IDE),具有類似C語言的程式設計風格,介面簡介,操作方便。
Arduino通過USB介面和PC連接(作為鍵盤和滑鼠的擴展),讓您可以快速與flashprocessingMax/MSPVVVV 或其他互動軟體結合,製作精美的互動作品。
Arduino也可以不和PC連接,獨立運行。這時Arduino可以作為一塊Atmegaxx8系列單片機開發板使用,可以連接多種電子元件外設:
數位輸入器件:按鍵,光電門,幹簧管,水銀開關,振動開關,等各類開關量數位輸入器件;
模式輸入器件:電位器,光敏電阻,濕敏電阻,等各類模擬輸入感測器;
數位輸出器件:LED燈,繼電器,可控矽,等各類開關量數位輸出器件;
模擬輸出器件:直流電機,伺服舵機,步進電機,等各類機電結合器件。
Arduino開發IDE介面基於開放原始程式碼原,可以讓您免費下載使用開發出更多令人驚豔的互動作品。
Arduino可以做什麼?
目前電腦的輸入和輸出設備,大家常見的、也是大家做熟悉的就是:鍵盤(輸入)、滑鼠(輸入)、麥克(輸入)和音響(輸出)、顯示器(輸出);對於一些玩遊戲的朋友可能還包括搖桿(輸入),做音樂的可能還會接觸到MIDI(輸入)。
上述設備功能都已經固定(工廠已經設置好了功能和使用方法),功能也非常專一。你沒辦法讓鍵盤給你唱歌,同樣,你也沒辦法讓音響替你輸入文本。
Arduino更像是一種半成品,它提供通用的輸入輸出介面。你可以通過程式設計,把Arduino加工成你需要的輸入輸出設備。
你可以把Arduino做成鍵盤、滑鼠、麥克等輸入裝置;你也可以把Arduino做成音響、顯示器等輸出設備。最重要的是,你可以把Arduino做成任何你希望的互動工具(輸入和輸出)。
如果你願意,或者你需要,你完全可做使用Arduino開發出一個會唱歌的鍵盤或者一個讓你的音響替你打字。
總之,Arduino是什麼,是根據你的需求來確定的。你跟電腦之間的交互,從此插上了翅膀。
Arduino特色
1.    ArduinoIDE是免費、開源的。
2.    Arduino的硬體也是開源的,包括原理圖和PCB圖。
3.    Arduino的所有資源都可以免費下載,並且可依需求自己修改!
4.    Arduino的附件只需1USB線,程式設計、燒寫一鍵搞定。
5.    Arduino使用低價格、容易購買的微處理控制器ATMEGA168
6.    支援多種互動軟體:FlashMax/MspVVVVPDProcessing等。
7.    可簡單地與感測器,各式各樣的電子元件連接(EX:紅外線,超音波,熱敏電阻,光敏電阻,伺服馬達,…)
8.    利用Arduino,能突破以往只能使用滑鼠、鍵盤等輸入的裝置的互動內容,可以更簡單地達成單人或多人互動。
深入理解Arduino
Arduino屬於半定制的平臺,也可以稱之為半成品,Arduino簡化了設計,降低了設計的難度,是電子控制技術不再是技術工程師的專利,Arduino可以廣大的藝術類等文科生使用,Arduino也為中小學生打開了單片機開發的大門,Arduino是單片機開發變的簡易,Arduino還提供豐富的軟硬體資源庫,
Arduino簡易,但不是簡單。Arduino在單片機的基礎上作了簡化,把單片機控制簡化成輸入和輸出兩類,又進一步把輸入分為類比輸入和數位輸入,把輸出分為類比輸出和數位輸出,在這種簡化的基礎上,使用Arduino再也不用為單片機設置枯燥的寄存器。