\r\n\r\n
DIYエレクトロニクスの世界には、ハードウェアやソフトウェアとの面白い付き合い方がたくさんあります。
ArduinoのようなマイクロコントローラやRaspberry Piのようなシングルボードコンピュータは、電子工作やプロトタイピング**の方法を完全に変えてしまったのです。どちらも高速開発に適しているため、プロジェクトでどちらを使うか迷うことがあります。
さて、Processingとその新しい共犯者であるp5.jsの登場です。
どちらの言語も、アーティストや教育者、初心者がコードを理解しやすいように設計されています。ArduinoIDEを使ったことがある人なら、このレイアウトに見覚えがあるかもしれません。実はArduinoIDEは、ソースコードをベースにした処理を実際に行っています。これらには共通点があり、スクリプトはスケッチやライブラリと呼ばれ、IDEウィンドウから同様の方法でインストールすることができます。
今日は、Processingとp5.jsを使ったクールなハードウェア・プロジェクトを紹介します。
AKAI MPCはヒップホップの歴史を語る上で欠かせないツールの一つです。昨年、ヒップホップをテーマにしたニューヨークの音楽ハッキング・コンテストで、あのア○ル爆弾氏がパロディを披露したのは当然だろう。
このバージョンでは、音楽処理にp5.js、ハードウェアI/OにFunkeyボードを使用しています。FunkeyはScratchでも動作するArduino互換ボードで、子供にコードを教えるのに最適です。
Funkeyボードからの信号はp5.jsで処理されるので、midiは不要になりました。Arduinoをmidiデバイスとして使うのは案外簡単なのですがね。
この場合、p5.jsフレームワークは実際のMPCサンプルライブラリと非常によく似た使い方をし、どのパッドがヒットするかによって異なるサンプルをトリガーします。ボタンやスイッチの代わりに、銅テープと錫箔を使った「静電容量式タッチセンサー」を採用しました。
Funkeyのシンプルなボードとパーツを合わせても20ドル程度なので、高価なコントローラーに代わるちょっとしたハックとして最適です。
ヒップホップからブルースまで、Arduino Unoで制御するスタンドアロン型ブラウザウィンドウ。
このペンタトニック・ソロスライダーも**さんの発明です。今回は、スライド式のポテンショメーターから値を取ってから、ペンタトニックスケールの音にマッピングしています。これらはすべて、Arduino互換ボードにファルマタモードで接続されたp5botsライブラリを用いて実現されています。Javascriptを使ってArduinoを制御するチュートリアルでも、同様の方法を使いました。
jsサウンドライブラリは、サウンドの生成を担当します。p5.jsがブラウザ上でネイティブに動作することを考えると、録音、再生、合成のための強力なツールであることがわかります。
https://vimeo.com/186104890
VimeoユーザーのJi Young Chunによるこのプロジェクトは、自作のArduinoゲームコントローラとp5.js**のゲームを組み合わせて、これまでに作られた中で最も醜いブラウザゲームの1つを作成したものです。
このプロジェクトの詳細なドキュメントはありませんが、シンプルなブラウザゲームを作成するために、すべての基本的な状態を使用しているようです。本当の意味でのクリエイティビティは、キャラクター操作にあります。標準的な入力方法を使わず、Arduinoのピンに接続した自作の曲げセンサーからの値を取り込まないため、ゲーム内の主人公が不規則な動きをしてしまうのです。
マリオのようなゲームを作ることを深く、そして楽しく表現しています。確かに本物のレベルよりも難しいですね。
ProcessingにはRaspberry Pi版もあり、GPIOピンもプログラムもすべて同じデバイスに存在させることができます。YouTuberのShahrukh Tariq氏は、自作のAR(拡張現実)ヘッドセットでこの技術を使用しています。
ARはVRと違い、周囲の世界に意識を向けながら、クリアなディスプレイに映像を投影することができます。このプロジェクトでは、フレネルレンズに投影された仮想平面をユーザーの目に反射させるというものです。プロセッシングはこの映像を仮想空間に投影し、ユーザーはマウスとキーボードでその位置をコントロールすることができます。
このチャンネルの数ある素晴らしいプロジェクトのひとつで、ユーザーがヘッドフォンでビデオを見ているときに、それを画面の横に移動させて、街並みを見やすくする映像です。まだプロトタイプですが、SF的な空想のアイアンマン風ビュースクリーンは、今すぐ手軽なDIYでいじれる範囲にあるのです。
距離センサーとArduinoを使ってデータを収集することは、何も新しいことではありません。このプロジェクトで注目すべきは、hack.ioのユーザーであるAkshay6766さんのデータの活用方法です。
サーボ機構で距離センサーを前後に動かすことで、より正確に周囲を読み取ることができます。誰かが近づくと、ブザーでアラームが鳴り、画面に侵入者の位置が表示されます
距離データをグラフィカルに表示する前に、ここではシリアル接続でArduinoとインターフェイスするための処理を行う。プロジェクトのページでは、プロジェクトの概要を説明し、必要なコードと部品の完全な要約、および回路の構築方法を示すフリット図を提供しています。
ジェスチャーを使ったコントローラーやバーチャルリアリティは一般的になりつつありますが、開発にはコストがかかり、エントリーモデルのLeap Motionコントローラーでも69.99ドルという高額な値段で販売されています。
前文が完全に正しいわけではなく、ArduinoとProcessingと錫箔を使って非接触型3Dインターフェースを作ることができることがわかりました。夢のような話でしょう?違うんです。
フルビルドの記事では、**コントローラに必要なもの、Arduinoとハンドリングソフトウェアに必要なコードのすべてを概説しています。このバージョンは、冒頭のp5.jsダンボールMPCと同じ静電容量式タッチを採用していますが、使い方が異なり、3次元空間で3種類の電圧を読み取り、ユーザーの手を計算するようになっています。
このプロジェクトは、ほとんど部品を必要とせず**、コンピュータの代替制御方法の実験を開始するのに最適な、非常に印象的な方法です。
赤外線LEDとレシーバーを使ったArduinoの心拍計は、いろいろな意味で異質です。YouTuberのKevin Darrahが撮影したこの写真は、さらに特別なものとして私たちの目を引きました。
このビデオでは、彼が**驚くほど正確な心拍数モニターと、データを画面上でどのように表現しているかを詳しく説明しています。つまり、赤外線LEDと受信機でユーザーの脈拍を検出し、それを自作の増幅・フィルタリング装置で送るというものです。KevinのYouTubeチャンネルはビデオフィルターが充実しており、DIY電子工作に興味のある方にはお勧めのチャンネルです。
このデータは自作のArduinoに送られ、Arduinoはデータをサンプリングし、心拍の総振幅に応じてLEDを点灯させる。これは、LEDが各パルスに対して常に点灯していることを意味する。そしてArduinoボードは、マッピングされたデータをシリアルポート経由でProcessingに送り、心拍数グラフを画面上に配置するために整数に変換する。
このプロジェクトでは、これは他のタイプのビルドよりもはるかに正確なビルドを生成するエレガントな方法です。
このプロジェクトでは、成層圏に突入し、アイアンマンの感覚がよみがえります。これは、完全な機能を備えた、DIYのBluetooth起動VRグローブです。それだけでなく、こんな風にも見えます。
冗談抜きで、あれ、いい感じですね。b.Aswinth Rajのプロジェクトcircuitdigest.comでは、プロジェクトの立ち上げから今日に至るまでの全貌が紹介されています。Arduinoとコンピュータ通信用のBluetoothモジュール、指に装着した2つのホールセンサー、親指に装着した磁石をスイッチとして組み合わせています。大胆で明るいオブジェが、手のひらサイズのトラッキングです。
コンピュータ側では、処理コードがウェブカメラを使って手のオブジェクトを追跡し、その位置でコンピュータのマウスを制御しています。
このビルドは、私たちが好きな要素がたくさん詰まっていて、どこから手をつけていいのかわからないほどです。バッテリーで動作し、Bluetoothで通信することで、完全な自己完結型のワイヤレスグローブとなっています。カーノートPCにウェブカメラとBluetoothを採用したことで、さまざまなシステムで使用できるようになりました。これは本当に素晴らしいDIYプロジェクトで、チュートリアルのページでは、自分で動作させるためのすべてのコードを説明しています。
これらのプロジェクトは、Processingとp5.jsをコアとして使用するビルドのほんの一部に過ぎません。
他の多くのプログラミング言語を学ぶこともできますが、Processingとp5.jsは、そのアイデアとライブラリによって、初心者でも使いこなすことができるはずです。