• 検索結果がありません。

夏休み工作のためのフィジカルコンピューティング : 2.1 Gainer入門-ProcessingとFunnelで簡単に実現できるI/Oインタフェース-

N/A
N/A
Protected

Academic year: 2021

シェア "夏休み工作のためのフィジカルコンピューティング : 2.1 Gainer入門-ProcessingとFunnelで簡単に実現できるI/Oインタフェース-"

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)夏休み工作 のための. 特集. フィジカルコンピューティング マイコン・ツールキット入門. 2.1 Gainer 入門 第1部 夏休みに工作をしたい人たちへ愛をこめて. Processing と Funnel で簡単に 実現できる I/O インタフェース ■遠藤孝則(情報科学芸術大学院大学[IAMAS]). 概要. ain. din. aout. dout. MODE1. 4. 4. 4. 4.  Gainer はオープンソースのフィジカルコンピュ. MODE2. 8. 0. 4. 4. ーティングを実現するための環境の 1 つです.セ. MODE3. 4. 4. 8. 0. ンサをコンピュータに接続するための I/O インタフ ェース,プログラムから I/O インタフェースにアク セスするためのソフトウェアライブラリなどで構成. MODE4. 8. 0. 8. 0. MODE5. 0. 16. 0. 0. MODE6. 0. 0. 0. 16. 表 -1 Gainer コンフィグレーション. されています.コンフィグレーションによって各ピ ンを 6 通りの入出力の組合せに変更できます.さ らに LED マトリクス制御のためのコンフィグレー. • タクトスイッチ [s1]. ションがあります.. • LED [s1]. コンフィグレーションについて  Gainer には,MODE1 から 6 までの,6 通りの入 出力の組合せと MODE7 のマトリックス LED のコ. • LED マトリクス (BU5004)[s1] • 抵抗器(330 Ω,1k Ω)[s1]. 準備とインストール. ントロールのためのコンフィグレーションがあり. ■ コンピュータとの接続. ます.作成するアプリケーションに応じて,入出.  Gainer とコンピュータとの接続方法は,互換機. 力のピンを変更することで柔軟な制作ができます.. では異なる場合があります.本稿では,オリジナル. 表 -1 にそれぞれの入出力のピンの構成を示します.. の Gainer を用いて説明します.. Gainer 互換機. ■ USB ドライバのインストール.  Gainer はオープンソースプロジェクトであるた.  シリアル通信に FTDI の VCP(Virtual COM Port). め,プロトコルが共通しているいくつかの互換機が. ドライバが必要になります.下記のリンクより環境. 存在します(図 -1) .それぞれに特徴がありますの. に適合するものをダウンロードしてください.. で,用途に合わせて選択できます (表 -2) .. http://www.ftdichip.com/Drivers/VCP.htm. 必要なパーツ  本稿では以下のパーツを使います. • 可変抵抗器 (半固定抵抗)(10k Ω )[s1]. 918 情報処理 Vol.52 No.8 Aug. 2011. ドライバを正しくインストールしてコンピュータに 接続すると Gainer の USB コネクタ横の LED が点 灯します..

