SlideShare a Scribd company logo
1 of 14
Download to read offline
microLIFA 
LabVIEW 
+ 
AVR microcontroller 
& 
Arduino 
Koji Ohashi 
日本LabVIEWユーザー会 北東北支部作ろう会http://labview.exblog.jp
LINX 
LabVIEW INterface 
for X(chipKIT, Arduino 
and myRIO) 
LIFA 
LabVIEW Interface For Arduino 
MicroLIFA Subset of LIFA
LIFA VIsとLIFA_Base
LIFAを使えば 
Arduinoを安価なIOとして活用できる!! 
デジタルIO(ピン/ポート), アナログIn(ピン/ 
ポート), PWM(ピン/ポート), トーン, サーボ 
モーター/ステッピングモーター, SPI, I2C 
とIR通信, LCD表示器など 
Arduino UNOなどサポートされているボードを使っている限 
り豊富な機能はじゃまにはならないが、、、 
使わない機能を省いて、 
LIFAのエッセンスだけを残せば 
どんなArduinoでもIOとして使う事ができる 
microLIFA
LIFAのエッセンスは 
シリアル通信のフォーマット (LabVIEW side) 
Packetize.viがコマンドとパラメータを固定長の文 
字列にパケット化
LIFAのエッセンスは 
シリアル通信のフォーマット (Arduino side) 
LabVIEWInterface.inoの 
processCommand(unsigned char command[]) 
switch文でおよそ50個 
のコマンドに対応
通信フォーマット 
15byte(デフォルト)固定長 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 
255 CMD Data Data Data Data Data Data Data Data Data Data Data Data CS 
先頭は常に255、最後尾はチェックサム、2バイ 
ト目がSwitchの分岐で用いられる数値(コマン 
ド)、3バイト目から14バイト目はコマンド付随す 
るデータでデフォルトは0となっている。 
例えばアナログ(PWM)出力で11pinから124で出 
力する場合は次のようなデータを送る 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 
255 10 11 124 0 0 0 0 0 0 0 0 0 0 144
Arduinoでシリアルデータを受ける 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 
255 10 11 124 0 0 0 0 0 0 0 0 0 0 144 
int checkForCommand(void) 
{ 
int buferBytes = Serial.available(); 
if(buferBytes >= COMMANDLENGTH) 
{ 
for(int i=0; i<COMMANDLENGTH; i++) 
{ 
currentCommand[i] = Serial.read(); 
} 
processCommand(currentCommand); 
return 1; 
} 
else 
{ 
return 0; 
} 
} 
但し、COMMANDLENGTHは15 
void processCommand(unsigned char command[]) 
{ 
// Determine Command 
if(command[0] == 0xFF && checksum_Test(command) == 0) 
{ 
switch(command[1]) 
{ 
case 0x00: // Sync Packet 
Serial.print("sync"); 
//digitalWrite(led, HIGH); 
Serial.fush(); 
break; 
: 
: 
case 0x0A: // PWM Write Pin 
analogWrite(command[2], command[3]); 
Serial.write('0'); 
break; 
: 
: 
} 
} 
else{ 
Serial.fush(); 
} 
}
使わない機能を省いて、 
LIFAのエッセンスだけを残せば 
どんなArduinoでもIOとして使う事ができる 
microLIFA 
デジタルIO, アナログIn, PWM出力を残した 
見通しの良いスケッチはArduinoプログラム 
との混在もストレスがない 
LabVIEW側のLIFA VIsはボード種類の 
チェック機能を削除して、シリアルやTCPで 
データを送る
USB接続版のmicroLIFA 
•ATMega328P-PU(Arduinoブートローダ書き込み済み/内蔵CR発振8MHz版) 
•FT231X USBシリアル変換モジュール 
•RGB LED (LIFA制御) 
•LED(Arduino制御) 
•I2C LCD(Arduino制御)
USB接続版のmicroLIFA 
•ボーレートは57600ボー、3.3V内蔵8MHzでは上限のようだ
XBee接続版のmicroLIFA 
•ATMega328P-PU(Arduinoブートローダ書き込み済み/内蔵CR発振8MHz版) 
•XBee WiFi (S6B) + XBee用2.54mmピッチ変換基板 
•RGB LED (LIFA制御) 
•LED(Arduino制御) 
•I2C LCD(Arduino制御)
XBee接続版のmicroLIFA 
•TCPを使用する点だけが異なるが、PCとつながれていないのがとても良い
LIFAのエッセンスだけを残してArduinoと 
LabVIEWの融合を楽しもう。 
microLIFA 
Koji Ohashi 
http://labview.exblog.jp 
日本LabVIEWユーザー会 北東北支部作ろう会

