Arduion And inotool

Ino是Arduino的一个命令行工具,可以创建Arduino工程与工程的编译部署。

安装ino
$ sudo pip install ino
创建Arduino工程
$ mkdir inotest
$ cd inotest
$ ino init
编译Arduino工程
$ ino build
上传到Arduino
$ ino upload
有了inotool现在就可以使用熟悉的vim进行开发,不过首先要安装代码高亮
$ mkdir -p ~/.vim/bundle/arduino/syntax && cd $_
$ wget http://www.vim.org/scripts/download_script.php?src_id=17108
$ vim ~/.vimrc
autocmd! BufNewFile,BufRead *.ino setlocal ft=arduino
安装picocom
$ brew install picocom              # OS X
$ sudo apt-get install picocom      # Raspberry Pi
$ ino serial                        # 启动picocom查看串口的信息,用于Debug用
第三方库的依赖

ino创建的工程目录下有两个子目录 @src@ 与 @lib@ , src是源文件存放目录,lib是第三方库的存放目录,例如做红外传感器的时候需要用到IRremote这个第三方库那就需要放到lib目录中。

$ cd $INO_PROJECT/lib
$ git clone https://github.com/shirriff/Arduino-IRremote.git IRremote

inotool: "http://inotool.org":http://inotool.org

RaspberryPi And Arduino

由于Arduino的无线模块真的是比Arduino板子还贵的原因,又刚好手上有一块Raspberry Pi的板子,通过无线控制派再通过USB与Arduino进行通信,这样也是个不错搭配。

安装Raspberry Pi与Arduino串口通信的pySerial:

$ sudo pip install pyserial

Hello World

client.py

import serial

ardunio = serial.Serial('/dev/tty.usbmodem1411', 9600)

print(ardunio.readline())

server.ino

void setup() {
    Serial.begin(9600);
    Serial.println("Hello World!!!!");
}

void loop() {

}

下载程序到Arduino中,然后执行 @python client.py@ 就能够打印出Hello World!!

注意 @/dev/tty.usbmodem1411@ 在不同的电脑和系统中会不同。

Arduino Basics

第一次玩Arduino,这里就记录Arduion的一些基础知识,这些都可以从官方中获取得到,只不过英文看着不太方便。

1. Digital I/O 普通数字输入输出,共14个引脚。

相关的函数

pinMode(pin, INPUT);           // 设置为输入或输出
digitalWrite(pin, HIGH);       // 打开上拉电阻,即高电平

2. Digital I/O PWM 支持模拟输出的引脚,可用于调节LED灯的亮度。

相关的函数

analogRead(pin)                // 读取输入,值的范围为0~1023
analogWrite(pin, value)        // 输出value的范围为0~255

Arduino Use Button Switch

通过按钮输入信息去控制LED灯

线路图

用到的材料

  1. 10K欧电阻1个
  2. 220欧电阻1个
  3. 按钮开头1个
  4. 杜邦线4根
  5. 面包线3根
  6. LED灯1只

代码

void setup() {
  pinMode(4, INPUT);        // 4号针脚输入
  pinMode(13, OUTPUT);      // 13号针脚输出
}

void loop() {
  int i = digitalRead(4);   // 读取4号针脚的值
  if (i == HIGH) {          // 如果4号针脚的值为高电平,即按下按钮
    delay(1000);            // 延时1秒后
    digitalWrite(13, HIGH); // 点亮13号针脚的LED灯
    delay(5000);            // 延时5秒后
    digitalWrite(13, LOW);  // 熄灭
  }
}

4号针脚与按钮开关,10K欧电阻和电线是一个整体,与LED灯并没有相关联的连线,10K欧的电阻的作用是作下拉电阻,使4号针脚的值为低电平,当按钮按下时5V电源与4号针脚形成一个通路,从而4号针脚的值为高电平,点亮LED。

Raspberry Pi GPIO LED

Rev2版本的Raspberry Pi一共有21个GPIO接口,有4个在P5上,其余17个在P1上

目前我知道的有两种模式可以控制GPIO,对应的PIN针脚号也不同的

    BCM模式