2024年8月26日月曜日

ビジュアルプログラミング環境でRaspberry Pi Picoのプログラミングに挑戦〜BIPES編

前回の続きです。Raspberry Pi Picoのビジュアルプログラミング環境として「Piper Make」を使ってLチカをやってみました。今回は、以前に見つけたもう一つの「BIPES」でやってみたいと思います。BIPESでは、MicroPythonが使えるようになっているPicoを使う必要があるのですが、以前にThonnyVisual Studio CodeでプログラミングをやったときにMicroPythonを使えるようにしたPicoがあるので、これを使ってLチカプログラムの動作確認をしていきたいと思います。
#PicoのプログラミングでMicroPythonを使えるようにする作業については、拙Blogの過去記事を御覧ください。

今回もLinux Mintで動かしている自作PCを使って動作確認をしますが、ブラウザはLinux版のGoogle Chromeです。今まであまりブラウザに触れていませんでしたが、Linuxでは(ライセンスの問題?で)Chromiumを使うことが多かったのですが、最近では「ソフトウェアマネージャー」からもGoogle Chromeが使えるようになって、LinuxでもGoogle Chromeを使っています。

〈BIPESを使ってみる〉
BIPESのサイトは、Piper Makeとは違って教育プログラムを提供するような感じではなく、あくまでビジュアルプログラミング環境を提供しているのみとなっていますが、それはそれで割り切って考えれば迷うこともなくてわかりやすいと評価することができます。問題点は、Piper Makeと同じくすべてが英語表記であることですが、難しいことはないと思いますので試用だけはしてみたいと思います。
#仕事に余裕があれば、こういうサイトの日本語翻訳にも取り組んでみたい気もしますが…。(お呼びでないかな)
#サイトを丸ごとGoogle翻訳で日本語化してみようと試してみましたがダメでした。

以下、Lチカまでの手順をまとめておきます。

  1. (Google Chromeで)BIPESのWebサイトを開く
    ※このとき、PicoはPCに接続しません
  2. 接続するマイコンボードを「Raspberry Pi Pico」に変更する
  3. 「Loops」から「repeat(while)」、「Logic」から「(true)」、「Timing」から「delay[1](seconds)」、「Machine」→「IN/OUT Pins」から「set output pin …」を取り出してプログラムする
  4. Picoを(USB-A↔micro USBケーブルで)PCに接続する
  5. 「Connect/Disconnect」ボタンをクリックして、Picoの接続先を選ぶ
  6. (マイコンボードを選択した窓の右にある)スタートボタンを押してプログラムを動かす

これで無事にLチカ動作確認ができました。使用感としては、一言に「ビジュアルプログラミング」と言っても、その言語の設計思想によって使用感や難易度が変わるということがわかりました。前回のPiper Makeは、micro:bitMakeCodeでのプログラミングに似ていると感じました。一方、今回のBIPESは、MicroPythonでのプログラミングにも近いように感じて、ビジュアルプログラミングからテキストベースのプログラミングへの橋渡しにもなるように感じました。ただし、私自身はビジュアルプログラミングとテキストベースのプログラミングに優劣があるとは思っていませんし、ビジュアルプログラミングを幼稚だとか将来的に卒業すべきものだとかというようには思っていません。目的や自分のスキルに応じて使い分けることができればよいのではないかと思います。

〈参考資料〉

2024年8月20日火曜日

ビジュアルプログラミング環境でRaspberry Pi Picoのプログラミングに挑戦〜Piper Make編

以前の続きです。これまでは、C/C++やMicroPythonThonnyVisual Studio Code)でのプログラミングに挑戦してきましたが、学校での使用となるとまだまだハードルが高いと思います。(現状では、ということで…)そこで、ScratchMake Codeのような、いわゆるビジュアルプログラミング環境を使ってRaspberry Pi Picoのプログラミングができないか調べてみました。すると、「Piper Make」と「BIPES」というビジュアルプログラミング環境を見つけることができました。両方とも英語なので「ビジュアルプログラミングだから簡単」とは言えないところがありますが、使用感だけでも確認してみようと思います。

〈Piper Makeを使ってみる〉
Piper Makeの使い方については、SunFounder(米国にある、ArduinoやRaspberry Piなどを活用したSTEAM教育に力を入れている企業と紹介されています)のテキストが充実していたので、それらを参考にしてPicoの動作確認をしていきます。参考資料は以下のとおりです。