More Related Content

What's hot

モータの回転数を検知する
モータの回転数を検知するモータの回転数を検知する
モータの回転数を検知するKazu
 
Arduino 習作工坊 - Lesson 5 機械之夜
Arduino 習作工坊 - Lesson 5 機械之夜Arduino 習作工坊 - Lesson 5 機械之夜
Arduino 習作工坊 - Lesson 5 機械之夜CAVEDU Education
 
Arduino 入門
Arduino 入門Arduino 入門
Arduino 入門mitunaga
 
UVLOの等価回路モデル作成方法
UVLOの等価回路モデル作成方法UVLOの等価回路モデル作成方法
UVLOの等価回路モデル作成方法Tsuyoshi Horigome
 
今すぐ始めるArduino
今すぐ始めるArduino今すぐ始めるArduino
今すぐ始めるArduinofuna3
 
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)kozossakai
 
LTspiceを活用したOVPの等価回路モデリング
LTspiceを活用したOVPの等価回路モデリングLTspiceを活用したOVPの等価回路モデリング
LTspiceを活用したOVPの等価回路モデリングTsuyoshi Horigome
 
LTspiceを活用したスタートアップ機能の等価回路モデル
LTspiceを活用したスタートアップ機能の等価回路モデルLTspiceを活用したスタートアップ機能の等価回路モデル
LTspiceを活用したスタートアップ機能の等価回路モデルTsuyoshi Horigome
 
20181117 arduino basicbeta2
20181117 arduino basicbeta220181117 arduino basicbeta2
20181117 arduino basicbeta2Chiehwun
 
coma Study Room vol.2 Arduino Workshop
coma Study Room vol.2 Arduino Workshopcoma Study Room vol.2 Arduino Workshop
coma Study Room vol.2 Arduino WorkshopEto Haruhiko
 
SFC デザイン言語WS(電子工作)第4回「センサーを使う」
SFC デザイン言語WS(電子工作)第4回「センサーを使う」SFC デザイン言語WS(電子工作)第4回「センサーを使う」
SFC デザイン言語WS(電子工作)第4回「センサーを使う」Makoto Hirahara
 
SFC デザイン言語WS(電子工作)第3回「電子工作の作法」
SFC デザイン言語WS(電子工作)第3回「電子工作の作法」SFC デザイン言語WS(電子工作)第3回「電子工作の作法」
SFC デザイン言語WS(電子工作)第3回「電子工作の作法」Makoto Hirahara
 
マイコンを使ってみよう
マイコンを使ってみようマイコンを使ってみよう
マイコンを使ってみようkoruku
 

What's hot (20)

RSQB Flip Flopの等価回路モデル
RSQB Flip Flopの等価回路モデルRSQB Flip Flopの等価回路モデル
RSQB Flip Flopの等価回路モデル
 
モータの回転数を検知する
モータの回転数を検知するモータの回転数を検知する
モータの回転数を検知する
 
Arduino 習作工坊 - Lesson 5 機械之夜
Arduino 習作工坊 - Lesson 5 機械之夜Arduino 習作工坊 - Lesson 5 機械之夜
Arduino 習作工坊 - Lesson 5 機械之夜
 
Arduino 入門
Arduino 入門Arduino 入門
Arduino 入門
 
UVLOの等価回路モデル作成方法
UVLOの等価回路モデル作成方法UVLOの等価回路モデル作成方法
UVLOの等価回路モデル作成方法
 
今すぐ始めるArduino
今すぐ始めるArduino今すぐ始めるArduino
今すぐ始めるArduino
 
HYSTERESIS COMPARATORの等価回路モデル
HYSTERESIS  COMPARATORの等価回路モデルHYSTERESIS  COMPARATORの等価回路モデル
HYSTERESIS COMPARATORの等価回路モデル
 
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
 
LTspiceを活用したOVPの等価回路モデリング
LTspiceを活用したOVPの等価回路モデリングLTspiceを活用したOVPの等価回路モデリング
LTspiceを活用したOVPの等価回路モデリング
 
LTspiceを活用したスタートアップ機能の等価回路モデル
LTspiceを活用したスタートアップ機能の等価回路モデルLTspiceを活用したスタートアップ機能の等価回路モデル
LTspiceを活用したスタートアップ機能の等価回路モデル
 
20181117 arduino basicbeta2
20181117 arduino basicbeta220181117 arduino basicbeta2
20181117 arduino basicbeta2
 
