tag:blogger.com,1999:blog-35144986587674693672024-03-14T17:26:10.248+09:00建築発明工作ゼミ2008四谷アートステュディウム・建築発明工作ゼミ(2008年度)の授業サブノート<br>主にProcessingやArduinoについて記載しています。Unknownnoreply@blogger.comBlogger107125tag:blogger.com,1999:blog-3514498658767469367.post-56924874300888251052010-06-14T11:44:00.002+09:002010-06-23T10:47:31.949+09:00秋葉原工作マップ秋葉原の電子部品関連のマップです。<br />緑マーク:Arduino販売店。<br />青マーク:電子部品など。<br />黄マーク:Wifi/FONスポット。<br />赤マーク:飲食など。<br /><br /><iframe width="640" height="480" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.jp/maps/ms?ie=UTF8&hl=ja&brcurrent=3,0x60188c1c2969d079:0xcbce389a6b190c21,0&msa=0&msid=106657995331555245824.000484475e17cc785f83a&ll=35.70007,139.771736&spn=0.008364,0.013733&z=16&output=embed"></iframe><br /><small>より大きな地図で <a href="http://maps.google.co.jp/maps/ms?ie=UTF8&hl=ja&brcurrent=3,0x60188c1c2969d079:0xcbce389a6b190c21,0&msa=0&msid=106657995331555245824.000484475e17cc785f83a&ll=35.70007,139.771736&spn=0.008364,0.013733&z=16&source=embed" style="color:#0000FF;text-align:left">秋葉原工作マップ</a> を表示</small>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-89615445475196645312010-04-17T08:50:00.001+09:002010-04-17T08:51:58.589+09:00建築農業工作ゼミ2010開講<a href="http://ken-nou-kou.blogspot.com/">建築農業工作ゼミ2010</a>、4/17から開講です。Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-3514498658767469367.post-20279807097270022302010-02-19T02:00:00.009+09:002010-03-23T15:22:01.029+09:002010年度 「建築農業工作ゼミ」トライアルワークショップ(工作編)+ガイダンス<span style="font-weight:bold;">終了致しました。ご参加ありがとうございました。</span><br /><br />2010年度「<a href="http://ken-nou-kou.blogspot.com/">建築農業工作ゼミ</a>」受講にむけたトライアルワークショップとして、初心者向けのArduino電子工作ワークショップ行ないます。<br />「建築農業工作ゼミ」受講希望者は、ぜひご参加下さい。<br />ワークショップ後には、ゼミ全体のガイダンスも行なわれます。<br /><br />■日時:2010年3月20日(土)<br />13:00-17:00|初心者向けArduino電子工作ワークショップ<br />17:00-17:30|建築農業工作ゼミ ガイダンス<br /><br />■ワークショップ内容:<br />電子工作の経験はないけれども興味がある初心者を対象としています。<br />Arduinoボード(マイコン)を用いて、電子回路や電子工作の基礎を学びます。<br />(1)電子工作/プログラムに必要な環境のセットアップ<br />(2)基本:LEDを光らせる<br />(3)応用:センサと音出力<br /><br />■定員:20名<br /><br />■参加費:1000円(材料費込)<br />※持参するものの費用は各自ご負担ください。<br />※ガイダンスのみの参加も可能です(その場合は無料)。<br /><br />■当日持参するもの:<br />●ノートパソコン(WinまたはMac)<br />●Arduinoボード(以下に購入方法の説明あり)<br />●USBケーブル(Arduinoホードとパソコンをつなぐケーブル)<br /><br />Arduinoボード(基板)には幾つか種類がありますが、「<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001VG2RYO/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Arduino Duemilanove 328</a>」(3200円)という種類のものをおすすめします。<br />WEB通販であれば、<a href="http://www.amazon.co.jp/Arduino-Duemilanove-328/dp/B001VG2RYO/ref=sr_1_3?ie=UTF8&s=electronics&qid=1266521867&sr=8-3">アマゾン</a>、<a href="http://www.switch-science.com/products/detail.php?product_id=3">スイッチサイエンス</a>などがあります。<br />秋葉原の店頭で購入するなら<a href="http://sengoku-akb.jugem.jp/?eid=89">千石電商</a>などがあります<br />その他購入先については以下のサイトに説明があります。<br /><a href="http://ken-nou-kou.blogspot.com/2009/08/arduino.html">http://ken-nou-kou.blogspot.com/2009/08/arduino.html</a><br /><br />申し込み方法<br /><br />事務室までお電話/ファックスでまたは直接ご予約ください<br />(定員に達し次第受付を締め切りますのでお早めにお申し込みください)。<br /><br />■会場:四谷アート・ステュディウム講義室<a href="http://correlative.org/access/index.html">【地図】</a><br /><br />■お申し込み/お問い合わせ:<a href="http://artstudium.org/">四谷アート・ステュディウム</a>事務室(校舎2F)<br />tel. 03-3351-0591<br /><br />リンク:<br /><a href="http://artstudium.org/news/2010/02/post_59.htm">「建築農業工作ゼミ」トライアルワークショップ</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-82258300980212353012009-12-15T02:08:00.006+09:002009-12-18T15:54:17.108+09:00建築農業工作ゼミ2009 企画展示開催のお知らせ<br><br /><span style="font-family:times new roman;font-size:180%;">『 Nature in Our Life + nöche café - 』<br /></span><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_o3YsxTmVCK4/SyPK1JhGPHI/AAAAAAAAANA/xZwATTAQ34Q/s1600-h/cafe_fryer_for_blog.png"><img style="MARGIN: 0pt 10px 10px 0pt; WIDTH: 400px; FLOAT: left; HEIGHT: 252px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5414394191466085490" border="0" alt="" src="http://4.bp.blogspot.com/_o3YsxTmVCK4/SyPK1JhGPHI/AAAAAAAAANA/xZwATTAQ34Q/s400/cafe_fryer_for_blog.png" /></a><br /><br /> +++ place +++<br /> <a href="http://correlative.org/" target="_blank">GALLERY OBJECTIVE CORRELATIVE</a><br /> 〒160-0004 東京都新宿区四谷1-5<br /><br /> +++ date/time +++<br /> 2009/12/24 Thu 17:00 - 20:00<br /> 2009/12/25 Fri 13:00 - 18:00<br /> 2009/12/26 Sat 10:00 - 20:00<br /><br /> +++ organizer +++<br /> <a href="http://ken-nou-kou.blogspot.com/" target="_blank">建築農業工作ゼミ</a> カフェプロジェクト<br /><br /><br /><br />■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■<br /><br />●展示主旨<br /><br />「Nature in Our Life」は、都市に生活する私たちの「自然」や「農」に対する関心を深めるに<br />はどうすればよいかをテーマにした企画展です。<br /><br />私たち都市生活者は、自然から離れ、食料確保の直接的な営みを遠ざけてきました。食料危機<br />や気候変動など「自然」をめぐるさまざまな問題が顕在化している今、「農=生態系の循環と<br />共にある暮らし」を、あらためて都市の生活に組み込んでいくことが課題になっています。<br /><br />会場ではエレクトロニクスを応用して農作物や植物との関係性を探る作品が展示されるほか、<br />カフェとしても機能し、コミュニケーションの「場」としてのあり方を模索する試みを合わせ<br />てご紹介いたします。<br /><br />私たちが獲得したテクノロジーと「自然」とを融合させ、暮らしにおける新しい価値を生み出<br />して行く可能性を提示したいと考えています。<br /><br /><br />■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■<br /><br />●カフェ<br /><br /><span style="font-size:130%;">+ nöche café -</span><br /><br />「農地」から収穫したハーブを温かいフレッシュハーブティにしてご提供いたします。<br />また、ベランダ栽培で収穫できる素材を使用したお料理もご用意しております。<br />お手数ですが、食器(お皿、コップ、箸)をご持参ください。<br />本展覧会のテーマへの皆様のご理解をいただければ幸いです。<br /><br /><br />■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■<br /><br />近畿大学 国際人文科学研究所<br />東京コミュニティカレッジ <a href="http://artstudium.org/">四谷アート・ステュディウム</a><br />〒160-0004 東京都新宿区四谷1-5<br />tel. 03-3351-0591<br /><br><br>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-59142736654154050062009-05-31T09:46:00.003+09:002009-05-31T09:55:13.513+09:00建築農業工作ゼミ20092009年度版「<a href="http://ken-nou-kou.blogspot.com" target="_blank">建築農業工作ゼミ</a>」のブログを新たに開設しました。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-64578678265668278812009-04-07T03:08:00.006+09:002009-04-11T18:06:30.604+09:00書籍:Programming Interactivity<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://oreilly.com/catalog/covers/9780596800581_cat.gif"><img style="cursor:pointer; cursor:hand;width: 180px; height: 236px;" src="http://oreilly.com/catalog/covers/9780596800581_cat.gif" border="0" alt="" /></a><br />Programming Interactivity: Rough Cuts Version<br />A Designer's Guide to Processing, Arduino, and openFrameworks<br /><a href="http://oreilly.com/catalog/9780596800581/index.html">http://oreilly.com/catalog/9780596800581/index.html</a><br /><br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/0596154143/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/5105WKiFYSL._SL160_.jpg" alt="Programming Interactivity: Unlock the Power of Arduino, Processing, and Openframeworks" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/0596154143/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Programming Interactivity: Unlock the Power of Arduino, Processing, and Openframeworks</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/0596154143/kousakukousak-22/ref=nosim/" title="Programming Interactivity: Unlock the Power of Arduino, Processing, and Openframeworks" target="_blank">amazlet</a> at 09.04.11</div></div><div class="amazlet-detail">Joshua Noble <br />Oreilly & Associates Inc <br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/0596154143/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-9803948342011992892009-04-02T09:54:00.010+09:002009-05-09T16:26:25.786+09:00Arduino Quad Core Quadruino<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://magicsmoke.downingterrazas.com/wp-content/uploads/2009/05/multiduino-2layout.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 160px;" src="http://magicsmoke.downingterrazas.com/wp-content/uploads/2009/05/multiduino-2layout.jpg" border="0" alt="" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.freeduino.de/files/images/arduino_quad.jpg" target="_blank"><img style="cursor:pointer; cursor:hand;width: 320px; height: 172px;" src="http://www.freeduino.de/files/images/arduino_quad.jpg" border="0" alt="" /></a><br />Quadruino:<br />ATmega328を4個搭載したQuadruinoが4週間後に$70で販売されるようです。<br />4つのスケッチを同時に実行することが可能で、従来のシールドも搭載可能らしいです。<br />また、ALTERA EP1K50 FPGAチップによって、4個のコントローラをひとまとまりにしたパワフルな動作も可能らしいです。<br /><br />マイクロコントローラ:ATmega328x4個<br />使用電圧:5V<br />入力電圧(推奨):7-12V<br />入力電圧(限界):6-20V<br />デジタル入出力ピン数:56本<br />アナログ入力ピン数:24本<br /><br />リンク:<br /><a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1238600379/0">http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1238600379/0</a><br /><a href="http://www.freeduino.de/en/blog/arduino-quad-core-quadruino-0" target="_blank">http://www.freeduino.de/en/blog/arduino-quad-core-quadruino-0</a><br /><br /><br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274501868/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51WGgbQm8OL._SL160_.jpg" alt="超低コスト インターネット・ガジェット設計―USB・μIP・microSDプロトコールスタックの活用" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274501868/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">超低コスト インターネット・ガジェット設計―USB・μIP・microSDプロトコールスタックの活用</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/4274501868/kousakukousak-22/ref=nosim/" title="超低コスト インターネット・ガジェット設計―USB・μIP・microSDプロトコールスタックの活用" target="_blank">amazlet</a> at 09.04.02</div></div><div class="amazlet-detail">武藤 佳恭 <br />オーム社 <br />売り上げランキング: 5687<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274501868/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-3514498658767469367.post-67855154514689481262009-03-30T05:11:00.004+09:002009-03-30T05:36:21.612+09:00Arduino Li-ionバッテリ Litium Backpack Stealth<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7uyXRm_coS4/Sc_WsOvI3nI/AAAAAAAAAjs/RXQMKBnvZnc/s1600-h/litium.png"><img style="cursor:pointer; cursor:hand;width: 400px; height: 297px;" src="http://2.bp.blogspot.com/_7uyXRm_coS4/Sc_WsOvI3nI/AAAAAAAAAjs/RXQMKBnvZnc/s400/litium.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5318705740306243186" /></a><br /><a href="http://www.liquidware.com" target="_blank">Liquidwire</a>が販売している<a href="http://www.liquidware.com/shop/show/BP/Lithium+Backpack+Stealth" target="_blank">Arduino用リチウムイオンバッテリ</a>(5V/3.3V出力)。<br /><br />三種類あり、Arduino基板を通して充電可能、またはmini USBケーブル接続で直接充電可能。<br />サイズはArduino基板と同程度。<br />Arduino基板に重ねて取り付けるためのネジ類付属。<br /><br />・高容量:2200mAh(29時間):$47.36<br />・中容量:1000mAh(15時間):$34.63<br />・小容量:600mAh(9.4時間):$31.90<br /><br />リンク:<a href="http://www.liquidware.com/shop/show/BP/Lithium+Backpack+Stealth" target="_blank">liquidwire/Litium Backpack Stealth</a><br /><br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4789834468/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/5175GGE3PSL._SL160_.jpg" alt="電池応用ハンドブック―各種電池の基礎知識から、電池応用回路、充放電マネージメント・システム、活用資料集まで (ハードウェア・セレクション)" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4789834468/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">電池応用ハンドブック―各種電池の基礎知識から、電池応用回路、充放電マネージメント・システム、活用資料集まで (ハードウェア・セレクション)</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/4789834468/kousakukousak-22/ref=nosim/" title="電池応用ハンドブック―各種電池の基礎知識から、電池応用回路、充放電マネージメント・システム、活用資料集まで (ハードウェア・セレクション)" target="_blank">amazlet</a> at 09.03.30</div></div><div class="amazlet-detail"><br />CQ出版 <br />売り上げランキング: 100791<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4789834468/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-60358477779471741672009-03-28T01:45:00.005+09:002009-03-30T01:57:28.247+09:00Arduino AC Power Shield<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7uyXRm_coS4/Scz9kXnt2rI/AAAAAAAAAjc/f30fE__24Ds/s1600-h/ACpow.JPG"><img style="cursor:pointer; cursor:hand;width: 400px; height: 312px;" src="http://1.bp.blogspot.com/_7uyXRm_coS4/Scz9kXnt2rI/AAAAAAAAAjc/f30fE__24Ds/s400/ACpow.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5317904061275429554" /></a><br />Arduino AC Power Shield<br /><br />まだプロトタイプ段階のようですが、一応販売もしているようです。<br />120V/60Hz用らしいです。<br /><br />リンク:<br />販売:<a href="http://ryanjmclaughlin.com/arduino" target="_blank">http://ryanjmclaughlin.com/arduino</a><br />記事:<a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236998971" target="_blank">Arduino Forum内</a><br /><br /><a href="http://px.a8.net/svt/ejp?a8mat=1HS2Y1+5U61BM+Z82+67JU9" target="_blank"><br /><img border="0" width="234" height="60" alt="" src="http://www24.a8.net/svt/bgt?aid=090329833353&wid=001&eno=01&mid=s00000004565001043000&mc=1"></a><br /><img border="0" width="1" height="1" src="http://www14.a8.net/0.gif?a8mat=1HS2Y1+5U61BM+Z82+67JU9" alt="">Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-82149156464135365362009-03-28T01:30:00.003+09:002009-06-21T21:23:52.963+09:00DSbrut<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7uyXRm_coS4/Sc0J9yLIMlI/AAAAAAAAAjk/n2eHBAjL-ck/s1600-h/imagemagic2.jpg"><img style="cursor:pointer; cursor:hand;width: 400px; height: 175px;" src="http://3.bp.blogspot.com/_7uyXRm_coS4/Sc0J9yLIMlI/AAAAAAAAAjk/n2eHBAjL-ck/s400/imagemagic2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5317917692039541330" /></a><br /><br />DS brut($31.95/€26.00):上画像<br />ニンテンドーDSからUART、GPIO、PWM、ADC、I2Cなどの制御/通信が可能。<br />Atmega168(8MHz)を使用。<br />Arduinoソフトウェア(LilyPad Arduino用)でプログラムをアップすることが可能。<br /><br />新型DS brut 3G(€38.00):<br />加速度センサADXL330内蔵型。<br /><br />専用ファームウェア「libdsbrut-0.9」が最近リリースされたようです。<br />*ただし、最近の<a href="http://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%B8%E3%82%B3%E3%83%B3">マジコン</a>の流通規制との関係から利用は難しいのかもしれません(?)。<br /><br />リンク:<br /><a href="http://dsbrut.sukzessiv.net/">DSbrut</a><br /><a href="http://www.electrobee.com/nds-io-adapters-c-5.html">electrobee</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-86730108974715011392009-03-28T00:40:00.003+09:002009-03-29T01:41:38.999+09:00Arduino PID制御ライブラリPID制御用のライブラリ(最新バージョン:Beta 0.6)。<br /><a href="http://www.arduino.cc/playground/Code/PIDLibrary">http://www.arduino.cc/playground/Code/PIDLibrary</a><br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4789837130/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/5155Y3EN56L._SL160_.jpg" alt="シミュレーションで学ぶ自動制御技術入門―PID制御/ディジタル制御技術を基礎から学ぶ (計測・制御シリーズ)" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4789837130/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">シミュレーションで学ぶ自動制御技術入門―PID制御/ディジタル制御技術を基礎から学ぶ (計測・制御シリーズ)</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/4789837130/kousakukousak-22/ref=nosim/" title="シミュレーションで学ぶ自動制御技術入門―PID制御/ディジタル制御技術を基礎から学ぶ (計測・制御シリーズ)" target="_blank">amazlet</a> at 09.03.29</div></div><div class="amazlet-detail">広井 和男 宮田 朗 <br />CQ出版 <br />売り上げランキング: 20517<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4789837130/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-38516855198936322772009-03-27T04:09:00.006+09:002009-03-27T04:34:12.624+09:00Arduino Mega+Arduino IDE version 0015<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7uyXRm_coS4/ScvTov6WRCI/AAAAAAAAAi8/GGARLVrirVs/s1600-h/ArduinoMega.jpg"><img style="cursor:pointer; cursor:hand;width: 400px; height: 208px;" src="http://2.bp.blogspot.com/_7uyXRm_coS4/ScvTov6WRCI/AAAAAAAAAi8/GGARLVrirVs/s400/ArduinoMega.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5317576482050425890" /></a><br /><br />Arduino Mega発売(<a href="http://www.switch-science.com/products/detail.php?product_id=147" target="_blank">スイッチサイエンス</a>、<a href="http://strawberry-linux.com/catalog/items?code=35006" target="_blank">ストロベリーリナックス</a>で購入可:7350円)。<br />それに合わせて、<a href="http://arduino.cc/en/Main/Software" target="_blank">IDEバージョン0015</a>もリリースしているようです。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-82583160070412667412009-03-26T09:31:00.009+09:002009-03-30T04:37:13.281+09:00Arduino TouchShield Slide<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7uyXRm_coS4/ScrNTrdlCaI/AAAAAAAAAh8/Pczk22ZC9zA/s1600-h/touch.png"><img style="cursor:pointer; cursor:hand;width: 320px; height: 279px;" src="http://4.bp.blogspot.com/_7uyXRm_coS4/ScrNTrdlCaI/AAAAAAAAAh8/Pczk22ZC9zA/s320/touch.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5317288048032287138" /></a><br /><br />TouchShield Slide:<br />320x240 OLEDタッチスクリーン($174.93)<br /><br />リンク:<a href="http://www.liquidware.com/shop/show/TSL/TouchShield+Slide" target="_blank">liquidwire open source electronics</a><br /><br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00067PZP2/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/3142FW009KL._SL160_.jpg" alt="Logitec USB対応15型タッチパネル LTP-15U" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00067PZP2/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Logitec USB対応15型タッチパネル LTP-15U</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B00067PZP2/kousakukousak-22/ref=nosim/" title="Logitec USB対応15型タッチパネル LTP-15U" target="_blank">amazlet</a> at 09.03.30</div></div><div class="amazlet-detail">ロジテック (2004-10-31)<br />売り上げランキング: 13768<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00067PZP2/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div><br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001MYRPVK/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51oy6dLTSjL._SL160_.jpg" alt="タッチパネル・キット Asus EEE PC 901-X用タッチスクリーン" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001MYRPVK/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">タッチパネル・キット Asus EEE PC 901-X用タッチスクリーン</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B001MYRPVK/kousakukousak-22/ref=nosim/" title="タッチパネル・キット Asus EEE PC 901-X用タッチスクリーン" target="_blank">amazlet</a> at 09.03.30</div></div><div class="amazlet-detail">Monomobile <br />売り上げランキング: 33808<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001MYRPVK/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-81259037375865926902009-03-25T03:04:00.004+09:002009-03-28T00:08:34.953+09:00書籍:Arduinoをはじめよう<div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113989/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51aB2N0kJGL._SL160_.jpg" alt="Arduinoをはじめよう" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113989/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Arduinoをはじめよう</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/4873113989/kousakukousak-22/ref=nosim/" title="Arduinoをはじめよう" target="_blank">amazlet</a> at 09.03.28</div></div><div class="amazlet-detail">Massimo Banzi <br />オライリージャパン <br />売り上げランキング: 1556<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113989/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-70250570816557216402009-02-11T01:45:00.007+09:002009-03-30T04:39:38.282+09:00Arduino バージョン0013Arduinoの<a href="http://arduino.cc/en/Main/Software">バージョン0013</a>がリリースされたようです。<br />0013では細かなバグ修正のほか:<br />・Serial、Ethernet、LiquidCrystalライブラリにおいてfloatで出力可能。<br />・<a href="http://arduino.cc/en/Reference/WordCast">word()</a>、<a href="http://arduino.cc/en/Reference/BitRead">bitRead()</a>、<a href="http://arduino.cc/en/Reference/BitWrite">bitWrite()</a>、<a href="http://arduino.cc/en/Reference/BitSet">bitSet()</a>、<a href="http://arduino.cc/en/Reference/BitClear">bitClear()</a>、<a href="http://arduino.cc/en/Reference/Bit">bit()</a>、<a href="http://arduino.cc/en/Reference/LowByte">lowByte()</a>、<a href="http://arduino.cc/en/Reference/HighByte">highByte()</a>が追加。<br />・ATmega328をサポート(ATmega328は<a href="http://www.switch-science.com/products/detail.php?product_id=113">スイッチサイエンス</a>や<a href="http://www.microfan.jp/shop/6_10.html">マイクロファン</a>にて購入可)。<br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001VG2RYO/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51aITGILQUL._SL160_.jpg" alt="Arduino Duemilanove 328" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001VG2RYO/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Arduino Duemilanove 328</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B001VG2RYO/kousakukousak-22/ref=nosim/" title="Arduino Duemilanove 328" target="_blank">amazlet</a> at 09.03.30</div></div><div class="amazlet-detail">スイッチサイエンス <br />売り上げランキング: 2300<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001VG2RYO/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-70622426607501655042009-01-30T05:27:00.039+09:002013-06-19T17:27:23.512+09:00目次:Arduino<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: red;">【変更】以下はArduino1.0まで対応したプログラム内容です。</span></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: red;">特にシリアル通信においては、Arduino2.0使用の際、バイト送信する場合、</span></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: red;">Serial.print(value,BYTE);</span></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: red;">のかわりに、</span></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: red;">Serial.write(value);</span></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span class="Apple-style-span" style="color: red;">を使用してください。</span></div>
<br />
<br />
・Arduinoボード購入先については、ページ右下の<a href="http://kousaku-kousaku.blogspot.com/2008/07/arduino.html#shop">ショップリスト</a>に掲載(秋葉原のマップは<a href="http://kousaku-kousaku.blogspot.com/2010/06/blog-post.html">こちら</a>)。<br />
・<a href="http://www.musashinodenpa.com/arduino/ref/">Arduino 日本語リファレンス</a><br />
<br />
<span style="font-weight: bold;">書籍:Books</span><br />
・<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113989/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Arduinoをはじめよう</a><br />
・<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113849/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Making Things Talk -Arduinoで作る「会話」するモノたち</a><br />
・<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873114535/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ</a><br />
・<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B002XNUJ3U/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">CQ ham radio (ハムラジオ)増刊 マイコンと電子工作No.1 電脳Arduinoでちょっと未来を作る 2010年 01月号 [雑誌]</a><br />
・<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4789812553/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">アーデュイーノ互換マイコン・ボードを作る (プリント基板付き電子工作解説書シリーズ)</a><br />
・<a href="http://www.amazon.co.jp/exec/obidos/ASIN/159200346X/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Physical Computing: Sensing and Controlling the Physical World with Computers</a><br />
・<a href="http://www.amazon.co.jp/gp/product/0596154143?ie=UTF8&tag=kousakukousak-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0596154143">Programming Interactivity: Unlock the Power of Arduino, Processing, and Openframeworks</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.jp/e/ir?t=kousakukousak-22&l=as2&o=9&a=0596154143" style="border: none !important; margin: 0px !important;" width="1" /><br />
・<a href="http://www.amazon.co.jp/exec/obidos/ASIN/1430224770/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Practical Arduino: Cool Projects for Open Source Hardware (Technology in Action)</a><br />
・<a href="http://www.amazon.co.jp/exec/obidos/ASIN/0596802471/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Arduino Cookbook (Oreilly Cookbooks)</a><br />
<br />
<span style="font-weight: bold;">基本操作:Basics</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduino.html">Arduinoのセッティング</a>」--Arduino 0018のダウンロード/インストールの仕方<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduino_17.html">Arduino基盤の概要</a>」--Arduino基盤の機能や端子の説明<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduinoled.html">Arduino LEDの点滅</a>」--プログラム、アップロードの仕方、LEDを点滅させる<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduino-led.html">Arduino 7セグLEDの点灯</a>」--7セグLEDの接続/表示方法<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduino_26.html">Arduino アナログ入出力</a>」--LEDの明暗をコントロールする<br />
<br />
<span style="font-weight: bold;">入出力部品の種類:Input/Output Parts and Materials</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/blog-post.html">センサについて</a>」--赤外線距離センサ、光センサ、タクトスイッチの接続と入力方法<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/11/blog-post.html">センサについて2</a>」--各ショップにおけるセンサの種類(秋月、千石、共立、Sparkfun)<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/blog-post_02.html">出力方法について</a>」--表示、アクチュエータ、熱、音などの出力部品の種類について<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/08/arduino.html">Arduino モータドライバ+モータ</a>」--モータドライバやDCモータの種類/選び方<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/12/blog-post.html">スピーカ/音出力について</a>」--通常のコーンスピーカ以外の特殊なスピーカなどについて<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/blog-post_18.html">導電性素材/材料について</a>」--電気を通すことができる様々な材料について<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/blog-post_22.html">素材実験/鉛筆の描画線</a>」--紙の上に鉛筆で描いた線を可変抵抗として使う<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/blog-post_5032.html">素材実験/小型・薄型の材料</a>」--チップLEDやペーパーバッテリなどの小型部品について<br />
<br />
<span style="font-weight: bold;">センサ(入力系)各種:Sensors/Inputs</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/blog-post.html">センサについて</a>」--赤外線距離センサ、光センサ、タクトスイッチの接続と入力方法<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduino_9230.html">Arduino 圧電スピーカ</a>」--ブザー、センサとして圧電スピーカを使う/シリアルモニターの仕方<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/arduino_16.html">Arduino 加速度センサ</a>」--加速度センサで物体の傾斜角を計測する<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/08/arduinohmc6352.html">Arduino デジタルコンパス/HMC6352</a>」--方位センサ「HMC6352」の使い方<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/08/arduino_22.html">Arduino 距離センサ/超音波レンジファインダー</a>」--Parallax「Ping)))」の使い方<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/arduino-processingbluetooth.html">Arduino-Processing BlueTooth通信+曲げセンサ</a> 」--曲げセンサの入力値をBluetoothで送信する<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/08/arduino_24.html">Arduino タッチパネル(4線式)</a>」--4線式タッチパネルの接続方法/使い方<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/arduino.html">Arduino タッチセンサ</a>」--抵抗だけでタッチセンサをつくる<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/11/arduinos9706.html">Arduino デジタルカラーセンサ S9706</a>」--RGB同時測光カラーセンサの実験<br />
「<a href="http://ken-nou-kou.blogspot.com/2009/07/ic-s9648-100.html">光センサ フォトICダイオード S9648-100</a>」(建築農業工作ゼミ2009より)<br />
「<a href="http://ken-nou-kou.blogspot.com/2009/07/sht-71.html">温・湿度センサ SHT-71</a>」(建築農業工作ゼミ2009より)<br />
「<a href="http://ken-nou-kou.blogspot.com/2009/06/blog-post_14.html">温度センサ LM35DZ</a>」(建築農業工作ゼミ2009より)<br />
「<a href="http://ken-nou-kou.blogspot.com/2009/06/lm60biz.html">温度センサ LM60BIZ</a>」(建築農業工作ゼミ2009より)<br />
「<a href="http://ken-nou-kou.blogspot.com/2010/06/arduino7njl7502l.html">Arduino:7セグ+照度センサNJL7502L</a>」--照度センサで得た値を7セグを用いて表示する<br />
<br />
<span style="font-weight: bold;">マトリクスLED:Matrix LED</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/07/arduinoled.html">Arduino マトリクスLED1</a>」--マトリクスLEDをArduinoに直結して表示する<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/08/arduinoledmax7219.html">Arduino マトリクスLED2/MAX7219</a>」--LEDドライバMAX7219でマトリクスLED表示する<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/08/arduinoprocessingledweb.html">Arduino+Processing マトリクスLED+Webカメラ</a>」--Webカメラの映像をマトリクスLEDに映す<br />
<br />
<span style="font-weight: bold;">サーボ/モータ/モータドライバ:Servos/Motors/Motor drivers</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/arduino.html">Arduino サーボ制御</a>」--PWM、ライブラリ、パルスによるサーボ制御<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/arduino-dcta7291p.html">Arduino 小型DCモータ/TA7291P</a>」--モータドライバTA7291Pでモータを制御する。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/08/arduino.html">Arduino モータドライバ+モータ</a>」--モータドライバやDCモータの種類/選び方<br />
<br />
<span style="font-weight: bold;">シリアル通信:(パソコン上のProcessingプログラムとの通信)Serial communication</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduino-processing.html">Arduino-Processing シリアル通信1</a>」--ひとつの値を送信する(非同期通信)<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduino-processing_27.html">Arduino-Processing シリアル通信2</a>」--複数の値を送信する(同期通信)<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduino-processing_28.html">Arduino-Processing シリアル通信3</a>」--大きな値を複数送信する(ビット演算の説明)<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/processing-arduino.html">Processing-Arduino シリアル通信4</a>」--Processingの図形をマウスで動かしてArduinoを制御<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/arduino-processing.html">Arduino-Processing シリアル通信5</a>」--大きな値、複数の値を文字列で一括送信する<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/arduino-processing.html">Arduino-Processing シリアル通信6</a>」--複数のArduinoをProcessingを通してシリアル通信する<br />
<br />
<span style="font-weight: bold;">ワイヤレス/ネットワーク通信:Wireless/Network comminication</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/arduinoxbee-shieldprocessingxbee.html">Arduino+Xbee Shield/Processing+XBee Explorer USB</a>」--Xbee、XBee Explorer USBを用いて無線通信する<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/arduino-processingbluetooth.html">Arduino-Processing BlueTooth通信+曲げセンサ</a> 」--曲げセンサの入力値をBluetoothで送信する<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/processing-arduino.html">Processing-Arduino ネットワーク制御</a>」--ネットワークを通してサーボ、LEDを制御する<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/11/arduinoethernet-shield.html">Arduino Ethernet Shield</a>」--イーサネットシールドを使って、ArduinoをWebサーバとして機能させる<br />
「<a href="http://ken-nou-kou.blogspot.com/2010/03/arduino-mega-ethernet-shield.html">Arduino Mega + Ethernet Shield</a>」--未対応のArduino Megaにイーサネットシールドを重ねて使う方法<br />
「<a href="http://ken-nou-kou.blogspot.com/2009/06/arduinoweb.html">Arduinoで計測した値を指定のwebサーバに送信/保存する</a>」(建築農業工作ゼミ2009より)<br />
<br />
<span style="font-weight: bold;">ビデオ信号/TV:Video signal/TV</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/arduino_26.html">Arduino ビデオ信号/テレビ画面に出力</a>」--Arduinoを使ってテレビ画面に模様や矩形を表示する<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/arduino_29.html">Arduino ビデオ信号/バウンドするドット</a>」--Arduinoを使ってテレビ画面に動く映像を表示する<br />
<br />
<span style="font-weight: bold;">ライブラリ:Libraries</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/12/processing-arduinofirmata.html">Processing-Arduino Firmataライブラリ</a>」--ProcessingでArduino基板の各設定をし制御する。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2009/03/arduino-pid.html">Arduino PID制御ライブラリ</a>」--PID制御用の専用ライブラリ<br />
<br />
<span style="font-weight: bold;">シールド/ハードウェア:Shield/Hardware</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2009/03/arduino-touchshield-slide.html">Arduino TouchShield Slide</a>」--Liquidwireが販売しているArduino用OLEDタッチパネルスクリーン<br />
「<a href="http://kousaku-kousaku.blogspot.com/2009/03/arduinoli-ion-litium-backpack-stealth.html">Arduino Li-ionバッテリ Litium Backpack Stealth</a>」--Arduino基板用リチウムイオン充電電池パック<br />
「<a href="http://kousaku-kousaku.blogspot.com/2009/03/arduino-ac-power-shield.html">Arduino AC Power Shield</a>」--交流電源を制御するArduinoシールド<br />
「<a href="http://kousaku-kousaku.blogspot.com/2009/03/arduino-megaarduino-ide-version-0015.html">Arduino Mega+Arduino IDE version 0015</a>」--54個のデジタル入出力ピンがある大型のArduino基板<br />
「<a href="http://ken-nou-kou.blogspot.com/2010/03/arduino-mega.html">Arduino Mega:ピンマッピング</a>」--Arduino MegaボードとATmage1280のピン配置関係<br />
「<a href="http://ken-nou-kou.blogspot.com/2009/10/arduino-megaanalogread-815.html">Arduino Mega:analogRead 8~15番ピンのバグ</a>」--Arduino0017におけるバグの解決方法<br />
「<a href="http://kousaku-kousaku.blogspot.com/2009/04/arduino-quad-core-quadruino.html">Arduino Quad Core Quadruino</a>」--ATmega328を4個搭載したArduino基板:Quidruino<br />
「<a href="http://kousaku-kousaku.blogspot.com/2009/03/dsbrut.html">DSbrut</a>」--LilyPad ArduinoでプログラムできるニンテンドーDS用のカートリッジ基板Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-28280006854763644872009-01-30T01:12:00.020+09:002013-06-19T17:18:37.732+09:00目次:Processing<span class="Apple-style-span" style="color: red;"><span style="font-weight: bold;">*以下のサンプルは、Processing1.5バージョンを前提としたプログラムです。現行(2013年時点)のProcessing2.0では変更点がいくつかあるので、そのままでは動作しないプログラムもあります(videoライブラリなど)。近日中に記載内容を</span><span class="Apple-style-span" style="font-weight: bold;">Processing2.0にあわせて</span><span class="Apple-style-span" style="font-weight: bold;">変更していきたいと思います。もうしばらくお待ち下さい。</span></span><br />
<span style="font-weight: bold;"><br /></span>
<span style="font-weight: bold;">書籍:Books</span><br />
・<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4861007070/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Built with Processing[Ver. 1.x対応版] -デザイン/アートのためのプログラミング入門</a><br />
・<a href="http://www.amazon.co.jp/gp/product/4873113784?ie=UTF8&tag=kousakukousak-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4873113784">ビジュアライジング・データ ―Processingによる情報視覚化手法</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.jp/e/ir?t=kousakukousak-22&l=as2&o=9&a=4873113784" style="border: none !important; margin: 0px !important;" width="1" /><br />
・<a href="http://www.amazon.co.jp/exec/obidos/ASIN/144937980X/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Getting Started With Processing</a><br />
・<a href="http://www.amazon.co.jp/gp/product/0262182629?ie=UTF8&tag=kousakukousak-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0262182629">Processing: A Programming Handbook for Visual Designers and Artists</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.jp/e/ir?t=kousakukousak-22&l=as2&o=9&a=0262182629" style="border: none !important; margin: 0px !important;" width="1" /><br />
・<a href="http://www.amazon.co.jp/gp/product/159059617X?ie=UTF8&tag=kousakukousak-22&linkCode=as2&camp=247&creative=7399&creativeASIN=159059617X">Processing: Creative Coding and Computational Art (Foundation)</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.jp/e/ir?t=kousakukousak-22&l=as2&o=9&a=159059617X" style="border: none !important; margin: 0px !important;" width="1" /><br />
・<a href="http://www.amazon.co.jp/gp/product/0123736021?ie=UTF8&tag=kousakukousak-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0123736021">Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.jp/e/ir?t=kousakukousak-22&l=as2&o=9&a=0123736021" style="border: none !important; margin: 0px !important;" width="1" /><br />
・<a href="http://www.amazon.co.jp/gp/product/0596154143?ie=UTF8&tag=kousakukousak-22&linkCode=as2&camp=247&creative=7399&creativeASIN=0596154143">Programming Interactivity: Unlock the Power of Arduino, Processing, and Openframeworks</a><img alt="" border="0" height="1" src="http://www.assoc-amazon.jp/e/ir?t=kousakukousak-22&l=as2&o=9&a=0596154143" style="border: none !important; margin: 0px !important;" width="1" /><br />
<br />
<span style="font-weight: bold;">基本操作:Basics</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/04/processing.html">Processingのダウンロードとインストール</a>」--Processingのセッティング。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/04/processing_20.html">Processingの基本操作 その1</a>」--プログラムの仕方。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/04/processing_7188.html">Processingの基本操作 その2</a>」--図形の描画。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/04/processing_5192.html">Processingの基本操作 その3</a>」--図形を動かす。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/processing.html">Processingの描画サンプル</a>」--図形を動かすサンプル。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/processing1.html">Processing マウス入力1</a>」--マウスボタン/クリック。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/processing_13.html">Processing マウス入力2</a>」--マウスに合わせて図形を動かす/図形をドラッグする。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/processing_3561.html">Processing マウス入力3</a>」--図形の上にマウスが重なると色が変わる/ロールオーバー。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/processing_258.html">Processing マウス入力4</a>」--トグルボタン/フラグ/3回押すとオンになるスイッチ。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/processing_14.html">Processing 文字と画像</a>」--文字(フォント)の表示方法、画像の取り込みと表示方法。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/processing.html">Processing 手描きの線の表現</a>」--手描きで自由に線を描く。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/processing_06.html">Processing ドラッグしながら図形を描く</a>」--描画ソフトのように矩形をドラッグして描く。<br />
「<a href="http://ken-nou-kou.blogspot.com/2010/06/processing.html">Processing:デジタル時計のプログラム</a>」--時間に合わせて文字列を表示する。<br />
「<a href="http://ken-nou-kou.blogspot.com/2010/06/processing_13.html">Processing:アナログ時計のプログラム</a>」--時間に合わせて図形を回転させる。<br />
<br />
<span style="font-weight: bold;">サウンド:Sound</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/11/processingsoniajsyn.html">Processing サウンド/Sonia JSynプラグイン</a>」--MacOSX(Intel)は、JSynプラグイン再インストールが必要。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/07/processing-sonia.html">Processing サウンド1/Sonia</a>」--Soniaライブラリで音源の再生/停止/ポーズする。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/07/processing.html">Processing サウンド2/逆再生</a>」--Soniaライブラリで逆再生の音源をつくる。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/07/processing_28.html">Processing サウンド3/テンポ</a>」--Soniaライブラリで音源再生のテンポ変換をする。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/07/processing_30.html">Processing サウンド4/スクラッチ</a>」--Soniaライブラリを使って曲をスクラッチ演奏する。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/12/blog-post.html">スピーカ/音出力について</a>」--通常のコーンスピーカ以外の特殊なスピーカなどについて<br />
<br />
<span style="font-weight: bold;">ファイル選択/読み込み/書き出し:File chooser/File loading/File output</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/processingfilechooser.html">Processing FileChooser/ファイル選択画面の表示</a>」--Java Swingファイルチューザー(画像/音源ファイル読み込み)。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/processingfilechooser_12.html">Processing FileChooser2</a>」--ファイルチューザーで画像を選択表示、ドラッグ可能にする。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/11/processing.html">Processing ドラッグした図形の動きを記録/保存/再生する</a>」--データのセーブ/ロードを使ったサンプル。<br />
<br />
<span style="font-weight: bold;">Webカメラ:Web camera</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/08/processingvideo-web.html">Processing Video (Webカメラ)</a>」--Webカメラの使い方/映像にフィルタをかけて表示。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/08/arduinoprocessingledweb.html">Arduino+Processing マトリクスLED+Webカメラ</a>」--Webカメラ映像をマトリクスLEDに映す。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/09/processingweb.html">Processing Webカメラを光センサとして使う</a>」--点光源で画面内に線を描く。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/processingweb.html">Processing Webカメラ/定点記録画像</a>」--Webカメラ映像を0.5秒おきに画像保存(JPEG)する。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/11/processingweb.html">Processing Webカメラ/カラートラッキング</a>」--Webカメラを使い、色を手がかりに物体を追いかける。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/11/import-processing.html">Processing Webカメラ/モーショントラッキング</a>」--Webカメラを使って動体検知する。<br />
<br />
<span style="font-weight: bold;">シリアル通信:(センサ/アクチュエータ+Arduino基板との通信)Serial communication</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduino-processing.html">Arduino-Processing シリアル通信1</a>」--ひとつの値を送信する(非同期通信)。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduino-processing_27.html">Arduino-Processing シリアル通信2</a>」--複数の値を送信する(同期通信)。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduino-processing_28.html">Arduino-Processing シリアル通信3</a>」--大きな値を複数送信する(ビット演算の説明)。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/processing-arduino.html">Processing-Arduino シリアル通信4</a>」--Processingの図形をマウスで動かしてArduinoを制御。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/06/arduino-processing.html">Arduino-Processing シリアル通信5</a>」--大きな値、複数の値を文字列で一括送信する。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/arduino-processing.html">Arduino-Processing シリアル通信6</a>」--複数のArduinoをProcessingとシリアル通信する。<br />
<br />
<span style="font-weight: bold;">ネットワーク/ワイヤレス通信:Network/Wireless communication</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/processing-arduino.html">Processing-Arduino ネットワーク制御</a>」ネットワークを通してサーボ、LEDを制御する。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/11/processinghttpweb.html">Processing HTTPサーバ/Webページ表示</a>」--Networkライブラリを使ってWebサーバとして機能させる。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/arduinoxbee-shieldprocessingxbee.html">Arduino+Xbee Shield/Processing+XBee Explorer USB</a>」--Xbee、XBee Explorer USBを用いて無線通信する。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/arduino-processingbluetooth.html">Arduino-Processing BlueTooth通信+曲げセンサ</a>」--曲げセンサの入力値をBluetoothで送信する。<br />
<br />
<span style="font-weight: bold;">その他:Others:3D models/Sudden Motion Sensor(Mac)/QR code/Firmata library</span><br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/09/processing3dobj-loader.html">Processing 3Dモデル/OBJ Loader</a>」--外部制作した3Dモデルを読み込む。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/09/processingmac.html">Processing 緊急モーションセンサー(Mac)</a>」--緊急モーションセンサーで3Dモデルを動かす。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/processingqr2.html">Processing QRコード/2次元コード</a>」--QRコードを生成/読み込み/解読する。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/12/processing-arduinofirmata.html">Processing-Arduino Firmataライブラリ</a>」--ProcessingでArduino基板の各設定をし制御する。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/processing.html">Processing ライブラリのインストール先(v149以降)</a>」バージョン149以降のライブラリインストール変更点。<br />
「<a href="http://ken-nou-kou.blogspot.com/2009/06/processing.html">ProcessingプログラムをApplet表示する方法</a>」--プログラムをWeb上でAppletを使って表示する。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-38507704504593827722009-01-11T00:04:00.010+09:002009-01-11T00:54:43.610+09:00展覧会報告建築発明工作ゼミの展覧会「BODY, FURNI, ROOM」が「<a href="http://correlative.org/">GALLERY OBJECTIVE CORRELATIVE</a>」にて、2008.12.14-17まで開催されました。<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7uyXRm_coS4/SWjAE2eXToI/AAAAAAAAAfU/JM_KYhjiTRw/s1600-h/IMG_3435.JPG"><img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_7uyXRm_coS4/SWjAE2eXToI/AAAAAAAAAfU/JM_KYhjiTRw/s400/IMG_3435.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289688951921528450" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7uyXRm_coS4/SWjAFTUb4XI/AAAAAAAAAfc/cYIwoQrMdBs/s1600-h/IMG_3439.JPG"><img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_7uyXRm_coS4/SWjAFTUb4XI/AAAAAAAAAfc/cYIwoQrMdBs/s400/IMG_3439.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289688959664513394" /></a><br />巨大な折り紙、振動モータ、プロジェクタ、超磁歪素子スピーカ(壁上)を使って相互作用する。<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7uyXRm_coS4/SWjAFRASGcI/AAAAAAAAAfk/BH4_9SqL7yM/s1600-h/IMG_3476.JPG"><img style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_7uyXRm_coS4/SWjAFRASGcI/AAAAAAAAAfk/BH4_9SqL7yM/s400/IMG_3476.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289688959043115458" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7uyXRm_coS4/SWjAFqrvDoI/AAAAAAAAAfs/wRpMzaU67gk/s1600-h/IMG_3426.JPG"><img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_7uyXRm_coS4/SWjAFqrvDoI/AAAAAAAAAfs/wRpMzaU67gk/s400/IMG_3426.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289688965936254594" /></a><br />室内壁面上に氷をつくる(ペルチェ素子使用)<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7uyXRm_coS4/SWjAFzoTE3I/AAAAAAAAAf0/Q3JBT6BOG3I/s1600-h/IMG_3466.JPG"><img style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://1.bp.blogspot.com/_7uyXRm_coS4/SWjAFzoTE3I/AAAAAAAAAf0/Q3JBT6BOG3I/s400/IMG_3466.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289688968337757042" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7uyXRm_coS4/SWjANc-x_5I/AAAAAAAAAf8/XxwS5IAG5AQ/s1600-h/IMG_3469.JPG"><img style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://1.bp.blogspot.com/_7uyXRm_coS4/SWjANc-x_5I/AAAAAAAAAf8/XxwS5IAG5AQ/s400/IMG_3469.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289689099696996242" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7uyXRm_coS4/SWjANn1K5jI/AAAAAAAAAgE/uWc5y7e0hEU/s1600-h/IMG_3475.JPG"><img style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://3.bp.blogspot.com/_7uyXRm_coS4/SWjANn1K5jI/AAAAAAAAAgE/uWc5y7e0hEU/s400/IMG_3475.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289689102609475122" /></a><br />カーテンがモータ制御によって自動的に開閉し、重心移動によりカーテンレール自体が回転する。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-68024405813572748942008-12-21T03:00:00.003+09:002010-03-10T04:50:48.971+09:00Processing-Arduino Firmataライブラリ今回は、「<a href="http://www.arduino.cc/playground/Interfacing/Processing">Firmataライブラリ</a>」のテストを行いたいと思います。<br />通常Processing-Arduinoの間を通信させるときにはシリアル通信を使い、Processing側のプログラムとArduino側のプログラムをそれぞれ別々に書いていましたが、「<a href="http://www.arduino.cc/playground/Interfacing/Processing">Firmataライブラリ</a>」を使うことで、Processing側から直接Arduinoをプログラムし制御することが可能になります(パソコンにUSB接続したArduino基板をProcessing側からのプログラムだけで操作できるので便利です)。<br /><br />Firmataライブラリを使うための準備:<br />・まず<a href="http://www.arduino.cc/playground/uploads/Interfacing/processing-arduino2.zip">Firmataライブラリ</a>をダウンロードし、Processingのlibrariesフォルダ内にインストールします。<br />・Arduino-0012であればArduino用Firmataライブラリは含まれているので、メニューバーのSketchBook>Examples>Library-Firmata>StandardFirmataを開き、Arduino基板にアップロードしておきます。Arduinoのセッティングは以上です。<br /><br />今回はProcessing用のFirmataライブラリに含まれているサンプルを用いたいと思います。<br />Processingを開いて、File>Sketchbook>libraries>arduino>examples>arduino_outputを選択します。<br />以下のようなプログラムが表示されるはずです。<br /><div style="background:#EEEEDD"><pre><br />import processing.serial.*;<br /><br />import cc.arduino.*;<br /><br />Arduino arduino;<br /><br />color off = color(4, 79, 111);<br />color on = color(84, 145, 158);<br /><br />int[] values = { Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW,<br /> Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW,<br /> Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW };<br /><br />void setup() {<br /> size(470, 200);<br /> <br /> println(Arduino.list());<br /> arduino = new Arduino(this, Arduino.list()[0], 115200);<br /> <br /> for (int i = 0; i <= 13; i++)<br /> arduino.pinMode(i, Arduino.OUTPUT);<br />}<br /><br />void draw() {<br /> background(off);<br /> stroke(on);<br /> <br /> for (int i = 0; i <= 13; i++) {<br /> if (values[i] == Arduino.HIGH)<br /> fill(on);<br /> else<br /> fill(off);<br /> <br /> rect(420 - i * 30, 30, 20, 20);<br /> }<br />}<br /><br />void mousePressed()<br />{<br /> int pin = (450 - mouseX) / 30;<br /> <br /> if (values[pin] == Arduino.LOW) {<br /> arduino.digitalWrite(pin, Arduino.HIGH);<br /> values[pin] = Arduino.HIGH;<br /> } else {<br /> arduino.digitalWrite(pin, Arduino.LOW);<br /> values[pin] = Arduino.LOW;<br /> }<br />}<br /></pre></div><br /><br />Processing上でこのプログラムをランさせます。この時点でProcessingから、Arduino基板の各ピンの入出力設定がなされます。Processingでは以下のような画面が現れます。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7uyXRm_coS4/SU1AJgH0txI/AAAAAAAAAec/CdMAieX9iOo/s1600-h/sample.png"><img style="cursor:pointer; cursor:hand;width: 400px; height: 170px;" src="http://2.bp.blogspot.com/_7uyXRm_coS4/SU1AJgH0txI/AAAAAAAAAec/CdMAieX9iOo/s400/sample.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5281948469961209618" /></a><br /><br />14個ならんでいる正方形をそれぞれクリックすれば(クリックするとその正方形は塗りつぶされる)、Arduinoの0番ピンから13番ピンの合計14個のピンに対応してデジタル出力されます(Processing画面上の左端の正方形がArduinoの13番ピンに対応)。試しにProcessing画面上左端の正方形をクリックすると、13番ピンに接続されたLED(基板内蔵LED)が点灯します。同様に他の正方形をクリックすれば、それに対応したピンからデジタル出力されることが確認できます(各ピンにLED+抵抗:220Ωを接続して下さい)。<br />ただし、0番ピンと1番ピンに関しては、Processing-Arduino間でのシリアル通信で使用されているため、クリックしても反応しないので、2番ピンから13番ピンでのデジタル出力制御となります。<br /><br />Processingのプログラム上で、<br /><pre><br />arduino.pinMode(ピン番号, 入出力設定);<br /></pre><br />とすれば、Arduinoの任意のピンの入出力設定(Arduino.INPUT または Arduino.OUTPUT)を行うことができます。<br />出力をHIGHかLOWにするには、<br /><pre><br />arduino.digitalWrite(ピン番号, 出力値);<br /></pre><br />で、出力値をarduino.LOWかarduino.HIGHで設定します。<br />そのほか、<br /><pre><br />デジタル入力:arduino.digitalRead(ピン番号)<br />アナログ入力:arduino.analogRead(ピン番号)<br />アナログ出力:arduino.analogWrite(ピン番号,出力値)<br /></pre><br />という感じになるので、arduino.を頭につければ、Arduino上でのプログラムとほぼ同じです。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-73285066398589041742008-12-06T16:43:00.014+09:002010-11-04T17:02:07.731+09:00スピーカ/音出力について音を出力するものとしてコーンスピーカが一般的に使われますが、それ以外にも以下のようなものがあります。<br /><br />・「<a href="http://akizukidenshi.com/catalog/g/gP-01251/">圧電スピーカ</a>」:パルスを送り振動させブザーのような音を鳴らす(「<a href="http://kousaku-kousaku.blogspot.com/2008/05/arduino_9230.html">Arduino 圧電スピーカ</a>」を参照)。<br />・「<a href="http://www.sengoku.co.jp/mod/sgk_cart/search.php?toku=%25e3%2582%2582%252d%25e3%2581%259f%252d%25e6%258c%25af%25e5%258b%2595&cond8=or&dai=&chu=&syo=&k3=0&pflg=n&list=2">振動モータ</a>」:偏心錘がついたモータによって振動させる(携帯電話のバイブレータなど)。<br />・「<a href="https://www.marutsu.co.jp/user/shohin.php?p=6749">ソレノイド</a>」:電磁石の力によって金属のシリンダーを往復運動させ、物体などをたたくことで音を出す。<br />・「<a href="http://akizukidenshi.com/catalog/g/gK-02617/">パラメトリックスピーカ</a>」:指向性スピーカ(<a href="http://akizukidenshi.com/catalog/g/gP-02430/">超音波スピーカ</a>による方向性/反射性のある音のビーム)。<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7uyXRm_coS4/SdMCUsLd7dI/AAAAAAAAAj0/exEbXZNelC0/s1600-h/parasp.jpg"><img style="cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_7uyXRm_coS4/SdMCUsLd7dI/AAAAAAAAAj0/exEbXZNelC0/s400/parasp.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5319598139334585810" /></a><br /><br />・超磁歪素子という振動体を物体に接触させると、その物体がスピーカのように振動し音を出す機器として以下のようなものがあります。<br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B0034L42VK/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/41Qype-wPnL._SL160_.jpg" alt="どこでも伝導スピーカー ホワイト(p-0034-39)" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B0034L42VK/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">どこでも伝導スピーカー ホワイト(p-0034-39)</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B0034L42VK/kousakukousak-22/ref=nosim/" title="どこでも伝導スピーカー ホワイト(p-0034-39)" target="_blank">amazlet</a> at 10.04.21</div></div><div class="amazlet-detail">ピーナッツクラブ <br />売り上げランキング: 7277<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B0034L42VK/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div><br />1550円<br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00376ZDU6/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51HQCw%2BwapL._SL160_.jpg" alt="ピタッとスピーカー(ブルー)DN-A002BU" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00376ZDU6/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">ピタッとスピーカー(ブルー)DN-A002BU</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B00376ZDU6/kousakukousak-22/ref=nosim/" title="ピタッとスピーカー(ブルー)DN-A002BU" target="_blank">amazlet</a> at 10.04.17</div></div><div class="amazlet-detail">株式会社 StrapyaNext <br />売り上げランキング: 14047<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00376ZDU6/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div><br />2980円から。<br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001F4XZ4S/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51Cdl2m4tqL._SL160_.jpg" alt="何でもスピーカーGPECKER" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001F4XZ4S/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">何でもスピーカーGPECKER</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B001F4XZ4S/kousakukousak-22/ref=nosim/" title="何でもスピーカーGPECKER" target="_blank">amazlet</a> at 09.03.30</div></div><div class="amazlet-detail">日本電話施設株式会社 <br />売り上げランキング: 12997<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001F4XZ4S/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div><br />5500円。<br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B0031571QM/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/213XWDi9GhL._SL160_.jpg" alt="エンティス デジタルサウンドジェネレーター Tunebug-Vibe Tunebug-vibe" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B0031571QM/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">エンティス デジタルサウンドジェネレーター Tunebug-Vibe Tunebug-vibe</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B0031571QM/kousakukousak-22/ref=nosim/" title="エンティス デジタルサウンドジェネレーター Tunebug-Vibe Tunebug-vibe" target="_blank">amazlet</a> at 10.04.21</div></div><div class="amazlet-detail">エンティス (2009-12-18)<br />売り上げランキング: 3390<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B0031571QM/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div><br />7971円。<br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001CD6B7U/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51u208EiP4L._SL160_.jpg" alt="DESIGN FACTORY どこでもスピーカー" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001CD6B7U/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">DESIGN FACTORY どこでもスピーカー</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B001CD6B7U/kousakukousak-22/ref=nosim/" title="DESIGN FACTORY どこでもスピーカー" target="_blank">amazlet</a> at 09.03.30</div></div><div class="amazlet-detail">㈱デザインファクトリー <br />売り上げランキング: 13234<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001CD6B7U/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div><br />4280円。<br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000J108Q6/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51herJyLtAL._SL160_.jpg" alt="NIMZY VIBRO BLASTER SILVER" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000J108Q6/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">NIMZY VIBRO BLASTER SILVER</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B000J108Q6/kousakukousak-22/ref=nosim/" title="NIMZY VIBRO BLASTER SILVER" target="_blank">amazlet</a> at 09.07.29</div></div><div class="amazlet-detail">海連 (2006-10-31)<br />売り上げランキング: 42650<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000J108Q6/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div><br /><br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001M5QSPS/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/310BqO1kKIL._SL160_.jpg" alt="デバイスネット ヨロズオーディオ DN-A001" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001M5QSPS/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">デバイスネット ヨロズオーディオ DN-A001</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B001M5QSPS/kousakukousak-22/ref=nosim/" title="デバイスネット ヨロズオーディオ DN-A001" target="_blank">amazlet</a> at 09.07.29</div></div><div class="amazlet-detail">デバイスネット (2008-12-05)<br />売り上げランキング: 19195<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001M5QSPS/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div><br />5577円。<br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000I19BLU/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/415DFXT75HL._SL160_.jpg" alt="FOSTEX エア アクティブ・コンタクト・スピーカー ウォーム・シルバー GY-1(S)" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000I19BLU/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">FOSTEX エア アクティブ・コンタクト・スピーカー ウォーム・シルバー GY-1(S)</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B000I19BLU/kousakukousak-22/ref=nosim/" title="FOSTEX エア アクティブ・コンタクト・スピーカー ウォーム・シルバー GY-1(S)" target="_blank">amazlet</a> at 09.07.29</div></div><div class="amazlet-detail">FOSTEX (2006-06-23)<br />売り上げランキング: 43846<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000I19BLU/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div><br /><br />また、音の入力装置(通常のマイク以外)として「ギター用ピックアップ」のように金属弦の振動を磁気的に拾いとる部品もあります。<br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001F0X362/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/31-3Ta15TbL._SL160_.jpg" alt="Dimarzio DP175/True Velvet Neck/WH エレキギター用ピックアップ" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001F0X362/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Dimarzio DP175/True Velvet Neck/WH エレキギター用ピックアップ</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B001F0X362/kousakukousak-22/ref=nosim/" title="Dimarzio DP175/True Velvet Neck/WH エレキギター用ピックアップ" target="_blank">amazlet</a> at 09.03.30</div></div><div class="amazlet-detail">DiMarzio <br />売り上げランキング: 120012<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B001F0X362/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div><br /><br />あるいは磁気テープを読み取る場合、以下のような製品のヘッド部分を取り出して利用することもできます。<br /><a href="http://mekamekameka.blogspot.com/2010/05/blog-post.html">カセットテープヘッド</a>についてのまとめ。<br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000V6GP4I/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51gusxtqwbL._SL160_.jpg" alt="カセットアダプターiPod/MP3/MD他 車内使用可 黒" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000V6GP4I/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">カセットアダプターiPod/MP3/MD他 車内使用可 黒</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B000V6GP4I/kousakukousak-22/ref=nosim/" title="カセットアダプターiPod/MP3/MD他 車内使用可 黒" target="_blank">amazlet</a> at 10.04.21</div></div><div class="amazlet-detail">OEM <br />売り上げランキング: 46549<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000V6GP4I/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div><br />680円。<br />以下は改造例。<br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/E5D3uYYWmRg&hl=ja_JP&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/E5D3uYYWmRg&hl=ja_JP&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-43483679218491701902008-11-29T16:08:00.033+09:002012-11-15T15:16:09.905+09:00Processing Webカメラ/モーショントラッキング今回は、Webカメラ(USBカメラ)を使ってProcessing上で動体検知/動体追跡の実験を行ってみます。前回の「<a href="http://kousaku-kousaku.blogspot.com/2008/11/processingweb.html">Processing Webカメラ/カラートラッキング</a>」に似たプログラムですが、特定の色を追いかけるのではなく、画面上で動いている物体を検知し、その動きの方向に合わせて物体の座標値を取得します。逆に、動いている物体が画面内に見当たらない場合は、なにも検知しないことになります。<br />
<br />
*Windowsの場合、そのままの設定ではこのVideoライブラリを使用することができません。<a href="http://www.shiffman.net/vdig/WinVDIG_101.exe">WinVDIG 1.0.1</a>をインストールする必要があります。<br />
<br />
<span style="font-weight: bold;"><br />各ピクセルの色の取得:</span><br />
・カメラ画像における、前回の画面と今回の画面の各ピクセルの色を比較します。<br />
・320×240の画面サイズであれば76800個のピクセルを<a href="http://www.processing.org/reference/for.html">for()</a>を使って繰り返しの比較処理をさせることになります。<br />
・各ピクセルの色を抽出するには、<a href="http://www.processing.org/reference/pixels.html">pixels[i]</a>で順番にひとつずつピクセルを取り出します。<br />
・<a href="http://www.processing.org/reference/pixels.html">pixels[i]</a>は、画面内のi番目のピクセルの色の値を返します。<br />
・さらに、その一つのピクセルをRGBの3色に分解し、それぞれの値を取得します。<br />
・3色のそれぞれの値を取得するには、<a href="http://www.processing.org/reference/red_.html">red()</a>、<a href="http://www.processing.org/reference/green_.html">green()</a>、<a href="http://www.processing.org/reference/blue_.html">blue()</a>を用います。<br />
・red(pixels[i])と書けば、そのピクセルの赤の値を取得できます(緑、青についても同様に処理)。<br />
<br />
<span style="font-weight: bold;">色の比較:</span><br />
前回と今回の画面内のピクセルを比較するためには、一旦前回の全ピクセルの色情報を配列に代入して記憶させておきます。そして、記憶させておいた前回の色情報と今回の色情報を各ピクセルごとに比較します。<br />
・色を比較するには、「前回の赤の値」から「今回の赤の値」を差し引きします(最終的に、絶対値<a href="http://www.processing.org/reference/abs_.html">abs()</a>を使うので逆でも大丈夫です)。<br />
・各色の値は0〜255までの段階があるので、その数値の差となります。緑や青についても同様に値の差を求めておきます。<br />
・各色において、ある一定以上の差があるときに、画面内に「動作」があったと見なします。<br />
・多少細かなノイズなどが含まれるので、差についてはある程度の許容値を設けておきます。例えば、±20以内の差であればノイズと見なし「動作なし」と判断し、それ以上の差があるときにだけ「動作あり」と見なすことにします。<br />
<br />
<span style="font-weight: bold;">平均値で座標を求める:</span><br />
上記の方法で、設定した許容値を超えるピクセルがあったときに、そのピクセルの画面内でのXY座標値を調べておきます。今回の方法では、許容値を超えるピクセル(変化があったピクセル)のXY座標と個数から平均値を求め、その値をXとYの座標値として利用することにします。<br />
例えば、X座標値100に10個、101に12個、102に8個あるときは、(100*10+101*12+102*8)/(10+12+8)=100.9333となり、この値を平均値としてX座標値にします。<br />
<br />
<a href="http://4.bp.blogspot.com/_7uyXRm_coS4/STHA_7gh3iI/AAAAAAAAAd0/29sgKBjcmnY/s1600-h/mt_green.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5274208843165982242" src="http://4.bp.blogspot.com/_7uyXRm_coS4/STHA_7gh3iI/AAAAAAAAAd0/29sgKBjcmnY/s400/mt_green.png" style="cursor: hand; cursor: pointer; height: 237px; width: 321px;" /></a><br />
(緑の部分が変化のあったピクセル、赤い正方形の位置がそれらの平均座標値、左上に許容値表示)<br />
<br />
<br />
<span style="font-weight: bold;">「変化があったピクセルを緑で表示し座標値を求めるプログラム」:</span><br />
以下のプログラムでは、見やすくするために、変化があったピクセルを緑color(0,255,0)で塗りつぶすことにします。そして、それらのピクセルの平均座標値を求めて、赤い正方形を動かすことにします。<br />
光や明るさの状況に合わせて許容値を調整できるプログラムにしておきます。<br />
左右の矢印キーで色の許容値(変数:tolerance)を調節できるようにします(「←」:-1、「→」:+1)。<br />
<br />
「c」キーを押せば、カメラセッティング画面に切り替わります(手動露出や手動コントラストなどに切り替えた方が認識しやすくなります)。<br />
<br />
<a href="http://www.blogger.com/blogger.g?blogID=3514498658767469367#" onclick="showHide('a1');return false;">[プログラムを表示]</a><br />
<div id="a1" style="display: none;">
<br />
<div style="background: #EEEEDD;">
<pre>import processing.video.*;
Capture video;
PFont font;
int w=320;
int h=240;
//前回画面ピクセル色を保存するための配列を用意
color[] exColor=new color[w*h];
//許容値の変数:50に設定しておく
int tolerance=50;
int sumX,sumY;//平均値を求めるための合計座標値の変数
int pixelNum;//変化のあったピクセルを数えるための変数
float x,y;//座標値の変数
float filterX,filterY;//フィルタをかけた座標値の変数
boolean movement=false;//動体の有無のフラグ
void setup(){
size(w, h);
video = new Capture(this, w, h);
font=createFont("Monaco",10);
textFont(font);
rectMode(CENTER);
noStroke();
}
void draw() {
if(video.available()){
background(0);
video.read();
set(0,0,video);//カメラ映像表示
loadPixels();//画面内ピクセルをロードしておく
movement=false;//動体のフラグをfalseに戻しておく
for(int i=0;i<w*h;i++){
//前回と今回の画面のピクセルの各色の差を求める
float difRed=abs(red(exColor[i])-red(video.pixels[i]));
float difGreen=abs(green(exColor[i])-green(video.pixels[i]));
float difBlue=abs(blue(exColor[i])-blue(video.pixels[i]));
//色の差が許容値以上の場合(動体がある場合)
if(difRed>tolerance && difGreen>tolerance && difBlue>tolerance){
movement=true;//動体有りのフラグをtrueにしておく
pixels[i]=color(0,255,0);//そのピクセルを緑にする
sumX+=i%w;//平均値を求めるためにX座標値を加算する
sumY+=i/w;//平均値を求めるためにY座標値を加算する
pixelNum++;//変化のあったピクセル数を数える
}
//次回ループのために今回の画面を前回の画面として保存しておく
exColor[i]=video.pixels[i];
}
//動体があった場合(画面内に変化があった場合)
if(movement==true){
updatePixels();//画面内ピクセルをアップデート
x=sumX/pixelNum;//X座標平均値を求める
y=sumY/pixelNum;//Y座標平均値を求める
//各変数を初期化しておく
sumX=0;
sumY=0;
pixelNum=0;
}
}
filterX+=(x-filterX)*0.3;//X座標にフィルタをかける
filterY+=(y-filterY)*0.3;//Y座標にフィルタをかける
fill(255,0,0);
rect(filterX,filterY,20,20);//正方形描画
text(tolerance,10,10);//許容値を表示
}
void keyPressed(){
if(key=='c'){
video.settings();//カメラセッティング
}
if(key==CODED){
if(keyCode==LEFT){
tolerance-=1;//許容値を-1する
}
if(keyCode==RIGHT){
tolerance+=1;//許容値を+1する
}
}
}</pre>
</div>
</div>
<br />
<br />
<br />
<span style="font-weight: bold;">「Pongをプレイ」</span><br />
次に、応用として「Pong」のパドルをモーショントラッキングで動かすサンプルをつくってみます。<br />
動作によって変化があったピクセルの位置が画面内の左側あるいは右側を判別し、左右のパドルを個別に動かせるようにします。画面の端から50ピクセル幅のエリアで動作検知します(画面中央付近では反応しません)。<br />
<br />
<a href="http://1.bp.blogspot.com/_7uyXRm_coS4/STE2D2RejDI/AAAAAAAAAds/VQYWpbbpvNc/s1600-h/pong_mt.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5274056078363888690" src="http://1.bp.blogspot.com/_7uyXRm_coS4/STE2D2RejDI/AAAAAAAAAds/VQYWpbbpvNc/s400/pong_mt.png" style="cursor: hand; cursor: pointer; height: 244px; width: 318px;" /></a><br />
(モーショントラッキングで「Pong」をプレイする)<br />
<br />
プレイしやすいように、カメラ映像は左右反転(鏡像)しています。<br />
左右矢印キーで許容値を調整します(画面には許容値は表示されません)。<br />
画面上部に点数を表示。<br />
「c」キーでカメラセッティング。<br />
「スペース」キーで点数をリセット。<br />
<br />
<a href="http://www.blogger.com/blogger.g?blogID=3514498658767469367#" onclick="showHide('a2');return false;">[プログラムを表示]</a><br />
<div id="a2" style="display: none;">
<br />
<br />
<div style="background: #EEEEDD;">
<pre>import processing.video.*;
Capture video;
PFont font;
int w=320;
int h=240;
//前回画面ピクセル色を保存するための配列を用意
color[] exColor=new color[w*h];
int tolerance=20;
float y;//右パドルのY座標
int sumY;//平均値を求めるための合計座標値の変数
int pixelNum;//変化のあったピクセル数を数えるための変数
float filterY;//フィルタをかけたY座標変数
boolean movement=false;//動体検知フラグ
float y2;//左パドルのY座標
int sumY2;//平均値を求めるための合計座標値の変数
int pixelNum2;//変化のあったピクセル数を数えるための変数
float filterY2;//フィルタをかけたY座標変数
boolean movement2=false;//動体検知フラグ
int ballX=-200,ballY=height/3;//ボール座標
int dirX=1,dirY=1;//ボールの向きの変数
int speedX=2,speedY=2;//ボール移動量変数
int pt=0,pt2=0;//点数の変数
void setup(){
size(w, h);
video = new Capture(this, w, h);
font=createFont("Monaco",10);
textFont(font);
rectMode(CENTER);
noStroke();
}
void draw() {
if(video.available()){
background(0);
video.read();
scale(-1,1);//画面を鏡像(左右反転)
image(video,-w,0);//鏡像のため映像のX座標を-wにして表示
scale(-1,1);//鏡像を戻しておく
movement=false;//動体検知のフラグをfalseにしておく(初期化)
movement2=false;
for(int i=0;i<w*h;i++){
//前回と今回の画面のピクセルの各色の差を求める
float difRed=abs(red(exColor[i])-red(video.pixels[i]));
float difGreen=abs(green(exColor[i])-green(video.pixels[i]));
float difBlue=abs(blue(exColor[i])-blue(video.pixels[i]));
//色の差が許容値以上の場合(動体がある場合)
if(difRed>tolerance && difGreen>tolerance && difBlue>tolerance){
if(i%w<50){//X座標が50以下の場合(画面右側の場合)
movement=true;//動態検知フラグをtrueにしておく
sumY+=i/w;//平均値を求めるために座標値を加算しておく
pixelNum++;//ピクセル数を数えておく
}
if(i%w>width-50){//X座標が270以上の場合(画面左側の場合)
movement2=true;
sumY2+=i/w;
pixelNum2++;
}
}
//次回ループのために今回の画面を前回の画面として保存しておく
exColor[i]=video.pixels[i];
}
if(movement==true){//動体検知した場合(画面右)
y=sumY/pixelNum;//平均Y座標を求める
//0に戻しておく(初期化)
sumY=0;
pixelNum=0;
}
if(movement2==true){//動体検知した場合(画面左)
y2=sumY2/pixelNum2;
sumY2=0;
pixelNum2=0;
}
}
//フィルタをかけたパドルのY座標値
filterY+=(y-filterY)*0.4;
filterY2+=(y2-filterY2)*0.4;
//ボール上下跳ね返りの処理
if(ballY<5){
ballY=5;
dirY=1;
}
if(ballY>height-5){
ballY=height-5;
dirY=-1;
}
//ボールがパドルに当たって跳ね返る処理
if(ballX>25 && ballX<30 && ballY>filterY2-28 && ballY<filterY2+28 && dirX==-1){
ballX=30;
dirX=1;
}
if(ballX>width-30 && ballX<width-25 && ballY>filterY-28 && ballY<filterY+28 && dirX==1){
ballX=width-30;
dirX=-1;
}
//ボールが画面端から出てしまったときの処理(得点処理)
if(ballX<0 && dirX==-1){
ballX=width+200;//ボールを画面反対側へ移動
pt+=1;//左プレイヤー点数加算
}
if(ballX>width && dirX==1){
ballX=-200;//ボールを画面反対側へ移動
pt2+=1;//右プレイヤー点数加算
}
//ボールの移動量
ballX+=speedX*dirX;
ballY+=speedY*dirY;
fill(255);//塗り色(白)
rect(width-20,filterY,10,50);//右パドル表示
rect(20,filterY2,10,50);//左パドル表示
rect(ballX,ballY,10,10);//ボール表示
text(pt,60,20);//左プレイヤー点数表示
text(pt2,width-65,20);//右プレイヤー点数表示
}
void keyPressed(){
if(key=='c'){//cキーでカメラセッティング
video.settings();
}
if(key==' '){//スペースキーで点数をリセット
pt=0;
pt2=0;
}
if(key==CODED){
if(keyCode==LEFT){
tolerance-=1;
if(tolerance<0){
tolerance=0;
}
}
if(keyCode==RIGHT){
tolerance+=1;
}
}
}
</pre>
</div>
</div>
<br />
<br />
関連:<br />
Webカメラ:<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/08/processingvideo-web.html">Processing Video (Webカメラ)</a>」--Webカメラの使い方/映像にフィルタをかけて表示。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/08/arduinoprocessingledweb.html">Arduino+Processing マトリクスLED+Webカメラ</a>」--Webカメラ映像をマトリクスLEDに映す。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/09/processingweb.html">Processing Webカメラを光センサとして使う</a>」--点光源で画面内に線を描く。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/10/processingweb.html">Processing Webカメラ/定点記録画像</a>」--Webカメラ映像を0.5秒おきに画像保存(JPEG)する。<br />
「<a href="http://kousaku-kousaku.blogspot.com/2008/11/processingweb.html">Processing Webカメラ/カラートラッキング</a>」--Webカメラを使い、色を手がかりに物体を追いかける。<br />
<br />
<a href="http://click.linksynergy.com/fs-bin/click?id=ITZrhoJYN4w&offerid=137851.10000013&subid=0&type=4"><img alt="ロジクールストア(ウェブカメラカテゴリ)" border="0" src="http://ad.linksynergy.com/fs-bin/show?id=ITZrhoJYN4w&bids=137851.10000013&subid=0&type=4&gridnum=0" /></a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-58156814548249403372008-11-26T05:40:00.018+09:002010-02-20T17:09:28.686+09:00Processing Webカメラ/カラートラッキング今回はProcessingとWebカメラ(USBカメラ)を使い、色を手がかりとして画面内で動く物体の座標値を取得してみます。例えば、カメラに向かって動かした赤いボールの座標値を検出し、XY座標をArduinoへシリアル通信すれば、ボールの動きに応じてサーボなどを動かすことができます。<br />最初に物体の色を記憶させ、その色に近いピクセルを画面内から抜き出します。抜き出されたピクセルのXY座標値を調べ、中点や平均値を使って最終的なXY座標を導き出します。必ずしも単一の色面を背景にする必要はないのですが、色を手がかりとするので、対象とする物体と背景の色の差がある方が検出しやすくなります。<br /><br />尚、Webカメラを使った画像認識や動体検知などのプログラムとしてFile>Examples>Libraries>Video(Capture)の中に「<a href="http://www.processing.org/learning/libraries/brightnesstracking.html">BrightnessTracking</a>」や「<a href="http://www.processing.org/learning/libraries/framedifferencing.html">FrameDifferencing</a>」などのサンプルがあります。また、ライブラリとしては「<a href="http://webcamxtra.sourceforge.net/">JMyron</a>」があります(「<a href="http://webcamxtra.sourceforge.net/">JMyron</a>」のサンプルでは「Myron_CameraAsMouse」があります)。<br /><br />Webカメラ(USBカメラ)を使用するには、ProcessingのVideoライブラリをインポートします。Webカメラの基本的な使い方は「<a href="http://kousaku-kousaku.blogspot.com/2008/08/processingvideo-web.html">Processing Video (Webカメラ)</a>」や色抽出する方法として「<a href="http://kousaku-kousaku.blogspot.com/2008/09/processingweb.html">Processing Webカメラを光センサとして使う</a>」を参照して下さい。<br /><br />*Windowsの場合、そのままの設定ではこのVideoライブラリを使用することができません。<a href="http://www.shiffman.net/vdig/WinVDIG_101.exe">WinVDIG 1.0.1</a>をインストールする必要があります。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7uyXRm_coS4/SSwWEkJ9D_I/AAAAAAAAAdc/9ndy5URR5_c/s1600-h/colortrack.png"><img style="cursor:pointer; cursor:hand;width: 321px; height: 241px;" src="http://2.bp.blogspot.com/_7uyXRm_coS4/SSwWEkJ9D_I/AAAAAAAAAdc/9ndy5URR5_c/s400/colortrack.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5272613531424722930" /></a><br />「Processing上の画面」<br />(手に握った物体の動きに合わせて赤い円が動く)<br /><br /><br />今回の設定として:<br />・キャプチャする映像のサイズ(幅:w、高さ:h)を320×240(4:3)にします。<br /> (処理速度が遅くなる場合は160×120などの小さいサイズに変更して下さい。)<br />・最初に、画面内の対象となる物体をマウスでクリックし、そのピクセルの色を記憶しておきます。<br /> (背景とはできる限り異なる色の物体を選ぶ方が認識しやすくなります。)<br />・物体の動きに合わせて、画面上の図形(赤い円)が動くプログラムにします。<br /><br />プログラムの手順としては:<br />・video.<a href="http://www.processing.org/reference/pixels.html">pixels[]</a>で、カメラ映像内の各ピクセル(320×240=76800ピクセル)を全て読み込みます。<br />・対象となる物体の色(特定の1ピクセル分の色)を<a href="http://www.processing.org/reference/pixels.html">pixels[]</a>で取り出します。<br />・各ピクセルを<a href="http://www.processing.org/reference/red_.html">red()</a>、<a href="http://www.processing.org/reference/green_.html">green()</a>、<a href="http://www.processing.org/reference/blue_.html">blue()</a>でRGBに分解します。<br />・各ピクセルの色と物体の色を各RGB色ごとに比較します。<br />・比較した各RGB色が設定した許容値(tolerance)以内であるかを判別します。<br />・許容値以内のピクセルがある場合、そのピクセルの座標値を調べます。<br />・選択された複数のピクセルの座標を統合して、最終的にXY座標を導き出します。<br />・導かれた座標を図形(赤い円)の座標に代入し、物体に合わせて図形(赤い円)が動くようにします。<br /><br /><br /><span style="font-weight:bold;">「選択したピクセルの色をRGBに分解し判別する」:</span><br />ひとつのピクセルである<a href="http://www.processing.org/reference/pixels.html">pixels[i]</a>には、<a href="http://www.processing.org/reference/color_.html">color(R,G,B)</a>の3つの値が含まれています(アルファ値/透明度も含めれば4つになりますが、今回はRGB値だけを扱います)。各RGB色に分解するには、red(pixels[i])、green(pixels[i])、blue(pixels[i])というようにred()、green()、blue()を用いてpixels[i]を括ります。得られる値はそれぞれ0.0~255.0の小数値になります。色を特定化しても光の反射などによって多少色が変化するので、特定化する色にある程度の許容値を与えておきます。例えば、赤の値が80の場合、許容値を10にすることで70~90の値であれば同等の色と見なすことにします。許容値が小さすぎれば、色が限定されすぎるので取りこぼしがでてきます。逆に許容値が大きすぎれば、他の色を混同してしまうので、状況に応じて調整できるようにプログラムすることにします。<br /><br /><br /><span style="font-weight:bold;">「pixels[i]をXY座標に変換する方法」:</span><br />画面幅をw=320、高さをh=240とします。横一列には320個のピクセルが並んでおり、さらに320個のピクセルが240行並んでいます。つまり一つの画面内には、合計で76800個のピクセルがあります。<br /><a href="http://www.processing.org/reference/pixels.html">pixels[i]</a>のiには、画面左上の0番目のピクセルから画面右下の76799番目のピクセルまでの連続した数値が入ります。例えば、画面上の(120,40)というXY座標は、画面幅をwとした場合、120+40*w=12920なので12920番目のピクセルであり、pixels[12920]になります。逆に、この12920番目のピクセルを画面上のX座標とY座標に変換するには、x=i%w、y=i/w(つまり、x=12920%320、y=12920/320)となります。「<a href="http://www.processing.org/reference/modulo.html">%</a>」は割り算の余りを求める式で、「<a href="http://www.processing.org/reference/divide.html">/</a>」は割り算ですが整数(<a href="http://www.processing.org/reference/int.html">int</a>)で割っているので小数点以下は切り捨てられます(四捨五入なし)。<br />マウスの座標値(<a href="http://www.processing.org/reference/mouseX.html">mouseX</a>,<a href="http://www.processing.org/reference/mouseY.html">mouseY</a>)であれば、pixels[mouseX+mouseY*w]になります。<br /><br />上記の方法で選ばれたピクセル(物体の色のピクセル)は複数個あるので、それらのピクセルを座標値に置き換えるには幾つかの方法があります。<br />ひとつは:<br />画面内において最も右端にあるピクセルのX座標と左端にあるピクセルのX座標、ならびに上端にあるピクセルのY座標と下端にあるピクセルのY座標を調べ、右端と左端の中点をX座標、上端と下端の中点をY座標とみなす方法です。弱点としては、近似色がノイズとして画面上にある場合、そのピクセルも拾ってしまうことです。ノイズを除去するプログラムや予め画面全体にぼかしをかけることである程度回避できます。<br />もうひとつは:<br />選択したピクセル(物体の色のピクセル)が多く分布している箇所を調べ、ピクセルの分布数と位置から平均値を割り出す方法です。この場合、多少のノイズがあっても大きなずれは発生しなくなります。<br />その他の方法も考えられますが、今回は上記二つの方法で実験してみたいと思います。<br /><br /><span style="font-weight:bold;">「操作手順」:</span><br />プログラムが開始したら、画面上で対象となる物体をクリックして物体の色を記憶させます。画面左上に、10ピクセル角の矩形でその色が表示されます。直径20ピクセルの赤い円が、物体の移動に合わせて動きます(物体を追跡します)。<br />左右の矢印キーで色の許容値(変数:tolerance)を調節できるようにします(「←」:-1、「→」:+1)。<br />変化する数値をPFontを用いて表示するので、Tools>Create Font...をクリックし「Monaco-10.vlw」を取り込んでおいて下さい(「<a href="http://kousaku-kousaku.blogspot.com/2008/05/processing_14.html">Processing 文字と画像</a>」を参照)。<br />また、「c」キーを押せば、カメラセッティング画面に切り替わります(手動露出や手動コントラストなどに切り替えた方が認識しやすくなります)。<br />画面上に許容値を含めた物体の色がある場合は、「detected」という文字が表示されます。もし、近似色がない場合は「none」が表示され、赤い円は前回の位置に留まります。再度近似色が画面内に現れれば、赤い円はその位置に移動します。<br /><br /><br /><span style="font-weight:bold;">「左右端、上下端の中点を座標値にするプログラム」:</span><br /><br /> <a href="#" onClick="showHide('p1');return false;">[プログラムを表示]</a><br /><div id="p1" style="display: none"><br /><div style="background:#EEEEDD"><pre><br />//ビデオライブラリのインポート<br />import processing.video.*;<br />Capture video;//インスタンス生成<br />PFont font;//フォントを用意<br /><br />int w=320;//画面幅<br />int h=240;//画面高<br />int tolerance=15;//色許容値用の変数(後で調整可)<br />color targetColor=color(255,0,0);//物体の色用の変数(後で変更可)<br /><br />int x;//図形座標用変数<br />int y;<br />int xmin=w,xmax=0;//左端X座標、右端X座標<br />int ymin=h,ymax=0;//上端Y座標、下端Y座標<br /><br />boolean detection=false;//物体検知のフラグ<br /><br />void setup(){<br /> size(w, h);//画面サイズ設定<br /> smooth();//滑らかな描画に設定<br /> video = new Capture(this, w, h);//キャプチャ映像の設定<br /> font=loadFont("Monaco-10.vlw");//フォントをロード<br /> textFont(font);//フォントの設定<br /> noStroke();//外形線なし<br />}<br /><br />void draw() {<br /> if(video.available()){//キャプチャ映像がある場合<br /> video.read();//映像読み込み<br /> //video.filter(BLUR,2);必要に応じてぼかしフィルタをつかう(ノイズ除去用) <br /> set(0,0,video);//映像表示<br /> <br /> detection=false;//物体検知のフラグをfalse(検知なし)にしておく<br /><br /> for(int i=0;i<w*h;i++){//画面全体のピクセル数だけ繰り返し処理<br /> //物体の色と各ピクセルの色の差を求める(RGB3色分)<br /> float difRed=abs(red(targetColor)-red(video.pixels[i]));<br /> float difGreen=abs(green(targetColor)-green(video.pixels[i]));<br /> float difBlue=abs(blue(targetColor)-blue(video.pixels[i]));<br /><br /> //RGB各色が許容値以内の場合(近似色である場合)<br /> if(difRed<tolerance && difGreen<tolerance && difBlue<tolerance){<br /> //フラグを物体検知有りにする<br /> detection=true;<br /><br /> //左端、右端のX座標、上端、下端のY座標を導く<br /> //今回の値と今までの値を比較し、最小値、最大値を調べる<br /> xmin=min(i%w,xmin);//左端(X最小値)<br /> xmax=max(i%w,xmax);//右端(X最大値)<br /> ymin=min(i/w,ymin);//上端(Y最小値)<br /> ymax=max(i/w,ymax);//下端(Y最大値)<br /> }<br /> }<br /> <br /> if(detection==true){//物体検知有りの場合<br /> x=(xmin+xmax)/2;//X座標を左端と右端の座標の中点とする<br /> y=(ymin+ymax)/2;//Y座標を上端と下端の座標の中点とする<br /><br /> //左端、右端、上端、下端の座標値を初期化しておく<br /> xmin=w;<br /> xmax=0;<br /> ymin=h;<br /> ymax=0;<br /> }<br /> }<br /> <br /> fill(255,0,0);//塗り色:赤<br /> ellipse(x,y,20,20);//円描画(求めたXY座標を代入)<br /><br /> //以下は設定内容の表示<br /> fill(targetColor);//指定した物体の色<br /> rect(0,0,10,10);//矩形表示<br /> <br /> String s;//物体検知有無表示の文字列変数<br /> if(detection==true){//物体検知有りの場合<br /> s="detected";//表示:「検知」<br /> }else{<br /> s="none";//表示:「なし」<br /> }<br /> text(tolerance+": "+s,20,10);//文字列表示(許容値:物体検知有無)<br />}<br /><br />void mousePressed(){//クリックしたら<br /> //マウス座標上のピクセルの色(物体の色)を記憶しておく<br /> targetColor=video.pixels[mouseX+mouseY*w];<br />}<br /><br />void keyPressed(){<br /> if(key=='c'){//「c」キーを押した場合<br /> video.settings();//カメラセッティング<br /> }<br /> if(key==CODED){<br /> if(keyCode==LEFT){//左キーを押した場合<br /> tolerance-=1; //許容値を-1する<br /> }<br /> if(keyCode==RIGHT){//右キーを押した場合<br /> tolerance+=1; //許容値を+1する<br /> }<br /> }<br />}<br /></pre></div></div><br /><br />*プログラムを開始する前にTools>Create Font...をクリックし「Monaco-10.vlw」を取り込んでおいて下さい(スケッチフォルダの中のdataフォルダ内にフォントが保存されます)。<br />複数あるピクセルのうち左端、右端、上端、下端のピクセルを抜き出すために、最小値と最大値を求めるための<a href="http://www.processing.org/reference/min_.html">min()</a>、<a href="http://www.processing.org/reference/max_.html">max()</a>を用いました。各ピクセルの座標値を比較し、X座標においては最小座標値を左端座標値とし、最大座標値を右端座標値として扱います。Y座標に対しても同様に導き出します。そして、それらの中点を最終的なXY座標値とします。<br /><br /><br /><br /><span style="font-weight:bold;">「分布するピクセルから割り出す方法」:</span><br />次は、物体の近似色のピクセルの分布から平均値を求めて座標値を割り出す方法についてです。<br />先ほどの方法と同様にfor()で全てのピクセルの色を識別し、その中から物体の近似色のピクセルを選びます。その際に近似色のピクセルの個数と、そのピクセルのXY座標値をそれぞれ加算しておきます。最終的に加算されたそれぞれの値を近似色のピクセル数で割って平均値を求めます。例えば、X座標値100に10個、101に12個、102に8個あるときは、(100*10+101*12+102*8)/(10+12+8)=100.9333となります。Y座標についても同様に求めておきます。<br /><br />以下のプログラムでは、カメラからの映像を左右反転の鏡像として表示することにします(カメラに向かって、右に物体を動かせば、画面上でも右に動くようにします)。<br />「v」キーを押すことで、カメラからの映像を表示/非表示切り替え可能にします。<br />円の動きを滑らかにするために、移動量にフィルタをかけることにしました。<br />物体検知用のフラグがtrueの場合、許容値toleranceは自動的に下がり、falseの場合は自動的に上がるようにしました(変化の範囲は2~25に設定してあります)。設定した最大許容値:25以内の近似色が画面内にある場合は反応してしまいます(フラグがtrueになる)。不自然な反応をとる場合、最大許容値を下げるか、前回のプログラムのように手動で調整する内容に変更してみてください。<br />赤文字部分が、前回と異なる部分です。<br />前回同様、プログラムを開始する前に、使用するフォントを取り込んでおいて下さい(「<a href="http://kousaku-kousaku.blogspot.com/2008/05/processing_14.html">Processing 文字と画像</a>」を参照)。<br /><br /><span style="font-weight:bold;">「分布するピクセルから割り出すプログラム」:</span><br /><br /> <a href="#" onClick="showHide('p2');return false;">[プログラムを表示]</a><br /><div id="p2" style="display: none"><br /><div style="background:#EEEEDD"><pre><br />import processing.video.*;<br />Capture video;<br />PFont font;<br /><br />int w=320;<br />int h=240;<br />int tolerance=20;<br />color targetColor=color(255,0,0);<br /><font color="#FF0000"><br />float x;//X座標変数(小数値)<br />float y;//Y座標変数(小数値)<br />int sumX,sumY;//座標平均値を求めるための加算用変数<br />int pixelNum;//近似色ピクセルの個数用変数<br />float filterX,filterY;//滑らかな動きのためのフィルタ用変数<br />boolean videoImage=true;//カメラ映像の表示/非表示切り替えフラグ<br /></font><br />boolean detection=false;<br /><br />void setup(){<br /> size(w, h);<br /> smooth();<br /><br /> video = new Capture(this, w, h);<br /> font=loadFont("Monaco-10.vlw");<br /> textFont(font);<br /> noStroke();<br />}<br /><br />void draw() {<br /> if(video.available()){<br /> video.read();<br /><font color="#FF0000"><br /> scale(-1.0,1.0);//鏡像反転<br /> if(videoImage){//カメラ映像表示の場合<br /> image(video, -w, 0);//カメラ映像を表示する<br /> }else{ //カメラ映像非表示の場合<br /> background(0); //背景(黒)にする<br /> }<br /></font> <br /> detection=false;<br /> <br /> for(int i=0;i<w*h;i++){<br /> float difRed=abs(red(targetColor)-red(video.pixels[i]));<br /> float difGreen=abs(green(targetColor)-green(video.pixels[i]));<br /> float difBlue=abs(blue(targetColor)-blue(video.pixels[i]));<br /><br /> if(difRed<tolerance && difGreen<tolerance && difBlue<tolerance){<br /> detection=true;<br /><font color="#FF0000"><br /> sumX+=(i%w);//X座標値を加算する<br /> sumY+=(i/w);//Y座標値を加算する<br /> pixelNum++;//近似色ピクセルの個数を加算する<br /></font> <br /> }<br /> }<br /><font color="#FF0000"> <br /> if(detection){//物体検知有りの場合<br /> x=sumX/pixelNum;//X座標平均値を求める<br /> y=sumY/pixelNum;//Y座標平均値を求める<br /> <br /> //初期化しておく<br /> sumX=0;<br /> sumY=0;<br /> pixelNum=0;<br /> <br /> tolerance--;//許容値を-1ずつ下げる<br /> if(tolerance<2){//許容値が2より小さくなったら<br /> tolerance=2; //許容値を2に戻す<br /> }<br /> }else{//物体検知無しの場合<br /> tolerance++;//許容値を+1ずつ上げる<br /> if(tolerance>25){//許容値が25より大きくなったら<br /> tolerance=25; //許容値を25に戻す<br /> }<br /> }</font> <br /> }<font color="#FF0000"><br /> scale(-1.0,1.0);//鏡像反転を戻しておく<br /> filterX+=(x-filterX)*0.3;//X座標変化量のフィルタ、「0.3」は係数<br /> filterY+=(y-filterY)*0.3;//Y座標変化量のフィルタ、「0.3」は係数<br /><br /> fill(255,0,0);//塗り色(赤)<br /> ellipse(w-filterX,filterY,20,20);//フィルタ値を用いて円描画<br /> //ellipse(w-x,y,20,20);//フィルタ値を使わない場合<br /></font><br /> fill(targetColor);<br /> rect(0,0,10,10);<br /> text(tolerance,20,10);<br /> String s;<br /> if(detection){<br /> s="detected";<br /> }else{<br /> s="none";<br /> }<br /> text(s,40,10);<br />}<br /><br />void mousePressed(){<br /> targetColor=video.pixels[w-mouseX+mouseY*w];<br />}<br /><br />void keyPressed(){<br /> if(key=='c'){<br /> video.settings();<br /> }<br /><font color="#FF0000"> <br /> if(key=='v'){//「v」キーを押して表示/非表示を切り替える<br /> if(videoImage){<br /> videoImage=false;<br /> }else{<br /> videoImage=true;<br /> }<br /> }<br /><br /> /*許容値調整は自動なので以下は使わない<br /> if(key==CODED){<br /> if(keyCode==LEFT){<br /> tolerance-=1;<br /> }<br /> if(keyCode==RIGHT){<br /> tolerance+=1;<br /> }<br /> }<br /> */</font><br />}<br /></pre></div></div><br /><br />*プログラムを開始する前にTools>Create Font...をクリックし「Monaco-10.vlw」を取り込んでおいて下さい(「<a href="http://kousaku-kousaku.blogspot.com/2008/05/processing_14.html">Processing 文字と画像</a>」を参照)。<br />「filterX+=(x-filterX)*0.3;」の「0.3」は円の動きをゆっくり滑らかに(鈍く)するための係数です。1.0に近づくほどフィルタの効果はなくなり、0に近づくほど鈍く動くので適度に調整して下さい。<br />左右反転(鏡像)しているために、円のX座標値はそのままの値ではなく「w-filterX」になっています。<br /><br /><span style="font-weight:bold;">「ビット演算による色変換」:</span><br /><a href="http://www.processing.org/reference/color_datatype.html">color(R,G,B,A)</a>は、A:アルファ値(透明度)、R:赤、G:緑、B:青の4種類の8ビット(合計32ビット)の値が含まれています。32ビットの内訳(2進数の場合)は<br /><pre><br />AAAAAAAARRRRRRRRGGGGGGGGBBBBBBBB<br /></pre><br />になります。32あるそれぞれの桁には0か1が入ります。<br />透明度が100%(不透明)の緑であれば、<br /><pre><br />11111111000000001111111100000000<br /></pre><br />になります。16進数であれば「0xFF00FF00」や「#00FF00」になります。10進数なら「255,0,255,0」です。<br />上記プログラムでは、ピクセルの赤の値を調べるために<a href="http://www.processing.org/reference/pixels.html">pixels[i]</a>を<a href="http://www.processing.org/reference/red_.html">red()</a>で括って<br /><pre><br />red(pixels[i])<br /></pre><br />にしましたが、<br /><pre><br />(pixels[i] >> 16) & 0xFF<br /></pre><br />というビット演算を使っても求められます。32ビットを16桁右にシフト「<a href="http://www.processing.org/reference/rightshift.html">>></a>」し、下位8桁(0xFF)だけを「<a href="http://www.processing.org/reference/bitwiseAND.html">&</a>」を使って取り出す(ビットマスク)という方法になります。<br />結果的にはこの方法の方が処理速度が上がるようです。<br />緑と青については、<br /><pre><br />(pixels[i] >> 8) & 0xFF //緑:8ビット右にシフトし下位8桁だけを取り出す<br />pixels[i] & 0xFF //青:下位8桁だけを取り出す<br /></pre><br />になります。<br />もし、処理速度が不安定な場合は、上記のようなビット演算を用いるか、画面サイズを小さくするか、もともとのフレームレートを下げるかなどの工夫や調整を行ってみてください。<br /><br /><br />ドライバなしですぐにコンピュータに接続可能(UVC対応)なWebカメラとして以下のようなものがあります。<br />Macintosh/Windows兼用です。<br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=kousakukousak-22&o=9&p=8&l=as1&asins=B000SSLRVA&md=1X69VDGQCMF7Z30FM082&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=666666&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe> <iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=kousakukousak-22&o=9&p=8&l=as1&asins=B000SSLRW4&md=1X69VDGQCMF7Z30FM082&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=666666&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe> <iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=kousakukousak-22&o=9&p=8&l=as1&asins=B0019K4W8G&md=1X69VDGQCMF7Z30FM082&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=666666&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe> <iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=kousakukousak-22&o=9&p=8&l=as1&asins=B0016LGI9E&md=1X69VDGQCMF7Z30FM082&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=666666&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br /><br />関連:<br />「<a href="http://kousaku-kousaku.blogspot.com/2008/08/processingvideo-web.html">Processing Video (Webカメラ)</a>」--Webカメラの使い方/映像にフィルタをかけて表示。<br />「<a href="http://kousaku-kousaku.blogspot.com/2008/08/arduinoprocessingledweb.html">Arduino+Processing マトリクスLED+Webカメラ</a>」--Webカメラ映像をマトリクスLEDに映す。<br />「<a href="http://kousaku-kousaku.blogspot.com/2008/09/processingweb.html">Processing Webカメラを光センサとして使う</a>」--点光源で画面内に線を描く。<br />「<a href="http://kousaku-kousaku.blogspot.com/2008/10/processingweb.html">Processing Webカメラ/定点記録画像</a>」--Webカメラ映像を0.5秒おきに画像保存(JPEG)する。<br />「<a href="http://kousaku-kousaku.blogspot.com/2008/11/import-processing.html">Processing Webカメラ/モーショントラッキング</a>」--Webカメラを使って動体検知する。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-24452673951697108372008-11-22T06:30:00.011+09:002009-03-28T08:01:48.305+09:00工作機械について<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7uyXRm_coS4/SScuXLQEF0I/AAAAAAAAAdU/KgYZ5Da7gkQ/s1600-h/senban.jpg"><img style="cursor:pointer; cursor:hand;width: 250px; height: 142px;" src="http://2.bp.blogspot.com/_7uyXRm_coS4/SScuXLQEF0I/AAAAAAAAAdU/KgYZ5Da7gkQ/s400/senban.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5271232864552490818" /></a><br />「旋盤」では、取り付けた材料(金属や樹脂など)を回転させ、バイト(刃)で切削し、回転系の部品(車輪、プーリーなど)を制作することができます。旋盤加工できる部品の寸法は、旋盤の「心間(回転体材料の長さ)」と「心高(回転体材料の半径)」によって決まります。より大きな部品を制作する場合は、この二つの寸法が大きな機種を選ぶ必要があります。<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7uyXRm_coS4/SScuQorOe7I/AAAAAAAAAdM/cxe6oRe3KXk/s1600-h/milling.jpg"><img style="cursor:pointer; cursor:hand;width: 180px; height: 180px;" src="http://2.bp.blogspot.com/_7uyXRm_coS4/SScuQorOe7I/AAAAAAAAAdM/cxe6oRe3KXk/s400/milling.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5271232752191962034" /></a><br />「フライス盤」では、スライドテーブル上に取り付けた材料(金属や樹脂など)を移動させることで、直線や円形に溝加工したり、エッジを段状に加工したり、材料表面をフラットに切削したりすることができます。材料を固定するスライドテーブル(XY方向の移動量)や回転テーブルのサイズによって加工サイズが決まります。<br /><br />「旋盤」と「フライス盤」を組み合わせれば、ほとんどの機械部品を制作することができると言われています。<br /><br /><br />小型工作機械メーカー/販売:<br />・<a href="http://www.bellmex.com/">ベルメックスインターナショナル</a><br />・<a href="https://www.kotobuki-mecanix.co.jp/index.htm">寿貿易/メカニクス</a><br />・<a href="http://www.toyoas.jp/site3/index.html">東洋アソシエイツ</a><br />・<a href="http://www.kiso-proxxon.co.jp/catalog/la_00.html">プロクソン</a><br /><br /><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=kousakukousak-22&o=9&p=8&l=as1&asins=4526057452&md=1X69VDGQCMF7Z30FM082&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=666666&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:140px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=kousakukousak-22&o=9&p=8&l=as1&asins=4526058394&md=1X69VDGQCMF7Z30FM082&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=666666&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:140px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=kousakukousak-22&o=9&p=8&l=as1&asins=B0016DG89C&md=1X69VDGQCMF7Z30FM082&fc1=666666&IS2=1<1=_blank&m=amazon&lc1=666666&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:140px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br /><br/><br /><br /><a href="http://hb.afl.rakuten.co.jp/hsc/09c4b174.5f17e392.09c4b175.76af27f9/" target="_blank">工具屋ドットコム楽天市場店</a><br /><a href="http://hb.afl.rakuten.co.jp/hsc/09c4b232.0ffaf1ab.09c4b233.7bbe026d/" target="_blank">プロ工具にDIY モンジュSHOP</a><br /><a href="http://hb.afl.rakuten.co.jp/hsc/09c4b238.6929c326.09c4b239.aaf17648/" target="_blank">ケンチクボーイ</a><br /><a href="http://hb.afl.rakuten.co.jp/hsc/09c4b246.38b79193.09c4b247.70bee7be/" target="_blank">卸問屋 都築屋本舗</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-13304560267974059232008-11-16T19:28:00.006+09:002009-03-31T23:54:50.018+09:00次回(11/22)授業について次回11/22(土)は、15:00から授業を開始します(お間違えないように)。<br /><br />・空間内における制作物の配置、身体との関わり、空間全体のイメージなど(前回のコラージュ)を引き続き制作してきてください。<br />・使用される部品や材料なども持参して下さい。授業内で、個人ごとに制作の指導をします。<br />・必要に応じて「旋盤」「フライス盤」「ボール盤」で、金属部品制作(回転部分や固定部分の部品など)の実習も行う予定です。<br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B0016DG89C/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/31ia7%2B0iAAL._SL160_.jpg" alt="精密小型旋盤 Compact3" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B0016DG89C/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">精密小型旋盤 Compact3</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B0016DG89C/kousakukousak-22/ref=nosim/" title="精密小型旋盤 Compact3" target="_blank">amazlet</a> at 09.03.31</div></div><div class="amazlet-detail">東洋アソシエイツ <br />売り上げランキング: 95873<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B0016DG89C/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3514498658767469367.post-15193656643672468892008-11-15T18:52:00.010+09:002010-03-26T14:46:33.352+09:00Arduino デジタルカラーセンサ S9706今回は秋月電子で購入した<a href="http://203.183.174.79/catalog/g/gI-02493/">デジタルカラーセンサS9706</a>の実験をします。S9706は、RGB3色の同時測光が可能であり、9×9素子(高感度)と3×3素子(低感度)の感度設定が2段階あり、感度設定用の端子(Range端子)をHIGHまたはLOWで切り替えて設定できます。検出結果は12ビットの値でシリアル出力されます。S9706は表面実装用の小さな部品(1.27mmピッチ)なので、<a href="http://203.183.174.79/catalog/g/gP-01115/">DIP変換基板</a>などにハンダ付けして使用したほうが実験しやすくなります。<br /><br />S9706には、<br /><br />・Range端子(感度設定)<br />・Gate端子(測光時間の設定)<br />・CK端子(クロックパルス)<br />・Dout端子(出力)<br />・Vdd端子(5V電源)<br />・Gnd端子(グランド)<br /><br />の6端子あります。<br />それぞれを以下のように接続します。尚、測光時間を調節できるように可変抵抗器も接続することにします。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7uyXRm_coS4/SR4bk62ix0I/AAAAAAAAAcs/EuzP2AfFzT0/s1600-h/S9706.png"><img style="cursor:pointer; cursor:hand;width: 288px; height: 367px;" src="http://2.bp.blogspot.com/_7uyXRm_coS4/SR4bk62ix0I/AAAAAAAAAcs/EuzP2AfFzT0/s400/S9706.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5268678935157327682" /></a><br /><br />データシートの動作手順によれば、以下のように説明されています。<br />(1)Gate端子とCK端子をLowにします。<br />(2)Range端子で、所望の感度を選択します(今回は、可変抵抗器で調節可能にしておきます)。<br />(3)Gate端子をLow→Highにして光量の積算を開始します。<br />(4)所望の積算時間の後にGate端子をHigh→Lowにして光量の積算を終了します。<br />(5)測定データは、CK端子に36のCKパルスを入れることで、Dout端子から出力されます。<br /><br />Dout端子からの12ビットのシリアル出力を読み込むためには、CK端子へ12回のパルスを3回送る必要があります。最初の12パルスによって赤、次の12パルスによって緑、そして最後の12パルスによって青が出力されます。この部分の手続きは、shiftIn()というファンクション(名前は任意)を用意することにします。<a href="http://akizukidenshi.com/pdf/s9706_kpic1060j05.pdf">付属のデータシート</a>のタイミングチャートに従ってプログラムしていくことにします。<br />最終的に得られたRGB三色の値(12ビット:0~4095)をシリアル通信でProcessingへ送信し、Processingの画面上で色表示することにします。<br /><br /><span style="font-weight:bold;">「Arduinoのプログラム」:</span><br /><br /> <a href="#" onClick="showHide('p3');return false;">[プログラムを表示]</a><br /><div id="p3" style="display: none"><br /><div style="background:#EEFFEE"><pre><br />#define RANGE 8 // 8番ピンをRange端子に設定<br />#define GATE 9 // 9番ピンをGate端子に設定<br />#define CK 10 //10番ピンをCK端子に設定<br />#define DOUT 11 //11番ピンをDout端子に設定<br /><br />int red,green,blue;//RGB三色の変数を用意<br /><br />void setup(){<br /> //Range,Gate,CK端子をデジタル出力に設定<br /> pinMode(RANGE,OUTPUT);<br /> pinMode(GATE,OUTPUT);<br /> pinMode(CK,OUTPUT);<br /> //Dout端子をデジタル入力に設定<br /> pinMode(DOUT,INPUT);<br /> //シリアル通信設定<br /> Serial.begin(9600);<br />}<br /><br />void loop(){<br /> //測光時間用の可変抵抗器の読み込み(アナログ入力:0番ピン)<br /> int val=analogRead(0);<br /><br /> //Gate,CK端子をLowに設定<br /> digitalWrite(GATE,LOW);<br /> digitalWrite(CK,LOW);<br /> delayMicroseconds(2000);//2000マイクロ秒待機<br /><br /> //感度設定(HIGH:高感度に設定) <br /> digitalWrite(RANGE,HIGH);<br /><br /> //測光開始(光量の積算を開始) <br /> digitalWrite(GATE,HIGH);<br /> //測光時間(valを代入し可変的に設定)<br /> delay(val+1);<br /> <br /> //測光終了(光量の積算を終了) <br /> digitalWrite(GATE,LOW);<br /> delayMicroseconds(4);//4マイクロ秒待機<br /> <br /> red=shiftIn();//赤の処理<br /> green=shiftIn();//緑の処理<br /> blue=shiftIn();//青の処理<br /><br /> //Gate端子をHighに戻す <br /> digitalWrite(GATE,HIGH);<br /><br /> //シリアル通信でProcessingへ三色の値を文字列で送信 <br /> if(Serial.available()>0){<br /> Serial.print(red,DEC);<br /> Serial.print(",");<br /> Serial.print(green,DEC);<br /> Serial.print(",");<br /> Serial.println(blue,DEC);<br /> Serial.read();<br /> }<br />}<br /><br />//12ビット分のパルス送信と読み込み処理<br />int shiftIn(){<br /> int result=0;//検出結果用の変数を用意(0:初期化)<br /> for(int i=0;i<12;i++){//12ビット分の繰り返し処理<br /> digitalWrite(CK,HIGH);//1ビット分のクロックパルス出力(HIGH)<br /> delayMicroseconds(1);//1マイクロ秒待機<br /> if(digitalRead(DOUT)==HIGH){//Dout端子からの出力がHighの場合<br /> result+=(1<<i);//12ビットのi桁目に1を代入(i桁分だけ左にシフト)<br /> }<br /> digitalWrite(CK,LOW);//1ビット分のクロックパルス出力(LOW)<br /> delayMicroseconds(1);//1マイクロ秒待機<br /> }<br /> delayMicroseconds(3);//3マイクロ秒待機<br /> return result;//結果を出力<br />}<br /></pre></div></div><br /><br />アナログ入力に接続された可変抵抗器で、測光時間を1ミリ秒から1024ミリ秒まで可変的に設定可能になります。測光時間が短ければ全体的に暗い色として認識されるので適宜調節してください(白色LEDを取り付けて反射光を使って読み取らせることもできると思います)。<br />12ビットの値を読み込む処理をするint shiftIn(){...}では、一色につき12回CK端子へパルス(HIGH:1μsec+LOW:1μsec)を送ります。12回分のパルスをfor文で繰り返し処理させています。for(){...}の中では、digitalWrite(CK,HIGH)で1回HIGHを送ったあと1マイクロ秒待機すると、Dout端子から1ビット分の出力があるので、digitalRead(DOUT)でHIGHかLOWかを読み込みます。そしてdigitalWrite(CK,LOW)によって、CK端子をLOWに戻しておきます。<br />読み込み値を、<br />000000000000~111111111111(十進数の0~4095)<br />までの二進数で処理するため、digitalRead(DOUT)がHIGHの場合は12ビット中のその桁が1になります。S9706では、右の桁から出力されます。つまり、for(){...}では、最初に処理される桁は右側の一桁であり、最後に処理される桁は左側の一桁(12桁目)になります。<br /><br /><br /><br />Processingの方では4つの矩形を用意し、RGBの三色それぞれの色面とRGBを合成した色面として表示します。Arduinoとのシリアル通信は文字列で行います(複数の文字列のシリアル通信は「<a href="http://kousaku-kousaku.blogspot.com/2008/06/arduino-processing.html">Arduino-Processing シリアル通信5</a>」を参照してください)。Processing側でクリックしたらシリアル通信を開始することにします。<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7uyXRm_coS4/S6xJ3Cx7_EI/AAAAAAAAAwg/0R383WGL6mg/s1600/color.jpg"><img style="cursor:pointer; cursor:hand;width: 400px; height: 200px;" src="http://2.bp.blogspot.com/_7uyXRm_coS4/S6xJ3Cx7_EI/AAAAAAAAAwg/0R383WGL6mg/s400/color.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5452814458826783810" /></a><br />Processing上の画面:左から赤、緑、青、3色合成<br /><br /><span style="font-weight:bold;">「Processingのプログラム」:</span><br /><br /> <a href="#" onClick="showHide('p4');return false;">[プログラムを表示]</a><br /><div id="p4" style="display: none"><br /><div style="background:#EEEEDD"><pre><br />//シリアルライブラリを取り込む<br />import processing.serial.*;<br />//シリアル通信用変数portを用意<br />Serial port;<br /><br />//読み込み値(三色)の変数を用意<br />int r,g,b;<br /><br />void setup(){<br /> //画面サイズ設定<br /> size(400,200);<br /> //ポート設定<br /> port = new Serial(this,"/dev/tty.usbserial-A6006kvP",9600);<br /> //「10」(ラインフィード)までを読み込む設定にする<br /> port.bufferUntil(10);<br /> //外形線なし<br /> noStroke(); <br />}<br /><br />void draw(){<br /> //背景色(黒)<br /> background(0);<br /> <br /> fill(r,0,0);//値を塗色の赤に代入<br /> rect(0,0,100,100);//赤の矩形<br /> fill(0,g,0);//値を塗色の緑に代入<br /> rect(100,0,100,100);//緑の矩形<br /> fill(0,0,b);//値を塗色の青に代入<br /> rect(200,0,100,100);//青の矩形<br /> fill(r,g,b);//三つの値を塗色のRGBに代入<br /> rect(300,0,100,100);//RGB合成した矩形<br />}<br /><br />//シリアル通信<br />void serialEvent(Serial p){<br /> //文字列の変数stringDataを用意し、<br /> //「10」(ラインフィード)が来るまで読み込む<br /> String stringData=port.readStringUntil(10);<br /><br /> //文字列データが空ではないとき<br /> if(stringData!=null){<br /> //文字列データに含まれる改行記号を取り除く<br /> stringData=trim(stringData);<br /><br /> //整数型の配列data[]を用意し、<br /> //コンマ記号をもとに文字列データを区切って<br /> //配列data[]に整数化して入れておく<br /> int data[]=int(split(stringData,','));<br /><br /> //配列data[]内のデータが3つなら、<br /> if(data.length==3){<br /> //三つの値をそれぞれマッピングして代入<br /> r=int(map(data[0],0,4095,0,255));<br /> g=int(map(data[1],0,4095,0,255));<br /> b=int(map(data[2],0,4095,0,255));<br /><br /> //合図用データ送信<br /> port.write(65);<br /> }<br /> } <br />}<br /><br />//マウスが押されたら通信開始<br />void mousePressed(){<br /> //開始用データ送信<br /> port.write(65);<br />}<br /></pre></div></div><br /><br />Arduinoからは0~4095の範囲で値が送られてくるので、<a href="http://www.processing.org/reference/fill_.html">fill(r,g,b)</a>の各値に代入するため、<a href="http://www.processing.org/reference/map_.html">map()</a>を使って0~255までの値(さらに<a href="http://www.processing.org/reference/int_.html">int()</a>で括って整数に変換)に変換しています。<br /><br /><div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4789836266/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51PE322HH9L._SL160_.jpg" alt="CCD/CMOSイメージ・センサの基礎と応用―原理、構造、動作方式、諸特性からシステム概要まで (C&E基礎解説シリーズ)" style="border: none;" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4789836266/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">CCD/CMOSイメージ・センサの基礎と応用―原理、構造、動作方式、諸特性からシステム概要まで (C&E基礎解説シリーズ)</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/4789836266/kousakukousak-22/ref=nosim/" title="CCD/CMOSイメージ・センサの基礎と応用―原理、構造、動作方式、諸特性からシステム概要まで (C&E基礎解説シリーズ)" target="_blank">amazlet</a> at 09.03.30</div></div><div class="amazlet-detail">米本 和也 <br />CQ出版 <br />売り上げランキング: 21816<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4789836266/kousakukousak-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div>Unknownnoreply@blogger.com0