ビジュアルプログラミングをはじめる前に、セットアップ作業が必要です。今回もLinux Mintで動かしている自作PCを使って作業を行います。また、PCとの接続にはPicoの他にUSB-A↔micro USBケーブルが必要です。作業した内容は以下のとおりです。

  1. Piper Makeのサイトを開く
    ※PicoとPCとの接続は、後で指示されるまで行わないでください
  2. 画面上の「SETUP MY PICO」ボタンをクリックする
  3. ガイドのウインドウが表示されるので指示に従ってセットアップ作業を行う
    ※Picoにファームウェアがインストールされます

これで動作確認の準備が整いました。試しにLチカプログラムを動かしてみたいと思います。デフォルトでは「STORY」モードになっていると思いますので、MODEレバーの側にある「CREATIVE」をクリックしてビジュアルプログラミングができる状態にします。Lチカまでの手順を以下にまとめておきます。

  1. 「NEW PROJECT」ボタンをクリックしてプロジェクトを作る
  2. 新しく作ったプロジェクトをクリックしてビジュアルプログラミング画面に入る
  3. 「Chip」から「Start」「turn pin(0) (on)」「wait (1) seconds」、「Loops」から「repeat forever …」を取り出してプログラムする
  4. 「CONNECT」ボタンをクリックしてPicoを接続する
  5. 「START」ボタンをクリックしてプログラムを動かす

これで、PicoのLEDが点滅したので、Lチカ成功ということになりました。作成したプログラムは、「DOWNLOAD」をクリックするとPNGファイルとして保存することができます。CREATIVEモードのトップ画面に「IMPORT PROJECT」ボタンがあるので、これをクリックしてPNGファイルとして保存したものを読み込むと保存したところから編集作業をすることができます。仕組みとしてはとても面白いと思いますし手軽にできるのがよいと思うのですが、Google Chromeで日本語に翻訳しても部分的にしか日本語にならないので、小学校の授業で使うのは難しいかもしれません。
#プログラミング部分については、「ビジュアルプログラミングで Raspberry Pi Pico が扱える「Piper Make」を軽く試した時のメモ(Maker Pi RP2040 でも試す)」を参考にしました。

2024年8月13日火曜日

Behringerのアナログドラムマシーン(RD-6)とアナログベースラインシンセサイザー(TD-3)を同期させてみた

前回の続きです。BehringerRD-6に続いてTD-3を購入し、両方とも試用するところまではやってみました。次は、他の楽器とつないで一緒に音を鳴らすことに挑戦してみたいと思います。はじめの一歩として、そもそも対で使われることが想定されているRD-6とTD-3を同期させてみます。
RD-6の基本コントロールマニュアル(なぜか「日本語版クイックガイド」という名前で保存先を聞かれますが、中身は「基本コントロールマニュアル」です)も見つけたので、今回はこれも参考にしています。

事情により、現在自室で様々な取組を同時に行っているため、かなり手狭で楽器の試用環境を広げることができません。とりあえずつなげて同期させて音が出るかだけを確認するため、Amazonで見つけたAU-401(←Google先生に聞いていただければ…)というミニステレオプラグ(TRS)対応のヘッドホン出力用ミキサーを購入し、RD-6とTD-3のそれぞれのPHONE出力からAU-401につないで、以前このBlogで紹介したXY-C50L(←YouTubeの動画)というステレオD級アンプにつないでスピーカーから音を出すという構成で動作確認をすることにしました。

同期の方法はいくつかあるようですが、今回はSYNC入出力を使うことにしました。ドラムマシーンのRD-6からの信号でTD-3を動かしたいと思います。そのためのTD-3側のセッティング方法を以下に箇条書きでまとめておきます。

  • シーケンスが止まっているか確認する(止まっていなければ止める)
  • 「Function」ボタンを押す
  • 「BACK」と「WRITE/NEXT」ボタンを同時に押す
    ※以下3秒以内に何もしないと変更モードが解除されます
  • 「4」キーボタンを押してクロックソースを「TRIG」に設定する(1=INT、2=MIDI、3=USBとなっている)
  • クロックレートを設定する(5=1PPS、6=2PPQ、7=24PPQ、8=48PPQとなっている)
    ※デフォルトが7=24PPQだったので、そのままにしました
  • RD-6のSYNC OUTとTD-3のSYNC INをTSケーブルでつなぐ

