首页
社区
课程
招聘
[原创]Arduino基础介绍与入门[合并]
发表于: 2016-8-26 09:46 12117

[原创]Arduino基础介绍与入门[合并]

2016-8-26 09:46
12117

Arduino基础介绍
      记得以前,有一个我们看雪论坛的专用发贴工具,很方便的说。
      如果智能硬件是未来的趋势,那么Arduino绝对是其中不可缺少的一员。(本文中有部分内容来自网络,如果有什么侵权的地方或有写得不好的地方,欢迎提出,好让我及时改正!^-^)。
一、Arduino是什么东西?
     我的理解是:Arduino就是以AVR单片机为基础的软硬件平台。刚开始用的话,比单片机用起来方便很多,因为有很多代码和库不用我们自己写。最主要的是Arduino是开源的,可以方便我们作为学习的参考。
      官方的介绍:Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).她适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。
    Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器 对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(based on Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。
你可以自己自己动手制作,也可以购买成品套装;Arduino所使用到的软件都可以免费下载. 硬件参考设计 (CAD 文件)也是遵循availableopen-source协议, 你可以非常自由地 根据你自己的要求去修改他们。

二、Arduino有什么好处?
     我总结的是:它的好处就两个字“简单”,如果还有的话就是开发速度真的是一个字“快”(只是相对于一般情况。如果你有几年单片机开发经验,可能结果就不一样了)。
看看大家是怎么对它评价的:
Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让我们不了解AVR单片机(微控制器)的朋友也能轻松上手。
当然,它也有缺点:缺乏良好的互动界面、无线通信也有点差。听说和Android搭配起来就很完美了(通过手机来控制Arduino,打造物联网)。

三、Arduino可以做些什么?
      反正我用51单片机能做的,Arduino都能做。比如说:3D打印机(RepRap)、机械手(uArm)、鼠标、机器人等等。还有许多现成的模块(不夸张地说,模块起码上百种之多)可以用很方便地插入就可以用,代码大部分都是现成的。
     来点网络上的介绍: Arduino是目前较为流行的电子互动平台,基于单片机系统开发,具有使用简单、功能多样、价格低廉等优点,广泛应用于电子系统设计和互动产品开发方面。
     Arduino的功能特点、基本结构,并通过LEO控制电路的应用给出了具体的使用方法。是2005年1月由米兰交互设计学院的两位教师David CUARTielles和Massimo Banzi联合创建,是一块基于开放原始代码的Simple I/O平台,该平台由两部分组成:硬件(包括
微处理器、电路板等)和软件(编程接口和语言)。平台的两部分都是开源的,如果需要,可以下载Arduino的图表、购买需要的所有独立部件、切割电路板并制作一个电路板。
      Arduino具有类似java、C语言的开发环境。可以快速使用Ardu ino语言与Flash或Processing等软件完成互动作品。能够使用开发完成的电子元件,如Switch、Sensors或其它控制器、LED、步进电机或其它输入/输出装置,同时,Arduino也可以成为独立与软件沟通的平台,如Flash、Processing、Max/MSP或其它互动软件。

四、Arduino 模拟仿真
      如果你现在还没有Arduino开发板的话,还可以用Proteus、Emulare或者Virtual Breadboard先模拟玩一下。
大家用得比较多的应该是VirtualBreadboard(以下简称VBB),中文名可直译为“虚拟面包板”,是通过单片机实现嵌入式软件的模拟器和开发环境。VBB非常简单易用,你可以轻松地用它取代日常使用的面包板。更加令人兴奋的是,它不但可以像著名的Fritzing一样包括所有Arduino的样例电路,可以实现面包板电路的设计和布置,还包括所有样例程序,并可实现对程序的仿真调试!当然,VBB的强大不仅如此,它还支持PIC系列芯片、Netduino,以及Java、VB、C++等主流编程环境。
      VBB可以模拟Arduino和各种各样的电子模块,例如液晶屏、舵机、逻辑数字电路以及其他的输入/输出设备。这些部件都可以直接使用,你还可以通过组合,设计出更复杂的电路和模块。也就是说,即使在零件库里没有你想要的零件,你也可以轻松地从网上的分享区下载,或者自己设计制作一个全新的部件。
      最后,你会发现Arduino真的很好、很强大。

Arduino相关图片(有两图:一张开发板的,另一张是模块的)


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 3
支持
分享
最新回复 (13)
雪    币: 288
活跃值: (212)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
Arduino模拟仿真
      
      在上一篇《Arduino基础介绍》里,我大概为大家介绍了一下。不过不说怎么用,也没说怎样更进步了解它,从这一篇开始,我会慢慢地给大家介绍。
      如果你已经有单片机的基础,那会学起Arduino来,你会感觉非常爽的。如果你不知道单片机,也没了解过,也没有关系的。
      闲话少说,我要为大家介绍的是VirtualBreadboard(简称VBB)。我选择的安装版本是4.3.8.0,听说后面的版本要收费了。目前,这个版本还不影响我们使用,其实我是建议大家买点开发套件来学习,毕竟模拟仿真的感觉和实物是不一样的。(本文中有几张图片,我放到附件里了。)
      当然,以前我是直接买的开发板(现在,这些家当都在家里。而我又正好在科锐学习,如果你也想学习很牛X的电脑技术的话,可以先到武汉科锐来看看。声明一下,这不是打广告啊,科锐目前教学大纲里没有Arduino,有Android)。

第一步 如果你的电脑里面没有安装.net framework 2.0,你不知道的话可以先跳过,等会会提示你的。(我在虚拟机里安装了一下)

图:安装完成

第二步 安装J#,如果第一步没做这里会提示。

第三步 安装VBB

第四步 安装完成

直接选个例子试试,运行起来上面的LED灯会闪烁。

.pde代码如下(如果没学过编程,或许看不懂,可以百度一下,官方也会相关教程的):
        /*
        Analog Input
        Demonstrates analog input by reading an analog sensor on analog pin 0 and
        turning on and off a light emitting diode(LED)  connected to digital pin 13.
        The amount of time the LED will be on and off depends on
        the value obtained by analogRead().

        The circuit:
        * Potentiometer attached to analog input 0
        * center pin of the potentiometer to the analog pin
        * one side pin (either one) to ground
        * the other side pin to +5V
        * LED anode (long leg) attached to digital output 13
        * LED cathode (short leg) attached to ground

        * Note: because most Arduinos have a built-in LED attached
        to pin 13 on the board, the LED is optional.

        Created by David Cuartielles
        Modified 16 Jun 2009
        By Tom Igoe

        http://arduino.cc/en/Tutorial/AnalogInput

        */

        int sensorPin = 0;    // select the input pin for the potentiometer
        int ledPin = 13;      // select the pin for the LED
        int sensorValue = 0;  // variable to store the value coming from the sensor

        void setup() {
                // declare the ledPin as an OUTPUT:
                pinMode(ledPin, OUTPUT);  
        }

        void loop() {
                // read the value from the sensor:
                sensorValue = analogRead(sensorPin);   
                // turn the ledPin on
                digitalWrite(ledPin, HIGH);  
                // stop the program for <sensorValue> milliseconds:
                delay(sensorValue);         
                // turn the ledPin off:        
                digitalWrite(ledPin, LOW);   
                // stop the program for for <sensorValue> milliseconds:
                delay(sensorValue);                  
        }

好了,这篇文章先到此为止。后续如果相了解VBB的人较多的话,我再更新一下,增加一些内容。
上传的附件:
2016-8-26 13:11
0
雪    币: 3366
活跃值: (1358)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
第一行 很方面的说 很方便的说……
2016-8-28 08:37
0
雪    币: 288
活跃值: (212)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
你有这个工具没,给我发一份
2016-8-28 09:15
0
雪    币: 3366
活跃值: (1358)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
什么??工具?
2016-8-28 11:50
0
雪    币: 288
活跃值: (212)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
7
我们看雪论坛专用的发贴工具啊!
2016-8-28 11:57
0
雪    币: 3366
活跃值: (1358)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
呃…… 真没这个…… 一般都是手工慢慢排233
2016-8-29 09:49
0
雪    币: 271
活跃值: (3248)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
想我这样的白痴,,楼主应该介绍开发去那里买好,,怎么去开发才得
2016-8-31 17:30
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
10
Ardunio 芯片烧入代码量有限,只适合一些小规模工作,说来还是树莓酸爽。
2016-8-31 17:47
0
雪    币: 288
活跃值: (212)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
11
主要是树莓派比Ardunio贵几倍。现在Ardunio,也有支持Arm芯片的,只是刚才始练习的时候很好入门,平常一些小项目都够了。实在不行还可以加几块板子,做成模块。
2016-9-1 10:48
0
雪    币: 288
活跃值: (212)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
12
Arduino真实环境

返回上一层

在前面,由于我手上没有开发板,就只好讲了一下用VBB模拟开发。现在,我又买套Arduino开发板,可以说说不用模拟的事。

系统: win7 32位
软件:arduino-1.6.11-windows.exe

首先,拿出我们的开发板,我的开发板是这样的:





在这之前,我们要安装Arduino软件
1、下载安装包
Arduino软件下载地址:https://www.arduino.cc/en/Main/Software


2、打开安装文件,系统提示是否运行,点击“运行”


3、然后,是否同意,不管它,点击“I Agree”


4、安装选项,一般默认是全部,点击“Next”


5、安装路径,一般默认的就行了,你也可以选择别的位置

6、安装过程,不用管它

7、在安装过程中,可能提示安装驱动,点击“安装”

8、安装完成


9、运行Arduino程序

10、开发板连接到电脑,可能系统不识别


11、按鼠标右键,更新驱动

12、点击“下一步”


13、安装好的效果


14、在界面复制上代码:


int ledpin=13;//定义数字接口13
void setup()
{
  Serial.begin(9600);//设置波特率为9600,这里要跟软件设置相一致。当接入特定设备(如:蓝牙)时,我们也要跟其他设备的波特率达到一致。
  pinMode(ledpin,OUTPUT);//设置数字13 口为输出接口,Arduino 上我们用到的I/O 口都要进行类似这样的定义。
}
void loop()
{
    digitalWrite(ledpin,HIGH);//点亮数字13 口LED。
    delay(3000);
    digitalWrite(ledpin,LOW);//熄灭数字13 口LED
    delay(3000);
    Serial.println("Hello World!");//显示“Hello World!”字符串
}
15、查看端口是否是开发板的端口


16、验证程序


17、上传程序到开发板


就可以看到效果了。

-----------------------------End-----------------------------------
返回上一层

上传的附件:
2016-9-1 12:23
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
13
是啊。你用过基于android的那款类似Arduino的么?叫 Arduino ADK还是什么的来着
价格还可以...也是一块不错的板子,至少速度和容量挺好的。

PS:公司出钱的话,基本我都用树莓。
2016-9-1 14:00
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
14
用Arduino的那个工具感觉很难受,所以我一般用http://www.visualmicro.com
参考:http://www.geek-workshop.com/thread-25087-1-1.html
2016-9-1 14:46
0
雪    币: 288
活跃值: (212)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
15
这个工具很好,前段时间还准备自己写一个带代码提示插入的工具(可以顺遍把平时写的代码集成进去),还没写完,还差把Sqlite数据库连接等,现在又没写了。
2016-9-1 20:11
0
游客
登录 | 注册 方可回帖
返回
//