<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>フィジカル・コンピューティング</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/" />
    <link rel="self" type="application/atom+xml" href="http://www.eleki-jack.com/FC/atom.xml" />
    <id>tag:www.eleki-jack.com,2008-10-17:/FC//15</id>
    <updated>2010-03-15T00:46:45Z</updated>
    <subtitle>マイコンを手軽に使う方法を解説します。</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.1</generator>

<entry>
    <title>連載（60）Arduinoで何でも制御LANに接続する（5）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/03/60arduinolan5.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.4077</id>

    <published>2010-03-15T00:59:47Z</published>
    <updated>2010-03-15T00:46:45Z</updated>

    <summary>Arduino イーサネット･シールド（3）温度を測定する　前々回の説明と重複す...</summary>
    <author>
        <name>kanzaki</name>
        
    </author>
    
        <category term="Arduino Duemilanove" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Arduinoを使おう" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="イーサネットシールド" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="イーサネット・シールド" label="イーサネット・シールド" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[<p><font style="font-size: 1.25em;"><strong>Arduino イーサネット･シールド（3）</strong><br /><strong>温度を測定する</strong></font><br />　前々回の説明と重複する部分がありますが、関数などの説明を追加し、全体のスケッチをもう一度掲げます。</p>]]>
        <![CDATA[<blockquote>/* Web Server <br />&nbsp;* A simple web server that shows the value of the analog input pins.<br />&nbsp;*/<br />#include &lt;Ethernet.h&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <ethernet.h>// MACアドレス 00-20-C2-97-23-33　IP 192.168.1.153 とする <br />byte mac[] = { 0x00, 0x20, 0xC2, 0x97, 0x23, 0x33 };<br />byte ip[] = { 192, 168, 1, 153 };<br />byte gtw[]= { 192,168,1,1};<br />byte sbm[]= { 255,255,255,0}; <br />float indata; <br />Server server(80);<br />void setup() {<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Ethernet.begin(mac, ip,gtw,sbm); server.begin(); <br />}</ethernet.h></blockquote><br />　ここまでで、MACアドレス、IPアドレス、ゲートウェイ・アドレス、サブネット・マスクのアドレスを定義し、Server server(80);のスケッチでポート80を使用して通信を行うサーバとして設定します。Ethernet begin関数で通信の設定を行い、server.begin()でイーサネット・シールドをサーバとしてクライアントからの接続を待つようにします。 server.available();　のスケッチはサーバに接続されたクライアントを取得します。<br />
<blockquote>void loop() {<br />&nbsp;&nbsp;&nbsp;&nbsp; Client client = server.available();</blockquote><br />　サーバにクライアントからWebページのアクセスの要求があり、接続が確立しクライアントからの読み取りができるようになるとclientがtrueになります。client.connected()でクライアントの接続状態を確認します。 
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (client) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;// an http request ends with a blank line <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean current_line_is_blank = true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (client.connected()) {</blockquote><br />　client.available()で読み取り可能なバイト数が戻されます。client.read()でデータを1バイト読み込みます。\nは改行コードを示します。 
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (client.available()) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;char c = client.read();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // if we've gotten to the end of the line (received a newline<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;// character) and the line is blank, the http request has ended,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// so we can send a reply <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (c == '\n' &amp;&amp; current_line_is_blank) {</blockquote><br />　Cが改行コードでなおcurrent_line_is_blankがtrueの時、以下の処理が実施されます。 <br />
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // send a standard http response header <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client.println("HTTP/1.1 200 OK"); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client.println("Content-Type: text/html");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client.println();</blockquote><br />　ここまでで標準のヘッダ・データをクライアントに書き込みます。前回はアナログ・ポートの読み取り値をそのまま出力していました。今回は温度に変換の計算を行った結果を表示します。 <br />
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // output the value of each analog input pin <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; 4; i++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;client.print("LM35 temp");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client.print(i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client.print(" is ");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;indata= analogRead(i)*5.0/1024*100; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client.print(indata);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client.println("&lt;br/&gt;"); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</blockquote><br />　LM60の計算がLM35とは異なるので、以下でLM60の計算を行います。 
<blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client.print("LM60 temp4");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; client.print(" is "); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; indata= (analogRead(4)*5.0/1024*1000-424)/6.25;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client.print(indata);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;client.println("&lt;br/&gt;");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;client.print("CdS Output"); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client.print(" is "); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; indata= analogRead(5)*5.0/1024*1000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client.print(indata);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client.println("&lt;br/&gt;");</p>
<p>　　　　　　　　　　　&nbsp;break;</p>
<p>　　　　　　　　　　　&nbsp;}</p></blockquote>
<p>　\rは復帰/改行の行末のコードの復帰を示します。<br />
</p><blockquote>
<p>　　　　　　　　if (c == '\n') {<br />　　　　　　　　　　　　　// we're starting a new line<br />　　　　　　　　　　current_line_is_blank = true;<br />　　　　　　　　　　} </p>
<p>　　　　　　　　　　else if (c != '\r') {<br />　　　　　　　　　　　　// we've gotten a character on the current line　<br />　　　　　　　　　　　current_line_is_blank = false;<br />　　　　　　}<br />　　　　}<br />　　　}<br />　　　　　　　　// give the web browser time to receive the data<br />　　　delay(1);<br />　　　client.stop();<br />　　}<br />}</p></blockquote>
<p></p>
<p>　このスケッチを、イーサネット・シールドを取り付けたArduinoにアップロードして、PCからイーサネット経由でアクセスした結果を次に示します。</p><p><font style="font-size: 1.25em;"><strong>USB経由で電源を供給した場合</strong></font><br />&nbsp;&nbsp; 電源をUSBから受けて、プログラムをアップロードし、PCからアクセスした結果を次に示します。</p>
<p></p>
<span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0600010.jpg"><img style="text-align: center; margin: 0px auto 20px; display: block;" class="mt-image-center" alt="adr0600010.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/03/adr0600010-thumb-400x296.jpg" width="400" height="296" /></a></span>　LM35とLM60で示される温度の値に差があります。プログラムには誤りは見つかりません。基準電圧を電源電圧にしていますので、Arduinoのボードに供給されている電源電圧を測定すると、4.54Vしかないことがわかりました。<br />　12V1AのスイッチングAC-DCアダプタからArduinoに12Vの電源を接続すると、次に示す結果となりました。
<p></p>
<p></p>
<span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0600020.jpg"><img style="text-align: center; margin: 0px auto 20px; display: block;" class="mt-image-center" alt="adr0600020.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/03/adr0600020-thumb-400x296.jpg" width="400" height="296" /></a></span>　ボードの5V電源が5Vになり、温度も誤差の範囲で同じ温度を示すようになりました。<br />　以上で、Arduinoで測定したデータをWebで表示できるようになりました。<br />
<div style="text-align: right;">&lt;神崎康宏&gt;</div>
<p></p>]]>
    </content>
</entry>

<entry>
    <title>「Gainer互換Pepperでフィジカル・コンピューティング」フォローアップ記事（10）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/03/gainerpepper10.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.4034</id>

    <published>2010-03-12T05:24:04Z</published>
    <updated>2010-03-12T05:25:02Z</updated>

    <summary><![CDATA[Pepperの新しいファームを使う その３ &nbsp; 前回に引き続き新しいフ...]]></summary>
    <author>
        <name>kuwata</name>
        
    </author>
    
        <category term="Gainer互換Pepperでフィジカル・コンピューティング" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="4511" label="4511" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="74ls47" label="74LS47" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="led" label="LED" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="アノード・コモン" label="アノード・コモン" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="カソード・コモン" label="カソード・コモン" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[<p>Pepperの新しいファームを使う その３</p>

<p>&nbsp;</p>

<p>前回に引き続き新しいファームエアの活用方法を紹介します。</p>

<p>前回はLEDを順番に点ける方法を紹介しましたが、今回は7セグメントLEDの点灯を行います。</p><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/02/28/7SEGLED01.jpg"><img alt="7SEGLED01.jpg" src="http://www.eleki-jack.com/FC/2010/02/28/7SEGLED01-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span>


 <div><br /></div>]]>
        <![CDATA[
<p>【<b>7セグメントLED</b>】</p>

<p>　7セグメントLEDは「８」の形をしたLEDです。LEDが７個 ８の字状に配置されていて、点灯のパターンを変えることで、０から９までの数字を表示することができます。小数点を表すドットも入れると正確には８個のLEDが入っています。</p><p>　7セグメントLEDに組み込まれている各LEDは「セグメント」と呼ばれ、aからfまでの名前が付けられています。例えば，一番上の横向きのLEDはセグメントaと呼ばれます。</p>

<p>　すべてのLEDの端子を引き出すと信号線の数が増えてしまうので、プラス側かマイナス側のどちらかを共通にしてコモン端子に信号をまとめています。プラス側を共通にしたものを「アノード・コモン」マイナス側を共通にしたものを「カソード・コモン」と呼びます。</p><p><br /></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/02/28/7Seg%20LED00.html" onclick="window.open('http://www.eleki-jack.com/FC/2010/02/28/7Seg%20LED00.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/FC/2010/02/28/7Seg%20LED00-thumb-400x300.png" alt="7Seg LED00.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="300" /></a></span><p>【<b>4511とカソード・コモンLED</b>】</p>

<p>　0から9までの数値を４ビットで表現するBCD(バイナリ・コーディド・デシマル)からLEDのパターンに変換する専用のICがあります。最近ではマイコンで制御するため７本ないし８本の制御ラインを使い直接制御してしまうことが多いようです。</p>

<p>　Pepperの場合にはモード6では4本に出力が使えます。直接7セグメント全部の制御を行うにはピン数が不足します。そこで、7セグメント専用のドライバICを使って制御を行います。</p>

<p>　CMOSの4511は昔からある7セグメント・ドライバです。7個のLEDのマイナス側が共通になっている「カソード・コモン型LED」を直接ドライブすることができます(写真はモトローラのMC4511)。</p>



<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/02/28/CD4511.jpg"><img alt="CD4511.jpg" src="http://www.eleki-jack.com/FC/2010/02/28/CD4511-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span>

<p>&nbsp; <br /></p>

<p>　回路図を示します。</p>

<p>&nbsp;</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/02/28/7Seg%20LED01.html" onclick="window.open('http://www.eleki-jack.com/FC/2010/02/28/7Seg%20LED01.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/FC/2010/02/28/7Seg%20LED01-thumb-400x300.png" alt="7Seg LED01.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="300" /></a></span>

<p> <br /></p>

<p>　4511の入力端子[A,B,C,D]にPepperのディジタル・アウトを接続します。また4511の出力は[A,B,C,D,E,F,G]となっていますが、それぞれ対応するLEDの対応するセグメントに接続します。その他制御用の信号端子が３個ありますが、必ず回路図のように接続してください。</p>

<p>　回路図にはありませんが、4511の電源ピン(16pin)とグランドピン(8pin)も忘れずPepperの信号に接続してください。カソード・コモンですので、7セグメントのコモン端子はグラウンドに接続します。電流制限用の抵抗は利用するLEDの明るさに応じて調整してください。</p>

　

<p>ブレッドボードに組み立てて実験した例です。緑色の7セグメントLEDが２個組み込まれたものを片方だけを利用しています。</p>

<p>&nbsp;</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/02/28/7SEGLED02.jpg"><img alt="7SEGLED02.jpg" src="http://www.eleki-jack.com/FC/2010/02/28/7SEGLED02-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span><br /><p>【<b>74LS47とアノード・コモンLED</b>】</p>

<p>　プラス側が共通になっているアノード・コモンLEDを使う場合には、TTLの中の74LS47を使います。回路図を示します。</p>

<p>&nbsp;</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/02/28/7Seg%20LED02.html" onclick="window.open('http://www.eleki-jack.com/FC/2010/02/28/7Seg%20LED02.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/FC/2010/02/28/7Seg%20LED02-thumb-400x300.png" alt="7Seg LED02.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="300" /></a></span><br /><p>　信号のつなぎ方はCD4511とほぼ同じですが、LEDのコモン端子は電源に接続してください。74LS47の場合、制御用端子は何も接続しなくてかまいません。</p>

<p>　中型のアノード・コモンLEDをブレッドボードで実験している例です。利用したLEDの各セグメントには２個のLEDが直列に入っているため、電流制限抵抗は小さくしないと十分な明るさになりませんでした。</p>

<p>&nbsp;</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/02/28/7SEGLED03.jpg"><img alt="7SEGLED03.jpg" src="http://www.eleki-jack.com/FC/2010/02/28/7SEGLED03-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span>&nbsp;

&nbsp;

<p>【<b>電子ダイス</b>】</p>



<p>&nbsp;　簡単な試験用にサイコロを作ってみました。</p>

<p>　1から6の数字を順番に表示し，キーボードを押している間だけ表示が停止します。同時に画面にも数字を表示しています。Pepperからは同じプログラムでアノード・コモンもカソード・コモンも制御できます。</p>

<p>&nbsp;</p>

<blockquote><p>/*</p><p><span style="">&nbsp; 7Seg LED with 74LS47 (dice)</span></p><p>*/</p><p>&nbsp;</p><p>import
processing.gainer.*;</p><p>&nbsp;</p><p>Gainer
gainer;</p><p>int cnt =
1;</p><p>int inc =
1;</p><p>PFont
font;</p><p>&nbsp;</p><p>void
setup(){</p><p><span style="">&nbsp; size(200,200);</span></p><p><span style="">&nbsp; gainer = new Gainer(this,Gainer.MODE6);</span></p><p><span style="">&nbsp; frameRate(20);</span></p><p><span style="">&nbsp; font =
loadFont("CourierNewPS-BoldMT-12.vlw");</span></p><p><span style="">&nbsp; textFont(font, 12);</span></p><p>&nbsp;</p><p>}</p><p>&nbsp;</p><p>void
draw(){</p><p><span style="">&nbsp; background(0);</span></p><p><span style="">&nbsp; text("val: " + cnt, 10, 10);</span></p><p><span style="">&nbsp; cnt += inc;</span></p><p><span style="">&nbsp; if (cnt == 7) {</span></p><p><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cnt = 1;</span></p><p><span style="">&nbsp; }</span></p><p><span style="">&nbsp; gainer.digitalOutput(cnt);</span></p><p>}</p><p>&nbsp;</p><p>void
keyReleased() {</p><p><span style="">&nbsp; inc = 1;</span></p><p>}</p><p>&nbsp;</p><p>void
keyPressed() {</p><p><span style="">&nbsp; inc = 0;</span></p><p>}</p></blockquote>




<p>&nbsp;</p>

<p align="right">桑田喜隆</p>]]>
    </content>
</entry>

<entry>
    <title>「Gainer互換Pepperでフィジカル・コンピューティング」フォローアップ記事（9）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/03/gainerpepper9.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.4015</id>

    <published>2010-03-03T01:07:37Z</published>
    <updated>2010-03-06T06:59:35Z</updated>

    <summary><![CDATA[Pepperの新しいファームウエアを使う その2 &nbsp; 　前回に引き続き...]]></summary>
    <author>
        <name>kuwata</name>
        
    </author>
    
        <category term="Gainer互換Pepperでフィジカル・コンピューティング" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Pepperの利用" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ginger/pepper/sugarを作って使おう" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="74ls138" label="74LS138" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[<p><b><font style="font-size: 1.25em;">Pepperの新しいファームウエアを使う その2</font></b></p>

<p>&nbsp;</p>

<p>　前回に引き続き、Pepperの新しいファームウエアの活用方法を紹介します。</p>

<p>　新しいファームウエアではディジタル入力/出力を行うモードを増設しています。</p><p>　前回は全部のピンをディジタル出力として使うCONFIG_6を使って、４個のLEDを制御しました。今回は外部にICを拡張して、16個までのLEDを順番に点灯する方法を紹介します。<br /></p><p><br /></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/LED8-01.jpg"><img alt="" src="http://www.eleki-jack.com/FC/assets_c/2010/02/LED8-01-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="267" width="400" /></a></span><p><br /></p>
 ]]>
        <![CDATA[<p><br />
</p><p>【<b>LEDを8個つける</b>】</p>

<p>　Pepperのディジタル出力の先に外部にデコーダを接続することで、16本までのLEDのうち１個を選択して点灯することが可能です。まずはデコードに74LS138(3
to 8 Demultiplexer)というTTL ICを利用して8個のLEDを制御してみます。</p>

<p>　回路図は次のとおりです(手持ちの都合で74S138を利用している)。</p>

<p>&nbsp;</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/02/23/LED2.html" onclick="window.open('http://www.eleki-jack.com/FC/2010/02/23/LED2.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/FC/2010/02/23/LED2-thumb-400x300.png" alt="LED2.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="300" width="400" /></a></span>

<p></p>

<p> 　74LS138はSELECT A/B/C(1,2,3番ピン)のディジタル入力をデコードして、Y0からY7の中の該当する出力ピンをLにします。該当しない出力ピンは常にHとなっています。Lで点灯するようにアノード(+)コモンのLEDを配線します。</p>

<p>&nbsp;</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/02/23/LED8-02.jpg"><img alt="LED8-02.jpg" src="http://www.eleki-jack.com/FC/2010/02/23/LED8-02-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="267" width="400" /></a></span>

<p></p>

<p></p>

<p><br /></p><p>　プログラムは前回のものを少しだけ改造しました。</p>

<p>&nbsp;</p>

<blockquote><p>/*</p><p><span style="">&nbsp; knight rider LS138 Version</span></p><p>*/</p><p>&nbsp;</p><p>import
processing.gainer.*;</p><p>&nbsp;</p><p>Gainer
gainer;</p><p>int cnt =
1;</p><p>int out =
0;</p><p>int dir =
1;</p><p>&nbsp;</p><p>void
setup(){</p><p><span style="">&nbsp;&nbsp;&nbsp; size(200,200);</span></p><p><span style="">&nbsp;&nbsp;&nbsp; gainer = new
Gainer(this,Gainer.MODE6);</span></p><p><span style="">&nbsp;&nbsp;&nbsp; frameRate(20);</span></p><p>}</p><p>&nbsp;</p><p>void
draw(){</p><p><span style="">&nbsp; if (--cnt == 0) {</span></p><p><span style="">&nbsp;&nbsp;&nbsp; cnt = 2;</span></p><p><span style="">&nbsp;&nbsp;&nbsp; if (out == 0) {</span></p><p><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dir = 1;</span></p><p><span style="">&nbsp;&nbsp;&nbsp; }</span></p><p><span style="">&nbsp;&nbsp;&nbsp; if (out == 7) {</span></p><p><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dir = -1;</span></p><p><span style="">&nbsp;&nbsp;&nbsp; }</span></p><p><span style="">&nbsp;&nbsp;&nbsp; out += dir;</span></p><p><span style="">&nbsp;&nbsp;&nbsp; gainer.digitalOutput(out);</span></p><p><span style="">&nbsp; } </span></p><p>}</p></blockquote>

<p></p>

<p><br />
</p><p>&nbsp;</p>

<p>【<b>LEDを16個つける</b>】</p>

<p></p>

<p>&nbsp;　8個の場合はPepperの出力のうちの3ビットを使っただけですが、４ビット分使うことでLEDを16個まで拡張することができます。74LS154(4 to 16
Demultiplexer)を使うとワンチップでできますが、8個のときに使った74LS138を２個使っても同じことができます。</p><p>　74LS138を2個使った回路図を紹介します。手持ちの部品がないため、実際には作成していません。</p>

<p>&nbsp;</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/02/23/LED3.html" onclick="window.open('http://www.eleki-jack.com/FC/2010/02/23/LED3.html','popup','width=640,height=640,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/FC/2010/02/23/LED3-thumb-400x400.png" alt="LED3.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="400" width="400" /></a></span><br />　8個のLEDの動作の様子を動画にしてみました。<br /><br />&nbsp;

<span class="mt-enclosure mt-enclosure-video" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/02/23/R0014750.AVI">R0014750.AVI</a></span><p>&nbsp;</p><p><br /></p>

<p align="right">桑田喜隆</p>

<p><br />
 </p>]]>
    </content>
</entry>

<entry>
    <title>連載（59）Arduinoで何でも制御　LANに接続する（5）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/02/59arduinolan5.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.3936</id>

    <published>2010-02-15T03:03:09Z</published>
    <updated>2010-02-15T02:39:40Z</updated>

    <summary>Arduino イーサネット・シールド（2）　前回、Arduinoイーサネット・...</summary>
    <author>
        <name>kanzaki</name>
        
    </author>
    
        <category term="Arduinoを使おう" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="イーサネットシールド" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="lm35ds" label="LM35DS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="lm60" label="LM60" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="イーサネット・シールド" label="イーサネット・シールド" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[<p><font style="font-size: 1.25em;"><strong>Arduino イーサネット・シールド（2）</strong></font><br />　前回、Arduinoイーサネット・シールドをサーバにして、五つのアナログ・ポートの入力結果を表示しました。今回はそのアナログ入力ポートに、温度センサ、明るさセンサ、センサなどを接続してみます。<br />　温度センサはLM60、LM35を使用します。明るさセンサは、とりあえず、手元にある小型のCdSを利用します。ROHS対応を考えると、あまりCdSセンサは使いたくありません。次回にはCdSと同様な、人間の目の感じる明るさと同じように補正したフォト・トランジスタが発売されていますので、そちらも検討します。<br /></p><p><font style="font-size: 1.25em;"><strong>シールドに乗るマイクロブレッドボード</strong></font><br />　スイッチサイエンスで販売している超小型ブレッドボードは、Arduinoのシールドの上に載るサイズになっています。今回このブレッドボードの上に温度センサ５個、CdSの明るさセンサを一つ次のように載せました。<br />
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0590010.jpg"><img style="text-align: center; margin: 0px auto 20px; display: block;" class="mt-image-center" alt="adr0590010.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/02/adr0590010-thumb-400x344.jpg" width="400" height="344" /></a></span>]]>
        <![CDATA[<p><font style="font-size: 1.25em;"><strong>LM35DS</strong></font><br />　温度センサのLM35DSは、電源がプラス電源のときは＋2℃～＋150℃の間の温度が測定できます。0を基準として1℃当たり10mVの出力が得られます。<br />　V+の端子に4Vから20Vの電源を加えると、OUTの端子からは、</p>
<p>　　　　0mV　＋ 10.0mV/℃</p>
<p>の出力が得られます。<br />　マイナスの電源があると－55℃からの温度が測定できるようになります。当面は＋電源だけで2℃以上の温度の測定とします。</p>
<p><br /><strong>
<span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0590020.jpg"><img style="text-align: center; margin: 0px auto 20px; display: block;" class="mt-image-center" alt="adr0590020.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/02/adr0590020-thumb-350x263.jpg" width="350" height="263" /></a></span></strong><strong></strong><strong></strong><font style="font-size: 1.25em;"><strong>LM60</strong></font><br />　LM35はマイナス側の温度を測定するためにマイナス電源を必要としますが、このＬＭ60は＋電源のみで、－40℃から125℃までの温度が計測できます。</p>
<p></p>
<p>
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0590030.jpg"><img style="text-align: center; margin: 0px auto 20px; display: block;" class="mt-image-center" alt="adr0590030.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/02/adr0590030-thumb-350x342.jpg" width="350" height="342" /></a></span>　V＋の端子に2.7Vから10Vの電源を加え、温度に応じた出力電圧がOUTから得られます。温度係数は　　6.25mV/℃となり、温度と出力電圧の関係は次のようになります。
<p>　　　　　　Vo ＝ 6.25mV/℃×T℃＋424mV</p>
<p>　したがって、出力電圧から温度は次のように計算されます。<br />　　　　　　<br />　　　　　　T℃＝　（Vo mV－424mV）/ 6.25mV/℃</p>
<p>　ブレッドボード上のセンサの回路図を次に示します。LM60、LM35のOUTはArduinoのアナログ入力ポートに接続します。CdSの回路の出力も同様にアナログ入力ポートの5番に接続します。イーサネット・シールドのピンソケットにはArduinoと同じように電源、GND、入出力端子が接続されています。</p>
<p></p>
<p><br />
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0590035.jpg"><img style="text-align: center; margin: 0px auto 20px; display: block;" class="mt-image-center" alt="adr0590035.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/02/adr0590035-thumb-400x259.jpg" width="400" height="259" /></a></span>　次に示すように、Arduino用のイーサネット・シールドの上にブレッドボードを載せて、ジャンパ線で配線します。
<p><br />
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0590040.jpg"><img style="text-align: center; margin: 0px auto 20px; display: block;" class="mt-image-center" alt="adr0590040.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/02/adr0590040-thumb-400x378.jpg" width="400" height="378" /></a></span>　次回、温度測定のためのスケッチの変更を行います。<br />
<div style="text-align: right;">&lt;神崎康宏&gt;</div>
<p></p>
<p></p>
<p><br /></p>]]>
    </content>
</entry>

<entry>
    <title>雑誌の付録にArduino互換器が</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/02/arduino-4.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.3937</id>

    <published>2010-02-12T02:32:49Z</published>
    <updated>2010-02-12T01:55:01Z</updated>

    <summary>　大人の科学はNo.24で4ビット・マイコンを扱いましたが、次号No.27（20...</summary>
    <author>
        <name>yoshida</name>
        
    </author>
    
        <category term="展示会、講習会、研修会、お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="japanino" label="Japanino" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[　大人の科学はNo.24で4ビット・マイコンを扱いましたが、次号No.27（2010年4月下旬発売予定）では、<a href="http://otonanokagaku.net/magazine/vol27/index.html">Arduino互換Japaninoが付属するアナウンス</a>があります。予価は3,360円（税込）です。<br /> ]]>
        
    </content>
</entry>

<entry>
    <title>「Gainer互換Pepperでフィジカル・コンピューティング」フォローアップ記事（8）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/02/gainerpepper8.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.3900</id>

    <published>2010-02-08T02:33:03Z</published>
    <updated>2010-02-08T02:26:55Z</updated>

    <summary><![CDATA[Pepperの新しいファームを使う &nbsp; 　新しいPepperのファーム...]]></summary>
    <author>
        <name>kuwata</name>
        
    </author>
    
        <category term="Gainer互換Pepperでフィジカル・コンピューティング" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ginger/pepper/sugarを作って使おう" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="gainer" label="Gainer" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pepper" label="Pepper" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ファームウエア" label="ファームウエア" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[<p><font style="font-size: 1.25em;"><b>Pepperの新しいファームを使う</b></font></p>

<p>&nbsp;</p>

<p>　新しいPepperのファームウエアをテスト公開しました。</p>

<p>　書籍「Gainer互換Pepperでフィジカル・コンピューティング」で紹介したPepperではCONFIG_1からCONFIG_3まで、主にアナログ入出力を中心にサポートしました。これは、アナログ出力で擬似的にデジタル出力を兼ねることができると考えたからです。しかし、利用しているCPUの制約から、アナログ入出力は設定可能なピン数が限られ、全部出力や入力に設定することができませんでした。そこで、新たに制限のないディジタル入出力をサポートしたCONFIG_4-6を新設しました。</p><p><br /></p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/31/01_configTable.html" onclick="window.open('http://www.eleki-jack.com/FC/2010/01/31/01_configTable.html','popup','width=640,height=214,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/FC/2010/01/31/01_configTable-thumb-400x133.png" alt="01_configTable.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="133" /></a></span><p><br /></p>
]]>
        <![CDATA[<div align="right">
</div><p>　なお、フラッシュ・メモリに余裕のないTiny45では新たにモードを追加することが困難なため、新設モードは利用できません。</p>


<br />



<p><b>（１） ファームウエアのアップデート方法</b></p>

<p>　ファームウエアはまだテスト中です。試したい場合には書籍で紹介した方法で、ソース・コードをコンパイルして、新しいTiny85に書き込んでください。</p>

<p>　おろしたてのTiny85の場合にはISPプログラマで書き込み可能です。既にPepperのファームウエアが書き込み済みのチップの場合には、ヒューズ・ビットの設定がISP書き込みできないように設定されているので、高電圧プログラム可能なプログラマが必要になります。</p>

<p>　正式版をリリースしたあかつきには、書き込み済みのチップの配布を考えたいと思います。</p>

<p>&nbsp;</p>

<p><b>（２） 新しいファームウエアを使った応用の紹介</b></p>

<p>　新しいファームウエアによって、CONFIG_6でディジタル出力が４本使えるようになったことから、書籍で紹介した「ナイトライダー」が作成できます。</p>



<p>&nbsp;・
LED基板の作成</p>

<p>　前回の記事で紹介した基板と同様に、6×4の大きさに切ったユニバーサル基板に実装してみました。LED, 抵抗ともにチップ部品を使っています。普通のリード線のついた部品を使う場合には、もう少し大きな基板を使ってください。</p>

<p>　抵抗値は利用するLEDの色や輝度によって調整します。今回は青色高輝度LEDを使ったため、1.6kオームを使っています。</p>

<p><br /></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/31/02_LED.jpg"><img alt="02_LED.jpg" src="http://www.eleki-jack.com/FC/2010/01/31/02_LED-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/31/03_LED_Circuit.html" onclick="window.open('http://www.eleki-jack.com/FC/2010/01/31/03_LED_Circuit.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/FC/2010/01/31/03_LED_Circuit-thumb-400x300.png" alt="03_LED_Circuit.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="300" /></a></span><br /><p>・ プログラム</p>

<p>　書籍のプログラムを一部変更してLED四個を使うようにしています。</p>



<p>&nbsp;　以下に、プログラムを示します。</p>

<p>&nbsp;</p>

<blockquote><p>/*</p><p><span style="">&nbsp; knight rider </span></p><p>*/</p><p>&nbsp;</p><p>import
processing.gainer.*;</p><p>&nbsp;</p><p>Gainer
gainer;</p><p>int cnt =
1;<span style="">&nbsp; </span></p><p>int out =
0;</p><p>int dir =
1;</p><p>&nbsp;</p><p>void
setup(){</p><p><span style="">&nbsp;&nbsp;&nbsp; size(200,200);</span></p><p><span style="">&nbsp;&nbsp;&nbsp; gainer = new
Gainer(this,Gainer.MODE6); // MODE6を使います。</span></p><p><span style="">&nbsp;&nbsp;&nbsp; frameRate(20);<span style="">&nbsp; // フレームレートを変えることで速度が変わります。</span></span></p><p>}</p><p>&nbsp;</p><p>void
draw(){</p><p><span style="">&nbsp; if (--cnt == 0) {</span></p><p><span style="">&nbsp;&nbsp;&nbsp; cnt = 3;</span></p><p><span style="">&nbsp;&nbsp;&nbsp; if (out == 0) {</span></p><p><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dir = 1;</span></p><p><span style="">&nbsp;&nbsp;&nbsp; }</span></p><p><span style="">&nbsp;&nbsp;&nbsp; if (out == 3) {</span></p><p><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dir = -1;</span></p><p><span style="">&nbsp;&nbsp;&nbsp; }</span></p><p><span style="">&nbsp;&nbsp;&nbsp; out += dir;</span></p><p><span style="">&nbsp;&nbsp;&nbsp; gainer.digitalOutput( 1
&lt;&lt; out);　// 対応するビットのLEDを点灯します</span></p><p><span style="">&nbsp; } </span></p><p>}</p></blockquote>




<p>&nbsp;</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/31/04_knight.jpg"><img alt="04_knight.jpg" src="http://www.eleki-jack.com/FC/2010/01/31/04_knight-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span>

<p>&nbsp;</p>

<div style="text-align: right;"><p>桑田喜隆</p></div>


<br /><div><br /></div>
 ]]>
    </content>
</entry>

<entry>
    <title>Arduino IDEの新しいリリース0018がアップロードされました</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/02/arduino-ide0018.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.3915</id>

    <published>2010-02-04T04:37:49Z</published>
    <updated>2010-02-04T04:29:05Z</updated>

    <summary>　Arduino IDE 0018が2010年1月29日からArduinoのダウ...</summary>
    <author>
        <name>kanzaki</name>
        
    </author>
    
        <category term="Arduinoのバージョンアップ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Arduinoを使おう" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="arduino0018" label="arduino-0018" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[<p>　Arduino IDE 0018が2010年1月29日から<a href="http://arduino.cc/en/Main/Software">Arduinoのダウンロードページ</a>からダウンロードできるようになりました。<br />　ダウンロードして、Windows7（Home Premium）のPCに展開して起動してみました<br />　次に示すように外観も変わっていません。以前のような、JAVAのトラブルは起きていません。Windows XPのOSでも問題なく動作しています。</p>
<span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/ide18010.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="ide18010.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/02/ide18010-thumb-400x480.jpg" width="400" height="480" /></a></span>]]>
        <![CDATA[<p>　<a href="http://arduino.cc/en/Main/ReleaseNotes">リリースノート</a>で変更点を調べると、<br /><strong>tone（）、noTone()</strong><br />&nbsp; 新しく、tone() という関数が追加されました。この関数は、圧電素子などのブザーの音源となることを想定しているようです。発振周波数の範囲の記述が見つかりませんでしたが60Hzから60kHzの発振を確認することができました。<br />　この命令の仕様は<br />
</p><blockquote>　　　　<a href="http://arduino.cc/en/Reference/Tone">tone(pin,frequency）<br /></a>　　　　tone(pin,frequency,duration）</blockquote><br />で、<br />
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pin&nbsp;&nbsp; はディジタル・ポートの0から13のピン番号<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; frequency　は発振周波数　Hz<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; duration 　は　m秒単位の発信時間</blockquote><br />&nbsp;&nbsp; tone(pin,frequency）の場合は<a href="http://arduino.cc/en/Reference/NoTone">noTone(pin)</a>の命令が実行されるまで発振を続けます。<br />　発振させることができるのは、同時に一つのポートだけです。最初に指定されたポートが発振を行います。<br /><a href="http://arduino.cc/en/Serial/End"><strong>Serial.end（）</strong><br /></a>&nbsp;&nbsp;&nbsp; Serial.begin()で開始されたシリアル通信の処理を終了し、シリアル通信のために割り当てられたディジタル・ポートの0、1を汎用のI/Oポートとして利用するためにシリアル通信を停止する命令。<br />　　Serial.end（）が追加されました。<br />　この説明は、Arduino 0018 IDEのhelpの Referenceには見つからず、ホームページのReferenceで確認しました。<br />　また、<a href="http://arduino.cc/en/Serial/Print">Serial.print()</a>でfloatやduubleの少数以下の表示が指定できるようになりました。<br /><br />　その他に、Arduino0018 IDEの操作方法でシリアル・モニタに関するショートカットが追加されたようですがまだ確認していません。<br />　その他に、SerialControlがContributed Librariesに追加されていました。<br />　Arduino IDEは年に2回くらいのリリースアップが行われ、改善追加が進んでいます。今後も楽しみです。<br /><br /><div align="right">&lt;神崎康宏&gt;<br />
</div><p></p>]]>
    </content>
</entry>

<entry>
    <title>連載29縫って作るコンピュータLilyPad Arduino　配線方法の検討（4）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/02/29lilypad-arduino4.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.3898</id>

    <published>2010-02-02T02:11:06Z</published>
    <updated>2010-02-02T01:29:02Z</updated>

    <summary><![CDATA[ラッピング用ワイヤを用いた配線（3）&nbsp; 今回は、バッグにLilyPAa...]]></summary>
    <author>
        <name>kanzaki</name>
        
    </author>
    
        <category term="Arduinoを使おう" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="LilyPad Arduino　マイコンボード" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="縫って作るコンピュータ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ラッピング・ワイヤ　lillypad" label="ラッピング・ワイヤ　LillyPad" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[<p><font style="font-size: 1.25em;"><strong>ラッピング用ワイヤを用いた配線（3）</strong></font><br />&nbsp; 今回は、バッグにLilyPAad用の電源を接続しました。その接続の様子を示します。ラッピング・ワイヤを布に通すために、図に示すように、ラッピング・ワイヤの先端の被覆を少し向いておきます。これで、針で開けた穴が通りやすくなります。布の薄い場所なら、針穴なしでワイヤを通すこともできました。</p>
<p>
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/lilypad290010.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="lilypad290010.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/01/lilypad290010-thumb-300x243.jpg" width="300" height="243" /></a></span>]]>
        <![CDATA[<p><font style="font-size: 1.25em;"><strong>配線に接続</strong></font><br />　LilyPadと電源ユニットの配線を行っている途中で、配線が被覆の中で切れているのに気がつきました。ラッピング・ワイヤの接続は、次に示すように被覆を剥いた片方の配線に1.5mmφの熱収縮チューブ通しておいて被覆をむいた部分をしっかり撚りました。</p>
<p><strong>
<span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/lilypad290020.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="lilypad290020.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/01/lilypad290020-thumb-400x332.jpg" width="400" height="332" /></a></span></strong><strong></strong><strong></strong></p>
<p>　普通の電子回路でははんだ付けしますが、今回ははんだ付けせずに次に示すように熱収縮チューブの中に押し込みました。配線の分岐が必要な場合はこの部分に絡めて分岐する予定です。</p>
<p>
</p><p><strong></strong>&nbsp;</p>
<p><strong>
<span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/lilypad290030.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="lilypad290030.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/01/lilypad290030-thumb-400x390.jpg" width="400" height="390" /></a></span></strong><strong></strong><font style="font-size: 1.25em;"><strong>LilyPad用の電池ボックス</strong></font><br />&nbsp;&nbsp; 単4乾電池一本の1.5Vの電源から、5Vの電源が得られるステップアップDC-DCコンバータとなっています。<br />
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/lilypad290040.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="lilypad290040.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/01/lilypad290040-thumb-400x207.jpg" width="400" height="207" /></a></span>　回路は、次に示すようになっています。U2のICがL1をグラウンドに接続し、L1に電力を蓄えます。次に、U2のICがL1とグラウンドの接続を切り離します。L1とグラウンドが切り離されると、バッテリの出力にL1に蓄えられた電力が加算されてバッテリより増大した電圧が出力に現れます。
<p><br />
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/lilypad290050.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="lilypad290050.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/01/lilypad290050-thumb-400x149.jpg" width="400" height="149" /></a></span>　D2のダイオードはL1をグラウンドに接続したときに出力からの逆流を防止するためのもので、バッテリから出力への電流はD2を通じて出力されU2のICには出力の電流は流れません。<br />　Arduino LilyPadには豊富なオプション・パーツが用意されています。少しゆっくりですが、これらオプション・パーツのテストを行いながらラッピング・ワイヤの配線の効果を確認する予定です。
<div style="text-align: right;">&lt;神崎康宏&gt;</div>
<p></p>
<p><br /></p>]]>
    </content>
</entry>

<entry>
    <title>「Gainer互換Pepperでフィジカル・コンピューティング」フォローアップ記事（7）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/01/gainerpepper7.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.3870</id>

    <published>2010-01-27T02:26:27Z</published>
    <updated>2010-01-27T01:55:39Z</updated>

    <summary> Pepper用のI/Oモジュールを作成する 　書籍「Gainer互換Peppe...</summary>
    <author>
        <name>kuwata</name>
        
    </author>
    
        <category term="Gainer互換Pepperでフィジカル・コンピューティング" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="lm61" label="LM61" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="s9648100" label="S9648-100" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[
<p><b><font style="font-size: 1.25em;">Pepper用のI/Oモジュールを作成する</font></b></p>



<p>　書籍「Gainer互換Pepperでフィジカル・コンピューティング」では各種のセンサなどをブレッドボード上に実装して実験する方法を紹介しました。実験がうまく行ったら、しばらく取っておきたい場合もあります。このような場合にはPepperにじかに接続可能なIOモジュールにしておくと便利です。</p><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/24/pepper07-01.jpg"><img alt="pepper07-01.jpg" src="http://www.eleki-jack.com/FC/2010/01/24/pepper07-01-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span>
]]>
        <![CDATA[<p><br /></p><p><b>（１）
Pepper用ユニバーサル基板の作成</b></p>

<p>　部品が収まる大きさにユニバーサル基板を加工します。写真では6×4のサイズで作成していますが、もう少し大きいほうが作成しやすいでしょう。<br /></p><p>　Pepperの６ピンのシングル・ソケットを用意してください。</p>

<p><br /></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/24/Pepper07-02.jpg"><img alt="Pepper07-02.jpg" src="http://www.eleki-jack.com/FC/2010/01/24/Pepper07-02-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/24/Pepper07-03.jpg"><img alt="Pepper07-03.jpg" src="http://www.eleki-jack.com/FC/2010/01/24/Pepper07-03-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span><br />

<p><b>（２） 照度センサ＋モーション・センサ(S9648-100)</b></p>

<p>　フォローアップ記事の第5回で紹介したモーション・センサと照度センサ（フォトICダイオード）を1枚の基板にのせてみました。</p>

<p>　照度センサは半導体のフォト・ダイオードに増幅回路を内蔵しており、簡単にセンサとして使えます。CdSと違って有害な物質を使っていないため、環境にも優しいという特徴があります。</p>

<p>　アナログ入力ポート０と１にそれぞれつないでいます。書籍で紹介したような方法で、部屋の中のデータ・ロガーとして利用するのに便利です。</p>

<p><br /></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/24/sensor1.png"><img alt="sensor1.png" src="http://www.eleki-jack.com/FC/2010/01/24/sensor1-thumb-400x300.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="300" /></a></span><p><br /></p><p></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/24/Pepper07-04.jpg"><img alt="Pepper07-04.jpg" src="http://www.eleki-jack.com/FC/2010/01/24/Pepper07-04-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/24/Pepper07-05.jpg"><img alt="Pepper07-05.jpg" src="http://www.eleki-jack.com/FC/2010/01/24/Pepper07-05-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span>

<p>&nbsp;</p>

<p><b>（３）
CdS+温度センサ(LM61)</b></p>

<p><br /></p><p>　書籍で紹介したCdSと温度センサの組み合わせです。書籍では温度センサにLM35を利用しましたが、今回は代わりにLM61を使っています。<br /></p><p>　LM35ではマイナス電源を利用しないと温度がプラスの領域しか測定できませんでした。LM61ではマイナス電源なしでも温度がマイナスの領域まで測定できるように改善させています。以下の式に従って電圧が出力されます。</p>

<blockquote><p>Vo =
(+10mV /℃ x T℃) + 600mV</p></blockquote>

<p>　詳しくはLM61のデータシートを参照してください。</p>

<p>　小型化のために温度センサはOPアンプなしで接続します。</p><p>　Pepperのアナログ入力は5Vを8ビット(256段階)で読み取っているため、分解能は約20mVになり、温度にすると2℃となります。温度変化２℃に対して、アナログ入力の値が１変化します。<br /></p><p><br /></p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/24/sensor2.html" onclick="window.open('http://www.eleki-jack.com/FC/2010/01/24/sensor2.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/FC/2010/01/24/sensor2-thumb-400x300.png" alt="sensor2.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="300" /></a></span><p><br /></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/24/Pepper07-06.jpg"><img alt="Pepper07-06.jpg" src="http://www.eleki-jack.com/FC/2010/01/24/Pepper07-06-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span>

<p>&nbsp;</p>

<p><b>（４） スイッチ＋LED</b></p>

<p>　シンプルなスイッチとLEDの組み合わせです。</p><p>　オリジナルのGainerは基板にLEDとスイッチがついていて、ちょっとしたチェックに使えます。Pepperは本体にスイッチやLEDが付いていないため、このような基板を1枚用意しておくと便利です。</p>

<p><br /></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/24/sensor3.html" onclick="window.open('http://www.eleki-jack.com/FC/2010/01/24/sensor3.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/FC/2010/01/24/sensor3-thumb-400x300.png" alt="sensor3.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="300" /></a></span><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2010/01/24/Pepper07-07.jpg"><img alt="Pepper07-07.jpg" src="http://www.eleki-jack.com/FC/2010/01/24/Pepper07-07-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span>

<p>&nbsp;</p>

<p align="right">桑田喜隆</p>

]]>
    </content>
</entry>

<entry>
    <title>連載（58）Arduinoで何でも制御　LANに接続する（4）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/01/58arduinolan4.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.3828</id>

    <published>2010-01-22T03:20:31Z</published>
    <updated>2010-01-22T02:42:36Z</updated>

    <summary><![CDATA[Arduino イーサネット・シールド（1）&nbsp; 前回で、IPアドレスの...]]></summary>
    <author>
        <name>kanzaki</name>
        
    </author>
    
        <category term="Arduinoを使おう" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="イーサネットシールド" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="macアドレス" label="MACアドレス" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="イーサネット・シールド" label="イーサネット・シールド" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[<p><font style="font-size: 1.25em;"><strong>Arduino イーサネット・シールド（1）</strong></font><br />&nbsp; <a href="http://www.eleki-jack.com/FC/2010/01/57arduinolan3.html">前回</a>で、IPアドレスの空きエリアがわかりました。空きエリアを元にイーサネット・シールドに次のIPアドレスを割り当てます。<br />　　　192.168.1.153<br />　MACアドレスは基板に添付されている　MACアドレスの値を使用します。<br /></p>]]>
        <![CDATA[<p><font style="font-size: 1.25em;"><strong>シールドを使用するスケッチ</strong></font><br />&nbsp;&nbsp; Arduino IDEに用意されている、イーサネット用のサンプル・スケッチのWebserverに必要な変更を加え動かしてみます。<br /></p><p><strong>各定数の定義</strong><br />&nbsp; スケッチの先頭に、イーサネット・ライブラリを読み込むための#include <ethernet.h>を用意します。<br />　MACアドレス、IPアドレス、ゲートウェイ・アドレス、サブネット・マスクを、それぞれbyte型の配列をして定義しそれぞれの値を設定します。<br />
</ethernet.h></p><blockquote>#include <ethernet.h><br />// MACアドレス 00-20-C2-97-23-33　IP 192.168.1.153 とする<br />byte mac[] = { 0x00, 0x20, 0xC2, 0x97, 0x23, 0x33 };<br />byte ip[] = { 192, 168, 1, 153 };<br />byte gtw[]= { 192,168,1,1};<br />byte sbm[]= { 255,255,255,0};</ethernet.h></blockquote><br /><strong>イーサネット・サーバの定義</strong><br />&nbsp; イーサネット・シールドと通信相手のPCなどとの役割を決めます。ここでは、イーサネット・シールドに対してPCからブラウザで通信を要求し、シールドがPCにアナログポートから読み取ったデータを表示することにします。<br />　イーサネット・シールドをセットしたArduinoをイーサネット・サーバとして定義して、PCからイーサネット経由でWebブラウザを用いアクセスできるようにします。遠隔地の気象データや、各種のセンサで収集したデータをWebブラウザで確認できるようになります。そのためのサーバのモジュール（クラス）を用意します。<br />
<blockquote>　Server server(80);</blockquote><br /><strong>初期化処理</strong><br />　初期化処理のsetup()の中で、Ethernet.begin(mac, ip,gtw,sbm);によりMACアドレスとIPアドレスを指定します。ゲートウェイとサブネット・マスクは省略すると、それぞれの4番目の値が1と0になります。そのため、多くの場合はMACアドレスとIPアドレスの設定だけで済みます。アドレスなどの設定の後server.begin();でサーバの活動を開始します。<br />
<blockquote>void setup()<br />{<br />Ethernet.begin(mac, ip,gtw,sbm);<br />server.begin();<br />}</blockquote><br /><strong>サーバの処理</strong><br />　setup()でサーバが待機状態になりました。server.available()でサーバに接続されたクライアントの情報を得て、クライアントを生成します。接続状態のクライアントがあればクライアントからメッセージを調べます。<br />
<blockquote>void loop()<br />{<br />&nbsp;&nbsp; Client client = server.available();<br />&nbsp;&nbsp; if (client) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // an http request ends with a blank line<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean current_line_is_blank = true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (client.connected()) {</blockquote><br />　クライアントが接続状態の間、クライアントからのメッセージを調べ改行文字の検出とメッセージがなくなったことを検出してクライアントからの受信を終え、次のサーバーからのメッセージの送信に移ります。 
<p></p>
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (client.available()) { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char c = client.read(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // if we've gotten to the end of the line (received a newline <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // character) and the line is blank, the http request has ended,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// so we can send a reply<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (c == '\n' &amp;&amp; current_line_is_blank) { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // send a standard http response header<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client.println("HTTP/1.1 200 OK");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;client.println("Content-Type: text/html");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client.println();</blockquote>　Arduino０番から６番までのアナログ・ポートからデータを読み取り、見出しをつけてクライアントに送信します。 
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // output the value of each analog input pin <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; 6; i++) { client.print("analog input ");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;client.print(i); client.print(" is ");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;client.print(analogRead(i));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client.println("&lt;br /&gt;"); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</blockquote>
<p>　送信が終了したらbreakでループを抜け、クライアントの解放をclient.stop()で行い、もとに戻ります。</p>
<p>
</p><blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</blockquote>
<p></p>
<p>　読み取った文字が改行か否かをここでも判定しています。</p>
<blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (c == '\n') { </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // we're starting a new line</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;current_line_is_blank = true; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (c != '\r') {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;// we've gotten a character on the current line</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;current_line_is_blank = false; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;} </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // give the web browser time to receive the data</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;delay(1);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;client.stop();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;}</p>
<p>　　　　　　　　&nbsp;}</p></blockquote>
<p>　Arduino IDEに用意されているイーサネットのサンプル・スケッチのWebserverのMACアドレスとIPアドレスを、それぞれのシールドの設定値に変更しました。そのスケッチをArduinoにアップロードし、ArduinoをWebサーバにしWebブラウザでIPアドレスを指定しサーバにアクセスした結果を次に示します。</p>
<p></p>
<p></p>
<p>
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0580010.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="adr0580010.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/01/adr0580010-thumb-400x311.jpg" width="400" height="311" /></a></span>　見出しと、アナログ入力ポートの読み取り値が表示されています。参考のためにArduino IDEでアドレスなどを修正したスケッチも次に示します。後半のコメントを表示領域の関係で削除してあります。
<p></p>
<p>
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0580020.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="adr0580020.jpg" src="http://www.eleki-jack.com/FC/assets_c/2010/01/adr0580020-thumb-400x924.jpg" width="400" height="924" /></a></span>　今回はアナログ・ポートには何も接続されていませんでしたが、この後アナログ・ポートにセンサを接続して温度などがわかるようにします。<br />
<div style="text-align: right;">&lt;神崎康宏&gt;</div>
<p></p>]]>
    </content>
</entry>

<entry>
    <title>「Gainer互換Pepperでフィジカル・コンピューティング」フォローアップ記事（6）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/01/gainerpepper6.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.3797</id>

    <published>2010-01-19T00:28:59Z</published>
    <updated>2010-01-19T04:07:21Z</updated>

    <summary>LinuxでもPepperを使う　書籍「Gainer互換Pepperでフィジカル...</summary>
    <author>
        <name>kuwata</name>
        
    </author>
    
        <category term="Gainer互換Pepperでフィジカル・コンピューティング" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="fedora" label="Fedora" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ubuntu" label="Ubuntu" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[<b><font style="font-size: 1.25em;">LinuxでもPepperを使う</font></b><br /><br />　書籍「Gainer互換Pepperでフィジカル・コンピューティング」ではMacOSXとWindowsからの利用方法を説明しました。Linuxからも利用できることが確認できたので紹介します。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/30/01%20LinuxBox.JPG"><img alt="01 LinuxBox.JPG" src="http://www.eleki-jack.com/FC/2009/12/30/01%20LinuxBox-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="267" /></a></span><br /> <div><br /></div>]]>
        <![CDATA[　書籍の執筆時点では、LinuxでPepperを動作させようとすると、kernelに含まれるドライバにパッチをあてて、再コンパイルする必要がありました。初心者にはこの操作が難しいため、説明を断念しました。<br />　ところが、最新のkernelにはこのパッチがあらかじめ含まれています。2009年の秋に出た最新のLinux ディストリビューションを利用すれば、比較的容易に導入できるようになりました。<br /><br />　以下のディストリビューションではkernel 2.6.31が採用されています。すでにLOW-SPEED-CDCパッチがあたっているため、カーネル（ドライバ）のパッチとコンパイルなどは不要です。<br /><br /><ul><li>Fedora Core 12 (http://fedoraproject.org/)</li><li>Ubuntu 9.10 (http://www.ubuntulinux.jp/)</li></ul><br />以下、LinuxへのPepper開発環境の導入方法を説明します。<br /><br /><b>（１） Linuxのディストリビューリョンの選択と導入</b><br />・ Fedore Core 12/ Ubuntu 9.10などが利用可能です。<br />・ 今回は利用するマシンが古く、CPUパワーが不足することから、Ubuntuの派生のXubuntuを利用しました<br />・ インストール方法に関する説明はここでは省略します。ディストリビュータの提供するインストール方法を参照してください。インストール後にapt-getコマンドを使って開発用のプログラムも入れておくとよいと思います。<br /><br /><b>（２） Linuxの設定</b><br />・ 動作確認のためにcuコマンドを使うため，uucpパッケージを導入します。<br /><blockquote>% sudo apt-get install uucp<br /></blockquote>・ 標準の状態ではNetworkManager（modem-manager）が常にシリアル・ポート（モデムなど）を監視していて、シリアル・ポートを占有してしまうため、停止します。XubuntuではNetworkManagerを止めるとネットワークも使えなくなるため、modem-managerだけを停止します。<br />・ 変更方法は以下のファイルの記述をすべてコメントアウトして下さい。(行頭に#を入れる)<br /><blockquote>/usr/share/dbus-1/system-services/org.freedesktop.ModemManager.service<br /></blockquote>・ ユーザ権限でデバイスがアクセスできるように、パーミッションの設定をします。具体的には、ユーザをdialout, uucpグループに入れます。以下の[USER]は登録したユーザ名に変更してください。<br /><blockquote>% sudo groupadd [USER] dialout<br />% sudo groupadd [USER] uucp<br /></blockquote><br />（３） Pepperの確認<br />・ ここまでできれば、Pepperが/dev/ttyACM0として認識されるはずです。<br />・ /var/log/messageに以下のようなメッセージが出ているはずです。<br /><blockquote>Dec 30 06:48:08 ginger kernel: [&nbsp; 344.352041] usb 4-1: new low speed USB device using uhci_hcd and address 2<br />Dec 30 06:48:08 ginger kernel: [&nbsp; 344.510141] usb 4-1: config 1 interface 1 altsetting 0 endpoint 0x1 is Bulk; changing to Interrupt<br />Dec 30 06:48:08 ginger kernel: [&nbsp; 344.510162] usb 4-1: config 1 interface 1 altsetting 0 endpoint 0x81 is Bulk; changing to Interrupt<br />Dec 30 06:48:08 ginger kernel: [&nbsp; 344.530545] usb 4-1: configuration #1 chosen from 1 choice<br />Dec 30 06:48:08 ginger kernel: [&nbsp; 344.653494] cdc_acm 4-1:1.0: ttyACM0: USB ACM device<br />Dec 30 06:48:08 ginger kernel: [&nbsp; 344.660525] usbcore: registered new interface driver cdc_acm<br />Dec 30 06:48:08 ginger kernel: [&nbsp; 344.660544] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters<br /></blockquote><br />・ PepperをUSBポートにつないでcuコマンドで確認します。MacOSXやWindowsの場合と同じ手順ですが、手動でコマンドを入れて試験します。<br /><blockquote>% cu -l /dev/ttyACM0<br />Connected.<br />?1.0.0.0,pepper,20090621*I86880038*<br /></blockquote><br /><b>（４） Processingから使う方法</b><br />・ Linux用のProcessingをダウンロードして展開します。<br /><blockquote>% tar xfz processing-1.0.9.tgz<br /></blockquote>・ GainerのProcessing用のライブラリをインストールします。<br /><blockquote>librariesの中身をprocessing-1.0.9/librariesにコピー<br />examplesの中身をprocessing-1.0.9/examplesにコピー<br /></blockquote><br />・ RXTXライブラリを入れ替えます。<br />標準状態ではRXTXライブラリが/dev/ttyACM0をポートとして認識しないため、以下のファイルをパッチ済みの物と入れ替えます。（パッチ済みのライブラリ<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/30/RXTXcomm.jar">RXTXcomm.jar</a></span>）<br /><blockquote>Processing-1.0.9/libraries/gainer/library/RXTXcomm.jar<br /></blockquote><br />・ 簡単なプログラムで試験してみます。(<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/30/test.pde">test.pde</a></span>)<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/30/02%20Processing.html" onclick="window.open('http://www.eleki-jack.com/FC/2009/12/30/02%20Processing.html','popup','width=1280,height=1024,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/FC/2009/12/30/02%20Processing-thumb-400x320.png" alt="02 Processing.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="320" /></a></span><br /><br /><b>（５） Rubyからpepperを使うように設定を行ってみる</b><br />・ ruby, rubygemパッケージを導入<br /><blockquote>% apt-get install ruby ruby1.8-dev irb rdoc build-essential libopenssl-ruby1.8<br /></blockquote>・ Ruby-serialportパッケージを導入(<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/30/ruby-serialport-0.7.0.gem">ruby-serialport-0.7.0.gem</a></span>)<br /><blockquote>% sudo gem install ruby-serialport-0.7.0.gem <br /></blockquote>・ Gainer-rubyのパッケージを導入(ruby-serialport用のもの<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/30/gainer-0.0.2.gem">gainer-0.0.2.gem</a></span>)<br /><blockquote>% sudo gem install gainer-0.0.2.gem<br /></blockquote>・ 以下のプログラムで試験してみてください。<br /><br /><blockquote>require 'rubygems'<br />require 'gainer'<br /><br />gainer = Gainer::Serial.new('/dev/ttyACM0')<br /><br />#gainer.analog_output = 0xffffffff<br />#sleep(1)<br />#gainer.analog_output = 0<br />#sleep(1)<br /><br />while true<br />&nbsp; gainer.analog_output[0] = 0xff;<br />&nbsp; gainer.analog_output[1] = 0x00;<br />&nbsp; sleep(0.1)<br />&nbsp; gainer.analog_output[0] = 0x00;<br />&nbsp; gainer.analog_output[1] = 0xff;<br />&nbsp; sleep(0.1)<br />end<br /></blockquote><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/30/03%20Ruby.html" onclick="window.open('http://www.eleki-jack.com/FC/2009/12/30/03%20Ruby.html','popup','width=865,height=754,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eleki-jack.com/FC/2009/12/30/03%20Ruby-thumb-400x348.png" alt="03 Ruby.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="400" height="348" /></a></span><br /><br /><div align="right">桑田喜隆<br /></div><br /><div><br /></div><div><br /></div>]]>
    </content>
</entry>

<entry>
    <title>連載（57）Arduinoで何でも制御　LANに接続する（3）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/01/57arduinolan3.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.3790</id>

    <published>2010-01-14T02:18:18Z</published>
    <updated>2010-01-14T06:58:25Z</updated>

    <summary><![CDATA[Arduino イーサネット・シールド&nbsp; Arduinoのイーサネット...]]></summary>
    <author>
        <name>kanzaki</name>
        
    </author>
    
        <category term="Arduinoを使おう" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="イーサネットシールド" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ipアドレス" label="IPアドレス" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ping" label="ping" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[<p><strong><font style="font-size: 1.25em;">Arduino イーサネット・シールド</font><br /></strong>&nbsp; Arduinoのイーサネット シールドには、MACアドレスとIPアドレスを設定する必要があります。最近はほとんどのイーサネットのボードがDHCPに対応していますが、このボードは対応していなく、イーサネット・シールド用の標準のライブラリもDHCPに対応していません。<br />　そのため、イーサネット上の使用されているIPアドレスを調べて、重複しないようにイーサネット・シールドのIPアドレスを決める必要があります。<br />
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0570010.jpg"></a></span>]]>
        <![CDATA[<p><strong><font style="font-size: 1.25em;">LANのデバイスのIPアドレスを調べる</font><br /></strong>&nbsp; 多くは、ローカル・ネットワークを構成し、ルータを使用してインターネットのネットワークに接続しています。多くの場合、次に示すクラスのアドレスを割り当てます。　　　　　　　　 
</p><blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.ｎ.X</blockquote>　　　　<br />&nbsp; 192.168.ｎの部分でローカル・ネットワークのアドレスを示します。このローカル・ネットワークのアドレスが同一のアドレスの間で通信を行うことができます。Xはそのネットワーク内で端末ごとに割り当てるアドレスで0から254までの値を設定します。<br /><br /><strong>接続中のデバイスのアドレスを調べる<br /></strong>&nbsp;&nbsp; Windows7でもDOSのコマンドが利用できます。「<a href="http://shop.cqpub.co.jp/hanbai/books/46/46011.html">家庭でできるネットワーク遠隔制御</a>」（CQ出版）で示した方法ですが、ネットワークに接続されているデバイスにpingコマンドで応答を要求し返答があったもののIPアドレスを記録する方法があります。<br />　メモ帳で次の内容のBatファイルを作成します。 
<p></p>
<blockquote>　　for /l %%p in (1,1,254) do ping -n 1 -w 50 192.168.1.%%p<br />　　pause<br />　　arp -a<br />　　pause arp -a &gt;iplist.txt</blockquote><br />&nbsp; 保存するフォルダは、DOSのコマンドプロンプトを開いたときのカレント・フォルダに保存します。メモ帳でipchk.batのファイル名で作成します。 
<p></p>
<p>
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0570010.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="adr0570010.jpg" src="http://www.eleki-jack.com/FC/assets_c/2009/12/adr0570010-thumb-400x135.jpg" width="400" height="135" /></a></span>　最初の、forの行で　　ping -n 1 -w 50 192.168.1.1からping -n 1 -w 50 192.168.1.254<br />まで繰り返します。for /lのlはLの小文字です。<br />　for /lは次に示すように変数%%pの値を1から1刻みで254まで繰り返します。<br /><br /><strong>for /？　でforのhelpを表示した部分のfor /l の部分(下図より)<br /></strong>&nbsp;&nbsp; FOR /L %変数 IN (開始,ステップ,終了) DO コマンド [コマンド パラメータ]<br />　セットは、ステップの量ごとに変化する開始から終了までの数列です。<br />　たとえば、(1,1,5) は 1 2 3 4 5、(5,-1,1) は (5 4 3 2 1) という数列に<br />なります。
<p></p>
<p>
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0570015.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="adr0570015.jpg" src="http://www.eleki-jack.com/FC/assets_c/2009/12/adr0570015-thumb-400x397.jpg" width="400" height="397" /></a></span><b>pingのパラメータ</b><br />　pingのコマンドをデフォルトの設定では、応答の要求回数が4回で、待ち時間も長くなるので、-n　1で応答要求を1回に、-w 50で待時間を50msに設定しています。<br />
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;　　&nbsp; ping -n 1 -w 50 192.168.1.1</blockquote><br />　次のping /？で表示したHelpを示します。 
<p><br />
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0570013.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="adr0570013.jpg" src="http://www.eleki-jack.com/FC/assets_c/2009/12/adr0570013-thumb-400x397.jpg" width="400" height="397" /></a></span><strong>arp -a　で通信できたデバイスのアドレスを表示<br /></strong>　ネットワーク経由で通信できた相手のIPアドレスと、MACアドレスのリストが作られ保存されます。そのため、pingで通信できた相手先のIPアドレスとMACアドレスもこのリストに追加され保存されています。　このリストを次の、 
<blockquote>　　　　　arp –a</blockquote><br />のコマンドで表示します。コマンドのプロンプトの表示画面の表示を一時停止してリストの内容を確認できるようにpauseコマンドを挿入しています。<br />　次に、arp /？で表示したHelpの画面を表示しておきます。 
<p><br />
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0570017.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="adr0570017.jpg" src="http://www.eleki-jack.com/FC/assets_c/2009/12/adr0570017-thumb-400x397.jpg" width="400" height="397" /></a></span><strong><font style="font-size: 1.25em;">ipchk.batの実行結果</font><br /></strong>&nbsp; IPアドレスを確認するbatファイルipchk.batの実行結果を次に示します。実行すると少し時間がかかりますが、指定された全アドレスのデバイスにpingで応答要求しpauseでとまり、key入力を要求します。いずれかのキーを押すと次のようにIPアドレスとMACアドレスが表示されます。
<p></p>
<p>
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0570020.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="adr0570020.jpg" src="http://www.eleki-jack.com/FC/assets_c/2009/12/adr0570020-thumb-400x290.jpg" width="400" height="290" /></a></span>　次のpauseに答えると、<br />
<blockquote>　　　　　arp -a &gt;iplist.txt</blockquote><br />が実行され、arp -aで表示されるリストがコマンドプロンプトの画面でなくiplist.txtのファイルに保存されます。<br />　次に、保存されたiplist.txtのtypeコマンドで表示した様子を示します。 
<p><br />
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/adr0570030.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="adr0570030.jpg" src="http://www.eleki-jack.com/FC/assets_c/2009/12/adr0570030-thumb-400x290.jpg" width="400" height="290" /></a></span>　先ほど、画面に表示されたものがiplist.txtに保存されたことが確認できます。<br />　次回、このリストを元にIPアドレスの空きエリアを確認しMACアドレスと共にスケッチで設定する方法などに進みます。<br />
<div style="text-align: right;">&lt;神崎康宏&gt;</div><br />
<p></p>]]>
    </content>
</entry>

<entry>
    <title>「Gainer互換Pepperでフィジカル・コンピューティング」フォローアップ記事（5）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/01/gainerpepper5.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.3771</id>

    <published>2010-01-06T22:31:50Z</published>
    <updated>2010-01-07T13:53:50Z</updated>

    <summary><![CDATA[市販のモーション・センサを使う &nbsp;　「Gainer互換Pepperでフ...]]></summary>
    <author>
        <name>kuwata</name>
        
    </author>
    
        <category term="Gainer互換Pepperでフィジカル・コンピューティング" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="amn32112" label="AMN32112" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[<p><b><font style="font-size: 1.25em;">市販のモーション・センサを使う</font></b></p>



<p>&nbsp;　「Gainer互換Pepperでフィジカル・コンピューティング」の第6章ではセンサとして市販の焦電センサ・ユニットを改造して利用しました。単体の焦電型センサ・モジュールの使い方も説明しましたが、別のパナソニック製のモーション・センサ・ユニットが入手できましたので、Pepperで試しました。</p>

<p>&nbsp;</p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/21/00%20MotionSensor.jpg"><img alt="00 MotionSensor.jpg" src="http://www.eleki-jack.com/FC/2009/12/21/00%20MotionSensor-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="267" width="400" /></a></span>]]>
        <![CDATA[<p><b><font style="font-size: 1.25em;">【人体検出用赤外線センサ NaPiOn(ナピオン)】</font></b></p>

<p>　<a href="http://panasonic-denko.co.jp/ac/j/control/sensor/human/napion/index.jsp">ナピオン</a>はパナソニック電工の販売している人体検出用赤外線センサ・ユニットです。人体の発生する赤外線を検知することで、人がいるかどうかをセンスするためのセンサです。トイレなどの照明の自動点灯に利用されています。</p>

<p>&nbsp;</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/21/01%20MotionSensor.jpg"><img alt="01 MotionSensor.jpg" src="http://www.eleki-jack.com/FC/2009/12/21/01%20MotionSensor-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="267" width="400" /></a></span>



<p><a href="http://panasonic-denko.co.jp/ac/j/control/sensor/human/napion/index.jsp">http://panasonic-denko.co.jp/ac/j/control/sensor/human/napion/index.jsp</a></p>

<p>&nbsp;</p>

<p>　いくつかタイプがあるようですが、今回はディジタル出力をもち微動を検知することのできるAMN32112を使いました。検出距離は最大２メートルで近距離の検知用です。また、検出範囲は水平および垂直方向に９１度と広範囲をカバーしています。</p>

<p>　筆者は秋葉原の千石電商で、１０５０円で入手しました。ほかにも長距離をカバーする物や、検知範囲を絞ったものなど数種類の異なる特性をもつセンサが入手可能です。用途に合わせて選択してください。</p>

<p>&nbsp;</p>

<p><font style="font-size: 1.25em;"><b>【回路】</b></font></p>

<p>　動作電圧範囲が3Vから6Vとなっていますので， Pepper経由で5Vを直接給電します。また、出力はディジタルで検知した場合にセンサ内部のスイッチがONになり出力に5Vの電圧が出力されます。未検知の場合には出力がオープンになるようですので，センサ出力とグラウンドの間に10kオームの抵抗を挿入しプルダウンすることにしました。</p>

<p>&nbsp;</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/21/02%20Schematic.png"><img alt="02 Schematic.png" src="http://www.eleki-jack.com/FC/2009/12/21/02%20Schematic-thumb-400x320.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="320" width="400" /></a></span>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/21/03%20SensorPin.jpg"><img alt="03 SensorPin.jpg" src="http://www.eleki-jack.com/FC/2009/12/21/03%20SensorPin-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="267" width="400" /></a></span>

<p>&nbsp;</p>

<p>　回路が簡単なので、ブレッドボードへの実装もすぐに終わると思います。</p>

<p>&nbsp;</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/21/04%20BreadBoard.jpg"><img alt="04 BreadBoard.jpg" src="http://www.eleki-jack.com/FC/2009/12/21/04%20BreadBoard-thumb-400x267.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="267" width="400" /></a></span><br />&nbsp;

<p><b><font style="font-size: 1.25em;">【プログラム】</font></b></p>

<p>　Processingでプログラムを作成します。モード１のアナログ入力チャネル０から値を読み込んで、動作を確認をしました。</p>

<p>&nbsp;</p>

<blockquote><p>/*<span style="">&nbsp; Analog Input [0]　*/</span></p><p>import processing.gainer.*;</p><p>&nbsp;</p><p>PFont myFont;</p><p>Gainer gainer;</p><p>&nbsp;</p><p>void setup(){</p><p><span style="">&nbsp; size(250,250);</span></p><p><span style="">&nbsp; gainer = new Gainer(this,Gainer.MODE1);</span></p><p><span style="">&nbsp; myFont =
loadFont("CourierNewPSMT-24.vlw");</span></p><p><span style="">&nbsp; textFont(myFont, 24);</span></p><p><span style="">&nbsp; frameRate(30);</span></p><p>}</p><p>&nbsp;</p><p>void draw(){</p><p><span style="">&nbsp; int v;</span></p><p><span style="">&nbsp; gainer.peekAnalogInput();<span style="">&nbsp; // read analog port</span></span></p><p><span style="">&nbsp; v = gainer.analogInput[0];<span style="">&nbsp; // Display Control</span></span></p><p><span style="">&nbsp; background(v);</span></p><p><span style="">&nbsp; fill(255, 0, 0);</span></p><p><span style="">&nbsp; text("Analog[0] = " + v ,30,
120);</span></p><p>}</p></blockquote>
<p>【動作確認】</p>

<p>　ProcessingからRunを選択すれば、画面のセンサの読み取り値が表示されます。動作画面を示します。</p>

<p>　検出された場合には，200程度の大きな値が、検知されない場合には100より小さな値が表示されると思います。</p>

<p>&nbsp;</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/21/05%20ScreenCapture.png"><img alt="05 ScreenCapture.png" src="http://www.eleki-jack.com/FC/2009/12/21/05%20ScreenCapture-thumb-400x324.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="324" width="400" /></a></span>

<p>&nbsp;</p>

<p class="MsoNormal" align="right">桑田喜隆</p>

<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>連載28縫って作るコンピュータLilyPad Arduino　配線方法の検討（3）</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2010/01/28lilypad-arduino3.html" />
    <id>tag:www.eleki-jack.com,2010:/FC//15.3760</id>

    <published>2010-01-05T02:02:05Z</published>
    <updated>2010-01-05T03:04:24Z</updated>

    <summary><![CDATA[ラッピング用ワイヤを用いた配線（2）&nbsp;&nbsp; 前回、LilyPa...]]></summary>
    <author>
        <name>kanzaki</name>
        
    </author>
    
        <category term="Arduinoを使おう" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="LilyPad Arduino　マイコンボード" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="縫って作るコンピュータ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="配線、はんだ付け、コネクタ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ラッピング・ワイヤ" label="ラッピング・ワイヤ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[<p><font style="font-size: 1.25em;"><strong>ラッピング用ワイヤを用いた配線（2）</strong></font><br />&nbsp;&nbsp; 前回、LilyPad Arduinoとオプションパーツをラッピング・ワイヤで接続して動かしてみました。今回は、トートバッグにラッピング・ワイヤで縫い付けてみました。</p><p><br /><strong><font style="font-size: 1.25em;">刺繍針で穴を明けワイヤを通す</font><br /></strong>&nbsp;&nbsp; AWG30のラッピング・ワイヤは刺繍針の針穴に通すことはできますが、布を縫おうとするとワイヤが引っ掛かります。そのため、刺繍針で穴を開けその穴にラッピング・ワイヤを通しました。<br />　部品の穴の下に布の裏からラッピング・ワイヤを通し、5cm以上被覆をむいたラッピング・ワイヤを部品の取り付け穴に巻きつけます。部品だけに巻きつけ布を重ねていません。</p>
<p>
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/lilypad280010.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="lilypad280010.jpg" src="http://www.eleki-jack.com/FC/assets_c/2009/12/lilypad280010-thumb-400x285.jpg" width="400" height="285" /></a></span>]]>
        <![CDATA[<p>　ワイヤの巻きつけは、次に示すように毎回、ラジオ・ペンチなどでしっかり巻きつけ4、5回は巻きつけています。</p>
<p></p>
<p>
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/lilypad280020.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="lilypad280020.jpg" src="http://www.eleki-jack.com/FC/assets_c/2009/12/lilypad280020-thumb-400x365.jpg" width="400" height="365" /></a></span>　今回利用した、トートバッグは、新国立美術館で行われて東京五美術大学連合卒業・修了制作展で女子美の受付でもらったものを使用しました。<br />　フルカラーLEDの接続は赤、青、緑のワイヤを使用しましたので、途中の縫い目でワイヤの色がわかります。プラス電源のワイヤは紫のワイヤを使用しましたので、あまり目立ちません。
<p></p>
<p><br />
</p><span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/lilypad280030.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="lilypad280030.jpg" src="http://www.eleki-jack.com/FC/assets_c/2009/12/lilypad280030-thumb-400x285.jpg" width="400" height="285" /></a></span>　生地の裏側も、絶縁被覆のラッピング・ワイヤですから、次に示すように配線が交差しても特別な処理の必要はありません。ただし縫い目が粗いためトートバッグの出し入れのとき少し注意が必要なようです。<br /><br />
<span style="display: inline;" class="mt-enclosure mt-enclosure-image"><a href="http://www.eleki-jack.com/FC/kanzaki/lilypad280040.jpg"><img style="margin: 0px auto 20px; text-align: center; display: block;" class="mt-image-center" alt="lilypad280040.jpg" src="http://www.eleki-jack.com/FC/assets_c/2009/12/lilypad280040-thumb-400x199.jpg" width="400" height="199" /></a></span>　 次回、電池ボックス、温度センサなどを取り付ける予定です。<br />　東京工業大学で行われたMAKEに参加されていた方々も、LilyPad Arduinoの配線については、いろいろ苦労しているようでした。ワイヤ・ラッピングを使用することで、接触不良と配線の電圧降下には悩まされなくなりそうです。<br />
<div style="text-align: right;">&lt;神崎康宏&gt;<br /><br /></div>
<p></p>]]>
    </content>
</entry>

<entry>
    <title>「Gainer互換Pepperでフィジカル・コンピューティング」フォローアップ記事（4</title>
    <link rel="alternate" type="text/html" href="http://www.eleki-jack.com/FC/2009/12/gainerpepper3.html" />
    <id>tag:www.eleki-jack.com,2009:/FC//15.3754</id>

    <published>2009-12-24T23:35:42Z</published>
    <updated>2009-12-25T14:38:35Z</updated>

    <summary> 　Pepperに関するよくある質問（Frequently Asked Ques...</summary>
    <author>
        <name>kuwata</name>
        
    </author>
    
        <category term="Gainer互換Pepperでフィジカル・コンピューティング" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="gainer" label="Gainer" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="オープンソース・ハードウエア" label="オープンソース・ハードウエア" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.eleki-jack.com/FC/">
        <![CDATA[
　Pepperに関するよくある質問（Frequently Asked Questions）の続きです。<br />　 「Gainer互換Pepperでフィジカル・コンピューティング」出版を記念して、改めてPepperに関する基礎的な知識を、よくある質問（Frequently Asked Questions）の形にまとめてみました。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eleki-jack.com/FC/2009/12/18/R0012990.jpg"><img alt="R0012990.jpg" src="http://www.eleki-jack.com/FC/2009/12/18/R0012990-thumb-400x300.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="300" width="400" /></a></span><br />]]>
        <![CDATA[
【<font style="font-size: 1.25em;"><b>Q9</b></font>：Gainerに関する情報源を教えてください】

<br />　前回紹介した書籍以外に、次の情報源があります。

<br />&nbsp;(1) Gainerフォーラム

<p>　Gainerに関する情報交換を行うためのフォーラムが設置させています。わからないことがあれば、まずフォーラムの過去の投稿を探して見てください。</p>

<p>　　　<a href="http://gainer.cc/forum/">http://gainer.cc/forum/</a></p>

&nbsp;(2) ワークショップや講習会<br />　各地でワークショップや講習会が開催されています。参加してみるのもよいと思います。Gainerフォーラムの「おしらせ」で告知がありますの。

また、アールティでも2010年から月1回秋葉原ショールームで講習会を開催する予定です。

<a href="http://www.gainer-mini.jp/?p=268">http://www.gainer-mini.jp/?p=268</a>

&nbsp;

<br /><br />【<b><font style="font-size: 1.25em;">Q１０</font></b>：Pepperがパソコンから認識されません】

<p>・ Pepperで利用しているV-USBの制約から、ハブを経由している場合には、動作しない場合が多いようです。直接パソコンのUSBポートに接続してみてください。</p>

<p>・ 自分でファームウエアを書き込んだ場合には、ヒューズビットの書き込みも必要になります。ヒューズビットは必ず次のように設定してください。</p>

<blockquote><p>HFUSE: 0x5d LFUSE: 0xe1</p></blockquote>

<p>・ 自分で組み立てた場合には、はんだ付けがちゃんとできているか、CPUの向きはあっているかなどを確認してください。</p>

&nbsp;

【<b><font style="font-size: 1.25em;">Q１１</font></b>：オープンソース・ハードウエアって何ですか？】<br />&nbsp;　インターネットのコミュニティ（フォーラムやメーリング・リストなど）上で自分たちのニーズにあったソフトウエアを作るため、ソフトウエア開発を行う「オープンソース・ソフトウエア(OSS)」と呼ばれる流れがあります。再利用しやすいライセンス方法をとることで、既存のOSSを利用して新しいソフトウエアを自由に作成することができるため、非常に多くのプロジェクトが作られています。インターネット上での情報交換をもとに開発を進める場合が多いので、趣味やパートタイムでプログラムを組むような人も参加することができます。

<br />　一方で、ソフトウエアにとどまらず、ハードウエアにもこの波が広がっています。消費者向けの製品に飽き足りない工作好きが、自分で設計したハードウエアの設計情報を公開し、互いに切磋琢磨して。現在は趣味でハードウエアをいじる人向けですが、今後ニッチビジネスとして広がると予想している人もいます。<br />&nbsp;　背景には、非大量生産品に体する需要の増加や電子回路や基板などの設計ソフトウエアの低価格化（フリー化）などがあるようです。もちろん、最も大きな要因はOSSと同じくインターネット・コミュニティの存在だと思います。<br />&nbsp;　皆さんも自分の作った作品をインターネットで公開することから、オープンソース・ハードウエアを初めてみませんか？<br /><br />


<p align="right">桑田喜隆</p>


<br />

]]>
    </content>
</entry>

</feed>