これで準備完了です。TD-3の「START/STOP」ボタンを押してから、RD-6の「START/STOP」ボタンを押すとベースとドラムが同時にスタートして同期した状態で演奏されました。なかなか面白いです。これまでは、ドラムとベースラインの演奏はMIDI音源だけでやってしまっていたので、つなげることを意識する必要がなかったのですが、今回のようにRD-6とTD-3をつないで同期させて音を鳴らすというのは、MIDIがない時代に戻ったようで不便でもあり電子楽器を動かしている楽しさもありで結構ハマりそうです。

今後やってみたいこととしては、KORGSQ-1(ステップシーケンサー)でドラムやベースにタイミングを与えつつハーモニーをつくり、BehringerのSWING(MIDI&CV/Gateキーボード)で様々な音源をコントロールしながら演奏してみたいと思っています。

2024年8月5日月曜日

Behringerのアナログベースラインシンセサイザー(TD-3)を使ってみた

以前からBehringerの電子楽器に注目して少しずつ試しているところなのですが、今回は新たにアナログベースラインシンセサイザー(TD-3)を購入しました。以前に購入したアナログドラムマシーン(RD-6)と組み合わせて使えば、RolandTR-606(←現在はSoftware Rhythm Composer)とTB-303(←こちらもSoftware Bass Line)と同じような組み合わせで使えるということになります。
#TR-606とTB-303との組み合わせにについては、公式の記事がありましたので、詳しく知りたい方はどうぞ。

そもそもTR-606(←TR-06としてアップデート販売されています)にしろTB-303(←TB-03としてアップデート販売されています)にしろ、販売されていた当時には使ったことがなく、今でも手元にあるRolandの楽器は、80年代後半から90年代のものばかり。そもそもRolandの楽器との出会いは、若かりし頃、JUNO-106(←現在はSoftware Synthesizerとして販売されている)を使っていたところから始まります。当時人気だったYAMAHADX-7には手が出せなかったこともあって、それ以降もRolandの楽器を多く使っていましたが、その後MacとMIDI音源を使ってDTMを始めてしまったので、ベースラインシンセへの需要が高まることはありませんでした。
#今では、KORGやYAMAHA、ensoniqの楽器もありますが、はじめてのJUNO-106は、早いタイミングで手放してしまいました。

歳を重ねても音や音楽、楽器への興味はもち続けていて、自室の楽器も少しずつ増えているのですが、そんなコレクション(?)の仲間入りをしたのが今回のTD-3というわけです。到着後、箱から出してクイックスタートガイドも参考にしながらいじってみました。

アナログシンセサイザーだということで15分程度の暖機運転(?)が必要とのこと。少し待ってから「START/STOP」ボタンを押して、あらかじめプログラムされているベースラインのパターンを聴いてみました。独特なベース音で機械っぽさやチープさはあるのだけれど、ベースラインを再生しながらも直感的な音作りができて飽きずに遊んでいられる感じの楽器でした。他の音源のベース音と聴き比べたり、一緒に鳴らして音を太くしたりしても面白いかもしれないと思いました。

クイックガイドだけでは使い方がはっきりしないところがあったのでGoogleで検索してみると、「基本コントロールマニュアル」というものが出てきました。Behringerの日本代理店であるエレクトリのWebサイト内にあるようで、PDFファイルになっています。

これを使って、他の楽器との連携や他の楽器からのコントロールにも挑戦して、楽器いじりを楽しみたいと思います。

2024年8月1日木曜日

Visual Studio CodeでRaspberry Pi PicoのMicroPythonプログラミングに挑戦

以前の続きです。Raspberry Pi Pico/Pico Wのプログラムを作成する環境として、前回はThonnyを使ってMicroPythonでのプログラミングを試してみました。今回は、最近よく使われているVisual Studio CodeをMicroPythonでの開発環境として使うことができるようにしてみたいと思います。とは言え、Visual Studio Code自体は、MicroPythonにもPico/Pico Wにも特化したものではなく汎用性の高いIDEであるため、それなりに準備を整える必要があります。備忘を兼ねて、その作業手順をまとめておきたいと思います。
#今回は、「Raspberry Pi Pico W の LED を VS Code を使って、点滅させてみた。(RP-Pico チュートリアル)」も参考にしました。
#Visual Studio CodeでC/C++を使ったPico/Pico Wのプログラミングもできますが、今回はチャレンジしていません。

