# Firmata
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/firmata/arduino?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Firmata is a protocol for communicating with microcontrollers from software on a host computer. The [protocol](https://github.com/firmata/protocol) can be implemented in firmware on any microcontroller architecture as well as software on any host computer software package. The Arduino repository described here is a Firmata library for Arduino and Arduino-compatible devices. If you would like to contribute to Firmata, please see the [Contributing](#contributing) section below.
# Contents
- [Usage](#usage)
- [Firmata Client Libraries](#firmata-client-libraries)
- [Updating Firmata in the Arduino IDE - Arduino 1.6.4 and higher](#updating-firmata-in-the-arduino-ide---arduino-164-and-higher)
- [Cloning Firmata](#cloning-firmata)
- [Updating Firmata in the Arduino IDE - older versions (<= 1.6.3 or 1.0.x)](#updating-firmata-in-the-arduino-ide---older-versions--163-or-10x)
- [Mac OSX:](#mac-osx)
- [Windows](#windows)
- [Linux](#linux)
- [Using the Source code rather than release archive (only for versions older than Arduino 1.6.3)](#using-the-source-code-rather-than-release-archive-only-for-versions-older-than-arduino-163)
- [Contributing](#contributing)
## Usage
There are two main models of usage of Firmata. In one model, the author of the Arduino sketch uses the various methods provided by the Firmata library to selectively send and receive data between the Arduino device and the software running on the host computer. For example, a user can send analog data to the host using ``` Firmata.sendAnalog(analogPin, analogRead(analogPin)) ``` or send data packed in a string using ``` Firmata.sendString(stringToSend) ```. See File -> Examples -> Firmata -> AnalogFirmata & EchoString respectively for examples.
The second and more common model is to load a general purpose sketch called StandardFirmata (or one of the variants such as StandardFirmataPlus or StandardFirmataEthernet depending on your needs) on the Arduino board and then use the host computer exclusively to interact with the Arduino board. StandardFirmata is located in the Arduino IDE in File -> Examples -> Firmata.
## Firmata Client Libraries
Most of the time you will be interacting with Arduino with a client library on the host computers. Several Firmata client libraries have been implemented in a variety of popular programming languages:
* processing
* [https://github.com/firmata/processing](https://github.com/firmata/processing)
* [http://funnel.cc](http://funnel.cc)
* python
* [https://github.com/MrYsLab/pymata-aio](https://github.com/MrYsLab/pymata-aio)
* [https://github.com/MrYsLab/PyMata]([https://github.com/MrYsLab/PyMata)
* [https://github.com/tino/pyFirmata](https://github.com/tino/pyFirmata)
* [https://github.com/lupeke/python-firmata](https://github.com/lupeke/python-firmata)
* [https://github.com/firmata/pyduino](https://github.com/firmata/pyduino)
* perl
* [https://github.com/ntruchsess/perl-firmata](https://github.com/ntruchsess/perl-firmata)
* [https://github.com/rcaputo/rx-firmata](https://github.com/rcaputo/rx-firmata)
* ruby
* [https://github.com/hardbap/firmata](https://github.com/hardbap/firmata)
* [https://github.com/PlasticLizard/rufinol](https://github.com/PlasticLizard/rufinol)
* [http://funnel.cc](http://funnel.cc)
* clojure
* [https://github.com/nakkaya/clodiuno](https://github.com/nakkaya/clodiuno)
* [https://github.com/peterschwarz/clj-firmata](https://github.com/peterschwarz/clj-firmata)
* javascript
* [https://github.com/firmata/firmata.js](https://github.com/firmata/firmata.js)
* [https://github.com/rwldrn/johnny-five](https://github.com/rwldrn/johnny-five)
* [http://breakoutjs.com](http://breakoutjs.com)
* java
* [https://github.com/kurbatov/firmata4j](https://github.com/kurbatov/firmata4j)
* [https://github.com/4ntoine/Firmata](https://github.com/4ntoine/Firmata)
* [https://github.com/reapzor/FiloFirmata](https://github.com/reapzor/FiloFirmata)
* .NET
* [https://github.com/SolidSoils/Arduino](https://github.com/SolidSoils/Arduino)
* [http://www.acraigie.com/programming/firmatavb/default.html](http://www.acraigie.com/programming/firmatavb/default.html)
* Flash/AS3
* [http://funnel.cc](http://funnel.cc)
* [http://code.google.com/p/as3glue/](http://code.google.com/p/as3glue/)
* PHP
* [https://github.com/ThomasWeinert/carica-firmata]()
* [https://github.com/oasynnoum/phpmake_firmata](https://github.com/oasynnoum/phpmake_firmata)
* Haskell
* [http://hackage.haskell.org/package/hArduino](http://hackage.haskell.org/package/hArduino)
* iOS
* [https://github.com/jacobrosenthal/iosfirmata](https://github.com/jacobrosenthal/iosfirmata)
* Dart
* [https://github.com/nfrancois/firmata](https://github.com/nfrancois/firmata)
* Max/MSP
* [http://www.maxuino.org/](http://www.maxuino.org/)
* Elixir
* [https://github.com/kfatehi/firmata](https://github.com/kfatehi/firmata)
* Modelica
* [https://www.wolfram.com/system-modeler/libraries/model-plug/](https://www.wolfram.com/system-modeler/libraries/model-plug/)
* Go
* [https://github.com/kraman/go-firmata](https://github.com/kraman/go-firmata)
* vvvv
* [https://vvvv.org/blog/arduino-second-service](https://vvvv.org/blog/arduino-second-service)
* openFrameworks
* [http://openframeworks.cc/documentation/communication/ofArduino/](http://openframeworks.cc/documentation/communication/ofArduino/)
* Rust
* [https://github.com/zankich/rust-firmata](https://github.com/zankich/rust-firmata)
Note: The above libraries may support various versions of the Firmata protocol and therefore may not support all features of the latest Firmata spec nor all Arduino and Arduino-compatible boards. Refer to the respective projects for details.
## Updating Firmata in the Arduino IDE - Arduino 1.6.4 and higher
If you want to update to the latest stable version:
1. Open the Arduino IDE and navigate to: `Sketch > Include Library > Manage Libraries`
2. Filter by "Firmata" and click on the "Firmata by Firmata Developers" item in the list of results.
3. Click the `Select version` dropdown and select the most recent version (note you can also install previous versions)
4. Click `Install`.
### Cloning Firmata
If you are contributing to Firmata or otherwise need a version newer than the latest tagged release, you can clone Firmata directly to your Arduino/libraries/ directory (where 3rd party libraries are installed). This only works for Arduino 1.6.4 and higher, for older versions you need to clone into the Arduino application directory (see section below titled "Using the Source code rather than release archive"). Be sure to change the name to Firmata as follows:
```bash
$ git clone git@github.com:firmata/arduino.git ~/Documents/Arduino/libraries/Firmata
```
*Update path above if you're using Windows or Linux or changed the default Arduino directory on OS X*
## Updating Firmata in the Arduino IDE - older versions (<= 1.6.3 or 1.0.x)
Download the latest [release](https://github.com/firmata/arduino/releases/tag/2.5.8) (for Arduino 1.0.x or Arduino 1.5.6 or higher) and replace the existing Firmata folder in your Arduino application. See the instructions below for your platform.
*Note that Arduino 1.5.0 - 1.5.5 are not supported. Please use Arduino 1.5.6 or higher (or Arduino 1.0.5 or 1.0.6).*
### Mac OSX:
The Firmata library is contained within the Arduino package.
1. Navigate to the Arduino application
2. Right click on the application icon and select `Show Package Contents`
3. Navigate to: `/Contents/Resources/Java/libraries/` and replace the existing
`Firmata` folder with latest [Firmata release](https://github.com/firmata/arduino/releases/tag/2.5.8) (note there is a different download
for Arduino 1.0.x vs 1.6.x)
4. Restart the Arduino application and the latest version of Firmata will be available.
*If
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
手把手教你使用esp8266制作桌面时钟 (1403个子文件)
README.adoc 1KB
README.adoc 1KB
README.adoc 1KB
README.adoc 1KB
README.adoc 1KB
README.adoc 1KB
README.adoc 1KB
README.adoc 1KB
README.adoc 1KB
README.adoc 1009B
README.adoc 1005B
README.adoc 993B
README.adoc 868B
AUTHORS 166B
arduino.bmp 7KB
arduino.bmp 7KB
u8g2_fonts.c 24.96MB
u8x8_fonts.c 1.52MB
u8g2_d_setup.c 233KB
u8x8_d_st75256.c 57KB
u8x8_d_st7565.c 45KB
u8g2_font.c 32KB
u8x8_d_st7567.c 23KB
u8x8_d_ssd1327.c 23KB
u8x8_d_uc1611.c 22KB
u8x8_d_ssd1607_200x200.c 21KB
u8x8_cad.c 21KB
u8x8_d_t6963.c 19KB
u8x8_d_sh1107.c 18KB
u8x8_d_ssd1306_128x64_noname.c 18KB
u8x8_byte.c 17KB
u8x8_d_ssd1322.c 17KB
u8x8_d_il3820_296x128.c 17KB
u8x8_d_ssd1325.c 16KB
u8x8_d_lc7981.c 16KB
u8x8_d_max7219.c 14KB
u8x8_d_uc1608.c 14KB
tcp_axtls.c 14KB
u8x8_d_ssd1305.c 14KB
u8g2_d_memory.c 13KB
u8x8_d_ssd1606_172x72.c 13KB
u8x8_d_sed1330.c 13KB
u8x8_8x8.c 12KB
u8x8_d_ks0108.c 11KB
u8x8_d_ssd1318.c 11KB
u8g2_setup.c 11KB
TembooWebSocketRequestHandles.c 11KB
u8g2_circle.c 10KB
MQTTPacket.c 10KB
fontconvert.c 10KB
u8x8_d_ld7032_60x32.c 10KB
u8x8_d_ssd1309.c 10KB
u8x8_d_ssd1306_64x32.c 10KB
u8x8_d_ssd1329.c 10KB
u8x8_d_ssd1306_128x32.c 9KB
u8x8_d_ssd1326.c 9KB
u8x8_d_st75320.c 9KB
u8x8_d_st7586s_erc240160.c 9KB
u8x8_d_uc1610.c 9KB
u8g2_ll_hvline.c 9KB
u8x8_d_sh1122.c 9KB
u8x8_d_st7586s_s028hn118a.c 9KB
u8x8_d_st7920.c 8KB
glcdfont.c 8KB
u8x8_d_ssd1317.c 8KB
glcdfont.c 8KB
u8x8_d_sh1106_72x40.c 8KB
u8x8_d_sh1106_64x32.c 8KB
u8x8_d_st7588.c 8KB
glcdfont.c 8KB
u8x8_d_ssd1316.c 8KB
MQTTFormat.c 8KB
u8x8_d_uc1604.c 8KB
u8x8_d_ssd1306_64x48.c 8KB
u8x8_d_ssd1306_96x16.c 8KB
u8x8_d_sh1108.c 8KB
u8x8_d_ssd1306_48x64.c 8KB
u8x8_d_uc1617.c 8KB
u8g2_selection_list.c 7KB
u8x8_d_uc1638.c 7KB
u8x8_d_uc1701_dogs102.c 7KB
u8x8_d_uc1701_mini12864.c 7KB
u8x8_d_ist3020.c 7KB
u8x8_d_st7511.c 7KB
u8g2_polygon.c 7KB
u8g2_hvline.c 7KB
u8x8_d_sbn1661.c 7KB
u8x8_d_uc1601.c 7KB
u8x8_d_ls013b7dh03.c 7KB
u8x8_d_pcf8814_hx1230.c 7KB
libsha1.c 7KB
u8x8_d_pcf8812.c 6KB
u8log.c 6KB
u8x8_d_a2printer.c 6KB
MQTTConnectClient.c 6KB
u8x8_d_pcd8544_84x48.c 6KB
u8x8_debounce.c 5KB
u8g2_message.c 5KB
u8g2_bitmap.c 5KB
u8g2_buffer.c 5KB
共 1403 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15
资源评论
白晓枫
- 粉丝: 10
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功