過去にも数回取り上げている「IchigoJam」。jig.jpの会長である福野泰介氏が開発、公開しているもので、2,000~2,500円程度で入手可能な、ワンボードのこども向けパソコンだ。
Raspberry Piなどと違い、LinuxやOSなどをまったく分からない人でも電源を入れれば、即BASICで使えるシステムなので、30~40年前のMSXなどの8bitパソコンのような感覚で使うことができるのが特徴。
2014年に初代機が登場後、さまざまな改良が行なわれ、新世代機が続々と登場。BASICの代わりにJavaScriptで使えるIchigoLatteが登場したり、マルチメディアボードであるPanCakeやネットワークボードのMixJuce、USB-シリアル変換ボードのIchigoToastなど各種拡張基板なども登場している。
そうした中、CPUに従来のArmではなく、RISC-Vを採用し、処理速度が10倍になったという新機種「IchigoJam R」が今年誕生した。開発者である福野氏が、SNS上で「入出力切替とDACに対応。RISC-V版IchigoJam用βファームウェア公開! IchigoJamで入出力が足りない! という方、切り替えて使えますよ」とコメントしていたため、これは試してみたい、と久しぶりに新機種を購入。
BASICの新コマンドであるDAC機能を使って、アナログ・シンセサイザをCV/GATEコントロールすることができたので、実際どんなことをしたのか紹介してみよう。
3台目のIchigoJam。実験前のファーム更新に一苦労
筆者がIchigoJamを入手したのは、2015年購入の初代機、2017年購入の二代目(IchigoJam U)以来4年ぶりである。
以前の2モデルは1,500円程度で購入したキットで、自身でハンダ付けして完成させたが、最新モデルの「IchigoJam R」は、CPUが従来よりも小さなRISC-Vを採用したからなのか、それとも現時点でベータ版という扱いだからなのか、組み立て済完成品のみの販売に限られ、送料込み2,640円でネット購入した。
以前と異なり、IchigoJam Rは基板上に圧電ブザーが搭載されているので、本体のみで音が出るようになった。キーボードはPS/2ではなくUSBになり、一般的なキーボードが使えるようになったのは嬉しいところ。試しにワイヤレスキーボードを接続してみたところ、基板がスッキリして使いやすくなった。
ビデオ出力は従来どおりのコンポジット出力で、手元にあるPC用ディスプレイが利用できない。そこで以前購入したUSBビデオキャプチャ機を取り出し、OBS Studioを使う形でWindows画面内に表示させて使っている。
BASICを試してみたところ、従来のIchigoJamと大きく変わることはなかったが、今回一番気になっているのがDAC機能。これで何ができるか、だ。
まあ、DACと言っても、USB-DACのようなオーディオを再生するものとはちょっと違う。あくまでデジタル・アナログ・コンバーターであって、デジタルで指定した数値をアナログ信号、つまり電圧に変換してくれるというものだ。
一般的にデジタル機器の入出力というのは、0か1しか扱わない。電圧が0Vなら0、3.3V(または5Vなど)であれば1の二者選択式。しかし、IchigoJam RではDAC機能を持たせたことで0~3.3Vの間を出力できるようになった。
DAC機能を用いて、ここから直接キレイな波形を作ってオーディオ出力を……ということも不可能ではないけれど、いくら10倍に高速化したとはいえ、そこまでの処理をBASICで行なうのは大変そう。そこで、思いついたのが、この電圧制御機能を用いてアナログ・シンセサイザをコントロールしてみるということだ。
さっそく試してみようと思ったところで、問題が発生。DACコマンドを実行してもエラーが出てしまうのだ。
それもそのはず。前述の福野氏は、6月12日にDAC対応の「IchigoJam Rβ8」というファームをリリースしたばかりで、出荷されるIchigoJam Rにはまだそれが搭載されていない。
確かに通販サイトにも「※本製品のファームはIchigoJam BASIC β2で出荷されます」と書いてあったほか「製品説明にて『新たにDAC出力にも対応しました』と記載しておりましたが、現時点の出荷ファームにはDAC機能が搭載されておりません」との記載もあるので、やはりDAC機能を使うにはファームウェアをアップデートする必要がある。
まあ、ファームウェアのアップデートくらい簡単にできるだろう、と思ったのだが、こどもパソコンであっても、これは大人が作業するところのようで、簡単にはいかなかった。
Raspberry PiのようにmicroSDなどにOSを入れて起動させるのであれば、手持ちのWindowsやMacでOSをダウンロードしてmicroSDカードに展開してRaspberry Piに挿し直せばいいだけだが、IchigoJam/IchigoJam Rの場合はmicroSDなどは使わないし、そもそもPCと接続するための端子も存在しない。
IchigoJamのファームウェアアップデートの情報ページを見ると、シリアル経由でアップデートを行なう事、そのためには予めISPモードにしておく必要がある事が記載されている。
この部分は大人向けの解説であるため、ちょっと難解。ネット上で調べながら手順を確認してくと、予めケーブルのパッチングによって、ファームウェアの書き換えを行なうためのISPモードに設定した上で、WindowsもしくはMac上のファームウェア書き換えソフト(stm32flash)を使ってファームウェアをシリアル転送する必要があるようだった。
そして、そのシリアル転送にはUSB-シリアル変換アダプタを用意しなくてはならないが、そんなものは手元にない。公式ページのファームウェア更新に関する情報ページにも具体的にどんなアダプタを使うかに関する具体的な記載が見つけられなかったので、Amazonで検索したところ、似たようなものがいっぱい表示される。
翌日届くものの中でもっとも安かったのが、3つで558円というアダプタ。1個あれば十分なのだが、ほかより安いし、ケーブルも付属しているので、これを購入することにした。
で、改めて手順を追いながら作業していくと、また壁にぶつかった。
記載通りにRX端子とTX端子を交互に配線した上で、ファームウェア書き換えソフトのstm32flashでCOM3ポートを指定しても「COM3ポートなどない」とエラーが表示されてしまうのだ。
似た例はないのかとネット検索すると、「安物のUSBーシリアル変換器にはトラブルが多い」との情報が。「Amazonの安物には、偽物チップが搭載されていて動かなかった」という具体例も示されていて、これは失敗したかも、と気づいたのだ。さらによく読むと、IchigoJam関係のネットショップでは1,500円程度で動作保証するアダプタも販売されていたのである……。
が、ここですぐ諦めるのも悔しい。
Windowsのデバイスマネジャーを見てみると、挿したUSB-シリアルアダプタが正しく認識されていないので、Windows標準で対応するチップではないことが分かるが、ドライバを組み込めば動くかもと思い、アダプタのカバーを破って、チップに記載されている型番を見てみると「CH340G」とある。
これをネット上で検索してみると、ドライバを発見。まったく別のメーカーの基板用ドライバではあったが、インストールしてみると……ビンゴ! これでCOM3ポートを認識し、無事にファームウェアを更新することができた。
キーボードを鍵盤化して演奏するプログラムを作成。シンセを鳴らす
IchigoJam Rを起動させ、ファームウェアのバージョンを確認すると、IchigoJam Rの1.5β9が動いているようだ。と、ここまでの準備にずいぶんと時間がかかってしまったが、いよいよ、ここからが本番である。
まずは、本当にDACが機能するか、テスターを使って確認してみる。
福野氏が示したIchigoJam Rのピン機能(下図)を見ると、本来は入力用であったIN1~4の端子に出力できたり、OUT1~6を入力にも使えるなど、いろいろな使い方ができるようになっているようだ。
DAC出力に対応しているのは、IN2とIN3。そこで出力の9番ポートであるIN2端子に、[DAC 9, 300]などとすると1V以下の電圧が出力され、2つ目の数字を変えると電圧が変化するからDACとして動作していることが確認できる。
が、前述の福野氏のβ8リリース時の書き込みでは、「DACコマンド対応(OUT9/10、0-4095)」とあったが1000あたりで3.3Vになってしまい、それ以上を指定しても変わらない。
おや? と思いβ9のBASICリファレンスを見ると「DAC 数1,数2 / 外部出力OUT9/OUT10(IN2/IN3)に数2のアナログ電圧を出力する(0-1023で0-3.3V)」とあるので、どうやらβ8の3日後にリリースされたβ9では仕様が変わったようだ。
ということで、改めて1023を出力するとテスターでは3.29V、511を出力すると1.64Vとなり正しく動いている様子。また、OUT10のほうでも同じように動作することが確認できた。
これであれば、CV/GATEで動作するアナログ・シンセサイザをコントロールできるはず。さっそく、Behringer「Neutron」というセミモジュラー型アナログシンセを引っ張り出し、ゲート入力に9番ポート、ピッチ入力に10番ポートを接続してみた。
3.5mmのパッチケーブルを半分に切断し、ブレッドボード用のジャンパー線と半田付けし、しっかりと接続。この状態でピッチを3段階に変化させ、ゲートのON/OFFをするごく簡単なプログラムを組んでみたところ、「ドレミドレミ……」と演奏させることができたので、目論見は成功。当初ゲート入力に3.3Vでは足りないのでは、と思ったが問題はなかったようだ。
ここで、もう少しまともに楽曲を演奏できるようにプログラムをしようと思ったけれど、曲を入力するのは面倒。であれば、IchigoJamに接続したUSBキーボードで演奏できるようにした方が簡単そうだ。
ただし、音程を正しく指定するにはOUT10のほうに出力する値をしっかり計算しておく必要がある。Neutronの場合、1Vで1オクターブというV/OCTの仕様なので、これを元に2V~3Vでの数字を計算してみたのが下の表。
作成した表を元に、キーボードを鍵盤に見立てて、演奏できるようにした単純なプログラムがこちら。
“INKEY()”で入力されるキーを見つけ出しているが、このコマンドだと鍵盤を押し続けているか、離したかといった判定をするのが難しい。そのため、入力トリガーだけで演奏できるよう単純なプログラムにしている。それを実行したビデオがこれだ。
なんとか目的のものができたようだ。DAC対応しているのが2ポートだけなので、演奏できるのはモノフォニックに限られるが、このプログラムをベースにすればより本格的なシーケンサも作れそう。
なお、今さらながら気づいたのは、DAC機能よりも前にPWM(Pulse Width Modulation)出力機能の搭載や、4ポート同時利用できるという事。この機能を用いれば、わざわざ外部シンセサイザを接続するまでもなく、IchigoJam本体だけで音源として使えそうだし、最大4音ポリフォニックまで鳴らすことができる。
ただ、少し試してみたところ、音は出せるものの、このパルス波だけで楽器にするのは音質的にはやや厳しそう。機会があれば、フィルタやシリアル接続機能を用いたMIDI入力などを追加して、MIDI楽器として外部連携できる機材をIchigoJamで作れれば、と考えているところだ。
からの記事と詳細 ( 最新こどもパソコン「IchigoJam R」でアナログ・シンセを鳴らす - AV Watch )
https://ift.tt/3jgigFH
科学&テクノロジー
No comments:
Post a Comment