〈Visual Studio Codeのセッティングとプログラミング〉
Visual Studio Codeのインストール作業については、Thonnyと同様にUbuntu系のディストリビューションを使っていればソフトウェアマネージャで簡単にインストールすることができるのですが、どうもインストール後の不安定さが気になったのでダウンロードサイトから.debファイルをダウンロードしてインストールしてみました。作業をした時点では、ソフトウェアマネージャ(Flatpak)ではバージョンが1.90.…となっているのに対して、ダウンロードしたものはバージョンが1.91.…となっていました。とりあえず、ダウンロードした最新バージョンのものを使うことにして作業を進めました。

インストール後にはじめて起動したとき、日本語表示が必要なら日本語のLanguageパックをインストールした方が良いという案内があって、それに従ってインストール作業をしました。Pico/Pico Wとの接続に必要なのは、「MicroPicoGitHub)」という拡張機能です。ウィンドウ左側のメニューアイコンから「拡張機能」を選択して、検索窓に「micropico」と入力するとPico/Pico w用の拡張機能が表示されます。これをインストールすれば準備完了のはずですが…。

よく見ると、拡張機能のMicroPicoの項目に軽微な不具合があることがアナウンスされています。「workspace」への対応に問題があるというような内容が書かれているのですが、そんなことより面倒な問題が発生しました。MicroPicoをインストールしたままPico/Pico Wをつなぎ(「Pico Connected」と表示される)、以前Thonnyで作った「main.py」ファイルを開いてVisual Studio Codeのウィンドウ下部に位置する「ステータスバー」にある「RUN」をクリックすると、プログラム通りの挙動するところまでは順調にできました。ところが、一度Visual Studio Codeを終了させて、再度起動するとステータスバーにあったはずのMicroPicoのメニューがなくなっているのです。どうやら、「MicroPico」拡張機能が正常に起動していない感じだったので、「拡張機能」メニューから「MicroPico」を選んで「無効にする」→「拡張機能の再起動」→「有効にする」という手順で拡張機能を起動し直しました。すると、ステータスバーのメニューが復活することががわかりました。面倒ではありますが、使えないというほどでもないという微妙な状況。試しに、実験的なことばかりに活用してるiMacでもやってみました(macOS版Visual Studio Code 1.91.…を使いました)が、こちらは全く問題なくMicroPicoのメニューが消えることはありませんでした。

ということで、心もとないところは多々ありますが、Linux版Visual Studio CodeでのPico/Pico Wの動作実験の環境ができました。

挙動としては、Visual Studio Codeを起動した状態で、MicroPythonに対応したファームウェアを入れてあるPico/Pico Wをつなぐと「Pico connected」と表示されます。Visual Studio Codeの「ファイル」メニューから「新しいファイル…」でファイル名を決めて新しいファイルを作ります。プログラムは、MicroPythonで書きますので、.pyファイルを作ってプログラムを書き込めばよいということになります。今回は、以前にThonnyで作った「main.py」があったので、これを開いて前面に表示させて、ステータスバーの「RUN」をクリックしました。すると、「RUN」が「STOP」に変わってmain.pyに書かれたとおりに動作しました。次に別のプログラムを動かしたい場合は一度「STOP」をクリックして動作を止めてから、プログラムを変更し終わったら再び「RUN」をクリックして動作確認します。
#この際のファイル名は、「main.py」でなくても問題ありませんが、最終的にPico/Pico Wに書き込んで自立的に使いたい場合には、「main.py」でないと思い通りに動いてくれません。

Pico/Pico Wにプログラムしたものを書き込みたい場合は、「表示」メニューから「コマンドパレット」を選択し、コマンドを入力する窓に「MicroPico: Upload current file to Pico」と打ち込んでEnterキーを押すと書き込み作業をしてくれます。この辺りは、Tonnyに比べるとやや敷居が高い気がします。「他の用途でVisual Studio Codeを使用していて、その操作性に慣れているから同じ環境でPico/Pico Wを使いたい」という場合には、Visual Studio Codeを使うというのはよい選択肢だと思いますが、Tonnyの方がシンプルで使いやすく初学者にも優しいように思いました。

〈参考資料〉

〈Lチカプログラム〉

from machine import Pin
import utime
led = Pin(25, Pin.OUT)
while True:
led.toggle()
utime.sleepms(400)