(2) 2.1 Gainer 入門 Processing と Funnel で簡単に実現できる I/O インタフェース. 名前. USB 接続. オリジナル. FTDI. SFE 製(面実装). FTDI. GainerMini. CDC. Pepper. CDC. 特徴. 第1部 夏休みに工作をしたい人たちへ愛をこめて. 面実装の部品を使って小型化さ れた PIC でリデザインされ小型化され た.サーボモータ制御のコンフィ グレーションが追加されている AVR でリデザインされ小型化,低 コスト化された.ピン数が少ない ので限定的なコンフィグレーシ ョン. 表 -2 Gainer 互換機の特徴. Processing の Sketchbook location(Windows で 図 -1 Gainer 互換機. はマイドキュメントフォルダ,Mac では書類フォ ルダ内の Processing フォルダ)に libraries フォル. ■ Processing ソフトウェアライブラリ (Gainer と. Funnel)  Funnel は Gainer の 開 発 の フ ィ ー ド バ ッ ク を もとに開発されたソフトウェアライブラリで. ダを作成してその中にコピーしてください.. (Sketchbook location)/libraries/funnel となります.. プログラミングと動作確認. す.Processing のほかに ActionScript3 の環境の.  Processing で Gainer を利用することに必要な手. も の が あ り ま す.Funnel に は Arduino な ど 多 様. 続きは 2 つだけです.. な I/O インタフェースとプログラムプラットフォ. 1. ライブラリをインポートする.. ームとの仲介のために FunnelServer がありますが,. Processing の環境ではプログラム実行時に内部で. import processing.funnel.*; 2. Gainer オブジェクトを作る.. 自動的に FunnelServer が起動されるために通常の. gainer = new Gainer (this, Gainer.MODE1);. プログラムを実行するのと同じような感覚で開発す. コンストラクタの引数でコンフィグレーション. ることができます.. を指定することができます..  Gainer ソフトウェアライブラリは,センサとの 入出力を簡単に扱えるようにするという位置づけで. ■ 入力を得る. したが,Funnel ソフトウェアライブラリは,この.  このコードでは Gainer の基板上のボタンの状態. ほかにアプリケーション実装に必要な高度な処理を. を読み取ることができます.実行はなるべく新しい. 簡単に行えるように作られています.. バージョンの Processing を使用してください..  本稿では,Gainer ソフトウェアライブラリでで.  アナログ,ディジタルそれぞれの入力は,初期化. きることは,Funnel ソフトウェアライブラリでも. の部分は同じで図 -2 のソースコード下線部をそれ. 同様に可能であることと,開発の中心が Funnel に. ぞれ対応するメソッドに変更することで取得でき. 移っていることから Funnel を用いて説明をします.. ます.. Funnel は http://funnel.cc/ よりダウンロードでき ます.. ■ アナログ入力を読み取る  アナログ入力は 0V から 5V までを 256 段階で読. ■ Processing ライブラリのコピー. み取ることができます.CdS や曲げセンサなど抵抗.  ダウンロードしたアーカイブを解凍した. 値が変化する種類のセンサや,距離センサなどの電. libraries/processing 内の funnel フォルダ以下を,. 圧で出力される種類のセンサの入力値を読み取るこ. 情報処理 Vol.52 No.8 Aug. 2011. 919.

(3) 夏休み工作 のための. 特集. フィジカルコンピューティング import processing.funnel.*;. import processing.funnel.*;. Gainer gainer;. Gainer gainer;. void setup() { size(200,200); gainer = new Gainer(this,Gainer.MODE1); }. void setup() { gainer = new Gainer(this,Gainer.MODE1); } void draw() { }. 第1部 夏休みに工作をしたい人たちへ愛をこめて. void draw() { background(0); text( gainer.button().value, 50, 50); }. void mousePressed() { gainer.led().value = 1.0; }. 図 -2 入力確認のソースコード. void mouseReleased() { gainer.led().value = 0.0; }. 図 -4 ディジタル入力サンプル接続図. 図 -5 出力のソースコード. スイッチのように回路が接続したかどうかを判断し たい場合にはディジタル入力を使います.タクトス イッチは,ピンの向きに注意してください.  din0 の値は gainer.digitalInput(0).value に代入 されています.アナログと同様にメソッド digital 図 -3 アナログ入力サンプル接続図. Input() の引数で指定したピンの値を参照します. ■ 出力する. とができます.本稿では,可変抵抗器 (半固定抵抗).  ウインドウをクリックして Gainer 基板上の LED. の分圧された電圧の値を読み取ります.半固定抵抗. を点灯させるコードを図 -5 に示します.図 -5 の下. の 3 本の足の両端に電源を接続すると,真ん中の. 線部のようにそれぞれ対応する変数に代入するだけ. ピンに指定した電圧がかかります(図 -3).Funnel. で出力ピンの状態を決めることができます.. で扱う値は最小値 0.0,最大値 1.0 に正規化されて います.つまり 0V であれば 0.0,5V ならば 1.0 に. ■ アナログ出力をする. なります..  アナログ出力では出力ピンを 0V から 5V までの.  ain0 の値は gainer.analogInput(0).value に代入. 任意の電圧に設定できます(図 -6).. されています.メソッド analogInput() の引数でピ.  LED は流れる電流によって明るさが変わる部品で. ンを指定することでほかのピンのアナログ入力を参. す.そして電流が流れすぎないように電流制限抵抗. 照できます.. が必要になります.また,LED には電気が流れる向 きがあります.足の長い方(アノード)から足の短い. ■ ディジタル入力を読み取る. 方(カソード)に向かって電気が流れます.逆に接続.  ディジタル入力は,5V かそうでないかを読み取. すると電気が流れずに,点灯しませんので注意して. ることができます(図 -4) .Gainer のディジタル入. ください.. 力はプルダウンされており,5V 以外は 0V となり.  aout0 の 状 態 は gainer.analogOutput(0).value. ます.プルダウンには何も接続されていない入力が,. に代入することで変更できます.メソッド analog. 不定の値になることを防ぐ役割があります.タクト. Output() の引数でピンを指定することができます.. 920 情報処理 Vol.52 No.8 Aug. 2011.

