2013年10月12日土曜日

MacのターミナルでGmailの未読メール数を表示する


curl -u USERNAME:PASSWORD \https://mail.google.com/mail/feed/atom  -k --silent |grep -m 1 "<fullcount>" | sed -e 's/<fullcount>//' | sed -e 's/<\/fullcount>//'

別にこれでもいいんだけど

curl -u USERNAME:PASSWORD \https://mail.google.com/mail/feed/atom  -k --silent |grep -m 1 "<fullcount>" |   grep -Eo "[0-9]+"
こっちのが短くてわかりやすい ※それぞれ二行目は無視してください
//追記2014/01/19 表示のおかしいところを治しました

2013年10月11日金曜日

ArduinoでMIDIケーブルを使わずにMIDI信号をやりとりする。

つまりUSB接続でMIDI通信をしよう!と言うこと。

Appleのコンピュータを買うと最初からGarage bandというDAWソフトがついてくる。
それをArduinoから制御しましょうという話。もちろんAbleton Liveとかも操れるはず。

材料
  1. Japanino…手持ちのArduino互換のマイコンボードがこれしかなかった
手順
  1. JapaninoにArduino1.0.5からも書き込みができるようにする。
  2. シリアルからMIDI通信するソフトをダウンロードする。
  3. IACドライバを設定する。
  4. MIDIライブラリをダウンロードする
  5. Japaninoのプログラムを書き、書き込む
  6. DAWを立ち上げる。
  7. シリアルMIDIソフトをオンにする。
  8. 糸冬
JapaninoをArduinoIDE 1.0.5から扱えるようにする方法
 ここにすべて書いてある→http://dexlab.net/pukiwiki/index.php?Memo%2FArduino#n12f195c
 簡潔にまとめると、学研で配布しているArduinoIDEのパッケージの中身のpins_arduino.cとpins_arduino.hをhardware\arduino\cores\arduinoにコピー、そしてboards.txtを書き換えればよい。Macでのパッケージを参照するためにはアイコンを右クリックして「パッケージの中身を表示する」を選べばよい。

シリアルーMIDIソフトのダウンロード
 またもや、ここに全て書いてある→http://projectgus.github.io/hairless-midiserial/
 他にも同じような機能を持つソフトはあるのだが、それらのソフトを試したなかで動いたのはこれだけだったのでこれを使えば問題は無いはず。(大きい声では言えないけどSerial−MIDI Converterっていうやつです。これまた大きな声で言えないけどMake:のオンラインマガジンに紹介記事が載ってたり、ブログがヒットしたりして惑わされました。今はJavaの仕様の関係で使えない、みたいです。)

IACドライバはMacに最初から付いている。
 アプリケーション→ユーティリティ→Audio MIDI 設定というソフトの中に入っている。
 一番左にあるIACドライバをダブルクリックするとプロパティが表示される。
 「装置はオンライン」にチェックマークを入れる。

Japaninoへのプログラム
MIDIライブラリをArduinoIDEに追加する必要がある。
以下はベロシティを段階的に変えて発音させるというプログラム
これを書き込む

#include<MIDI.h> 

void setup(){
  MIDI.begin();
  Serial.begin(115200);
}

void loop(){
  for(int velocity=0; velocity<=127; velocity++){
    MIDI.sendNoteOn(36,velocity,1);
    delay(250);
    MIDI.sendNoteOff(36,velocity,1);
  }
}
 
DAWを立ち上げる
GarageBandでもなんでもよい。

Hairless midi-serialを起動して設定する。
上記のように設定すればよい。
Serial portにはArduinoがつながっているUSBポートを選択する。
そして左上のボックスにチェックを入れると音が鳴り始める。

こんなつかいかたもある
圧電ブザーから取り出した圧電素子をつかって衝撃をトリガーとした。衝撃の強さを0-127の段階に置き換え、それをベロシティとする。