SRQ Flip Flopの等価回路モデル
SRQ Flip Flopの等価回路モデルSRQ Flip Flopの等価回路モデル
SRQ Flip Flopの等価回路モデル
 
coma Study Room vol.2 Arduino Workshop
coma Study Room vol.2 Arduino Workshopcoma Study Room vol.2 Arduino Workshop
coma Study Room vol.2 Arduino Workshop
 
SFC デザイン言語WS(電子工作)第4回「センサーを使う」
SFC デザイン言語WS(電子工作)第4回「センサーを使う」SFC デザイン言語WS(電子工作)第4回「センサーを使う」
SFC デザイン言語WS(電子工作)第4回「センサーを使う」
 
2INPUT OR GATEの等価回路モデル
2INPUT OR GATEの等価回路モデル2INPUT OR GATEの等価回路モデル
2INPUT OR GATEの等価回路モデル
 
2INPUT COMPARATORの等価回路モデル
2INPUT COMPARATORの等価回路モデル2INPUT COMPARATORの等価回路モデル
2INPUT COMPARATORの等価回路モデル
 
SFC デザイン言語WS(電子工作)第3回「電子工作の作法」
SFC デザイン言語WS(電子工作)第3回「電子工作の作法」SFC デザイン言語WS(電子工作)第3回「電子工作の作法」
SFC デザイン言語WS(電子工作)第3回「電子工作の作法」
 
Delayの等価回路モデル
Delayの等価回路モデルDelayの等価回路モデル
Delayの等価回路モデル
 
LTspiceを活用したスタートアップ機能の等価回路モデル
LTspiceを活用したスタートアップ機能の等価回路モデルLTspiceを活用したスタートアップ機能の等価回路モデル
LTspiceを活用したスタートアップ機能の等価回路モデル
 
マイコンを使ってみよう
マイコンを使ってみようマイコンを使ってみよう
マイコンを使ってみよう
 

Similar to microLIFA for LabVIEW & Arduino User

DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519Yasuhiro Ishii
 
Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)ryos36
 
ものづくりプロジェクトII 一日でわかるArduino入門
ものづくりプロジェクトII 一日でわかるArduino入門ものづくりプロジェクトII 一日でわかるArduino入門
ものづくりプロジェクトII 一日でわかるArduino入門Yoichi Yamazaki
 
Bluetooth通信の 仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の 仕組みと活用法紹介Takehiko YOSHIDA
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt AffinityについてTakuya ASADA
 
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃうAndroidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃうksk sue
 
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件yaegashi
 
4章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 34章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 3mao999
 
Stellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイドStellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイドryos36
 
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門Hironori Sekine
 
衛星芸術Pbl 2011 10_18
衛星芸術Pbl 2011 10_18衛星芸術Pbl 2011 10_18
衛星芸術Pbl 2011 10_18Koichiro Mori
 
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)marsee101
 
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門Takeshi HASEGAWA
 
デバドラを書いてみよう!
デバドラを書いてみよう!デバドラを書いてみよう!
デバドラを書いてみよう!Masami Ichikawa
 
みんな大好き! Hello, World
みんな大好き! Hello, Worldみんな大好き! Hello, World
みんな大好き! Hello, WorldNaohiro Aota
 

Similar to microLIFA for LabVIEW & Arduino User (20)

DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
 
Interrupts on xv6
Interrupts on xv6Interrupts on xv6
Interrupts on xv6
 
Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)
 
ものづくりプロジェクトII 一日でわかるArduino入門
ものづくりプロジェクトII 一日でわかるArduino入門ものづくりプロジェクトII 一日でわかるArduino入門
ものづくりプロジェクトII 一日でわかるArduino入門
 
Cisco ios
Cisco iosCisco ios
Cisco ios
 
Cisco ios
Cisco iosCisco ios
Cisco ios
 
Bluetooth通信の 仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の 仕組みと活用法紹介
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt Affinityについて
 
Reconf_201409
Reconf_201409Reconf_201409
Reconf_201409
 
Arduino
ArduinoArduino
Arduino
 
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃうAndroidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
 
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件
 
4章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 34章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 3
 
Stellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイドStellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイド
 
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門
 
衛星芸術Pbl 2011 10_18
衛星芸術Pbl 2011 10_18衛星芸術Pbl 2011 10_18
衛星芸術Pbl 2011 10_18
 
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)
 
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
 
デバドラを書いてみよう!
デバドラを書いてみよう!デバドラを書いてみよう!
デバドラを書いてみよう!
 
みんな大好き! Hello, World
みんな大好き! Hello, Worldみんな大好き! Hello, World
みんな大好き! Hello, World
 

microLIFA for LabVIEW & Arduino User