(4) 2.1 Gainer 入門 Processing と Funnel で簡単に実現できる I/O インタフェース. 図 -7 ディジタル出力サンプル接続図. 第1部 夏休みに工作をしたい人たちへ愛をこめて. 図 -6 アナログ出力サンプル接続図. 図 -8 LED マトリクスサンプル接続図. import processing.funnel.*;. たとえば,0.0 なら 0V,0.5 なら 2.5V,1.0 なら 5V. Gainer gainer; int countup;. になります.. void setup() { size(200, 200); gainer= new Gainer(this, Gainer.MODE7); frameRate(15); }. ■ ディジタル出力をする. void draw() { countup %= 64; if(countup==0){ for(int i=0;i<64;i++) gainer.analogOutput(i).value = 0.0; } gainer.analogOutput(countup).value = 1.0; countup++; }.   デ ィ ジ タ ル 出 力 は 出 力 ピ ン を 0V ま た は 5V の どちらかの電圧に設定することができます(図 -7). ディジタル出力はアナログ出力に比べて高速に操作 できます.  dout0 の状態は gainer.digitalOutput(0).value に. 図 -9 LED マトリクスのソースコード. 代入することで変更できます.アナログと同様にメ ソッド digitalOutput() の引数でピンを指定するこ とができます.. おわりに. ■ LED マトリクスを点灯させる.  以上が Gainer と Funnel を使った入門になりま.  LED を格子状に並べたものが LED マトリクスで. す.Funnel は Gainer 以外の I/O インタフェースに. す.少ないピンで多数の LED を操作できます.. も対応していますが,Gainer は最も簡単に導入す.  Gainer の 1 つのピンあたりに流すことのできる. ることができます.詳しい情報は以下の URL をご. 電流は決まっているため,LED1 つだけのときより. 参照ください.. 電流制限抵抗が大きくなっています.. http://funnel.cc/.  Gainer の MODE7 を使って LED マトリクスを点. http://code.google.com/p/funnel/. 灯させます(図 -8).MODE の設定は Gainer オブ. (2011 年 4 月 25 日受付). ジェクトのコンストラクタの引数で指定できます (図 -9) .出力は 64 個のアナログ出力として扱いま す.MODE7 を使う場合,FunnelServer が正しく終 了しないことがあります.そのときは Processing の Close ボタンを押して終了してください.. ■ 遠藤孝則 [email protected]  2003 年情報科学芸術大学院大学[IAMAS]助手,2007 年同助教, 現在に至る.ソフトウェアだけにとどまらない実世界指向な題材と組 み合わせたプログラミング学習効果の研究に従事.. 情報処理 Vol.52 No.8 Aug. 2011. 921.

(5)

参照

関連したドキュメント

〃o''7,-種のみ’であり、‘分類に大きな問題の無い,グループとして見なされてきた二と力判った。しかし,半

それでは資料 2 ご覧いただきまして、1 の要旨でございます。前回皆様にお集まりいただ きました、昨年 11

子どもたちは、全5回のプログラムで学習したこと を思い出しながら、 「昔の人は霧ヶ峰に何をしにきてい

 親権者等の同意に関して COPPA 及び COPPA 規 則が定めるこうした仕組みに対しては、現実的に機

   遠くに住んでいる、家に入られることに抵抗感があるなどの 療養中の子どもへの直接支援の難しさを、 IT という手段を使えば

 今日のセミナーは、人生の最終ステージまで芸術の力 でイキイキと生き抜くことができる社会をどのようにつ

ƒ 、または Arduinoのリセットボタン”oƒ、2 }~x してか らコマンド @2 しま Q*した Arduino す。 プログラムを Arduino に…き:む Äsについては「

使用済自動車に搭載されているエアコンディショナーに冷媒としてフロン類が含まれている かどうかを確認する次の体制を記入してください。 (1又は2に○印をつけてください。 )