最後に
 ここまで非常にめんどくさい手順が必要だったわけだが、現行版のArdiuno UNO を購入することで解決することができる。ArduinoUNOはUSB接続の際にHIデバイスやMIDIデバイスへと自らを変化させることができる。
 このブログに書いてあることはそういった方法から考えるとえらく遠回りな方法を示していることにお詫び申し上げる。しかしながらこの方法ではシリアル通信さえできれば良いので他のマイコン、例えばPIC、でも同じことができるのではないかと思う。

2013年10月10日木曜日

趣味の話

 先日学校の行事で何枚もライントレースカーの回路をハンダ付けする機会があったのだが、そこでハンダ付けをしていると他の何もかも忘れて没頭できるなと気づいて、電子工作を趣味にしようと思った話。

 その時、回路作成のノルマが間に合っていなかったので家にユニバーサル基板と素子を持って帰って家にあるはんだごてで作ろうと思ったら、長いこと放置していたおかげでこて先が死んでた。

 これはいかんと言うことで工具を色々揃えたいなー。と思っていたら誕生日にほしいものが有ったら言いなさいとのことで、まあ良い物は長く使えるという言葉にしたがっていろんな物を買ってもらった。親としてはもっと別のものに遣って欲しかったかもしれないけど。

以下工具

  • 精密ドライバーセット \1000
  • 逆作用ピンセット*2 \600
  • 精密鷲口ピンセット \300
  • ニクロムはんだごて \800
  • はんだごて台 \1000
  • はんだ吸い取り器 \800
  • 精密ニッパー \1300
  • ラジオペンチ \1900
  • ワイヤストリッパ \1300
  • ミニバイス \500 
 
 それに合わせて素子も購入したのだが当面の目標はドラムセット型MIDIコントローラを作ることにした。電子ドラムは高い。それを安く・クオリティの高いもので代用してしまうことができるだろうと思う。音源はPCからそれぞれのPADに好きな音を当てることができるだろう。自作のDrumKitが自分のような人にとっては十分実用に耐えうるだろうということは下の動画を見てもらえればわかると思う。


 いろいろ電子ドラムについて調べてみた結果、9入力(bass,snare,hi-hat,hi-hatpedal,hi-tom,lo-tom,floar-tom,ride-cymbal,clash-cymbal)の電子ドラムは2万を切ることはない(廉価メーカーでさえ)のでそれ以下に価格を抑えることができたら大成功だと思う。設計次第ではオールメッシュパッドにだってできるはず。

 本格的に趣味としてやっていくことに決めたのだから何かしら生産性がなきゃダメだと思うので恐らくこの趣味のゴールは「人が欲しがるような物をつくる」事になるだろう。人が欲しがればそれは富となるので、すなわち生産性があると言っていいと思う。できたらキット化してネット上で販売したい。とりあえず今は自分が遊びたい気持ちが強いけど。

 それからこの趣味にはもうひとつ来年へ向けた理由がある。自分はこれまでプログラムばっかり(しかもC言語ばっかり)やってきたのだが、来年入る研究室はプログラムする機会はほとんどない。化学を独学で実践的に学ぶことは難しいので、テキストを使って勉強するとして、自分が持っているアドバンテージは電気・機械・情報の三分野をうすーくやってきたことだろうと思っている。電子制御工学科はそういうところだった。ならばということでこれまで深入りしてこなかった電気や機械の部分を残り高専生でいられる間に少しでも深めようという動機からのチャレンジとなる。

 そのチャレンジ一日目の課題はSolidWorks入門だった。
 
 これはPADを集中管理するTerminalBoxになる予定。SolidWorksには今日はじめて触ったと言っていいほどだけれど、ずっと隣で悪戦苦闘してた脇坂のお陰で専門用語的なものは頭に入っていたし、ソフトを立ち上げた時からできることはだいたい分かった。これが来年どこまで役に立つかわからないけど3DCADへの理解はきっと良い物になるはず。行き先には3Dプリンタが導入されているのは確認してあるし。

 こうやってやってみるともっと早くやっとけばあれもこれももっとキレイに、ちゃんと作れたんだろうなと後悔が…。