[20日目] 基板を起こしてモータを動かそう

男の子ならいくつになっても動くオモチャって楽しいですよね。エンジンやモータが好物です。電気エンジニアのべーたです。

今回は簡単にモータを回して遊ぶ方法をご紹介します。
趣味で工作をされる方にはArduinoやmbedで動かしている人が多いので、それらとは違うアプローチで動かしてみます。
 

サーボモータを動かす

ラジコンサーボを動かしてみましょう。ラジコンや工作をする方にはおなじみのアクチュエータですね。こんなやつです。

DSC_0677

MG-90S (Tower Pro 社製)

制御回路やモータドライバ、ギアやポジションセンサがパッケージングされている便利なモータです。

電源と、たった1本の信号線を繋ぐだけで動作させられるので簡単に扱うことができます。サーボモータは目標角度の指令を入力すると出力軸が目標角度まで回転します。ミニ四駆に入っているようなブラシモータとは違って何回転も回すことはできませんが、ある角度の範囲内であれば大きな力で指令の向きまで出力軸の向きを変えてくれます。

どんな信号が必要か

一般的な小型のサーボでは電源電圧に4.8から6Vを与えます。位置指令はパルスの長さで与えます。このとき、パルスの長さが1.5ms(ミリ秒)で中央となり、そこから±0.5ms程度でそれぞれ両端まで動くサーボが多いようです。これについては様々な方が解説してくれているのでそちらへ譲ります(「サーボ 動かし方」などでググって下さい)。

ところで、サーボへ入力するパルスの電圧振幅はどれくらいが良いのでしょうか。一般的には、LレベルはGNDでHレベルはサーボに与えている電源電圧でしょう。

では、ちょっと真面目に考えてみます。サーボモータのトルクを目いっぱい使いたい時には6Vの電源を用意するでしょう。しかし6Vの信号を出力できるマイコンはそうそう無いはずです。逆にマイコンが5Vや3.3Vで動作している場合はサーボの電源も合わせて5Vや3.3Vを供給しなければならないでしょうか?

私が実際にサーボモータに6Vを供給し、マイコンから3.3Vのパルスをサーボに与えてみたところ、正常に動作することを確認しました。手元で1台動いたからと言っても100台で正しく動くでしょうか?1000台では……?設計者がもしもこのままサーボを量産で使ったとしたら歩留まりが気になって眠れなくなってしまいます。実際にはどれくらいの電圧の信号が許容されるのでしょうか?エビデンスを残しましょう。

その答えはサーボモータに内蔵されている制御回路を司るICのデータシートにありました。電気エンジニアにとっては非常にメジャーなICメーカに新日本無線という会社があります。このメーカがサーボに内蔵されている制御用ICを製造しているようです(互換品をルネサスや中国メーカも製造しています。電気的仕様もほぼ同じようです)。

では、NJM2611のデータシートを見てみましょう。注目すべきは「電気的特性」の表です。

電気的特性

NJM2611データシートより

「最小パルス電圧」という項目がありました。所謂「Hレベルの入力電圧VIH」と同様のパラメータでしょう。これによると「最小1.85V」とあります。言い換えると、Hレベルが1.85V以上のパルスを与えれば良いということになります。

これで3.3Vや5V振幅のパルスで問題ないというエビデンスが得られました。すっきりしましたね。(どうやら他メーカのサーボコントローラICも同様の入力特性であり、おおよそTTLレベルと考えて良さそうです)
 

マイコンを動かそう

さて、どのような信号を用意すれば良いのかがわかったので実際に信号を作っていきましょう。マイコンからはパルス幅が最小1ms, 最大2msのワンショットパルスを出力することにします。それをタイマ割り込みで20ms程度毎に出力すれば良いでしょう。こういう場合にトラディショナルなマイコンであれば、

タイマのレジスタを探す → ワンショット動作&ピン出力に設定 → コンペア値をセット

というような手順を踏むかと思います。最近の高級な開発環境であればタイマ周りの設定をするAPIが提供されていて、それを叩く方が多いでしょうか。そこで、今回はモータを回すのが目的なので、面倒な設定を考えずに済むPSoC5LPを使ってみます。PSoC5LPとは、ARM Cortex-M3コアとプログラマブルロジックを搭載したマイコンです。このプログラマブルロジックを使うにはGUIで線を繋いでいくだけできます。ペリフェラルを自由に構成することができるため、PWMをたくさん欲しい時に重宝します。他にどのような活用方法があるのかは拙著のプレゼン資料をご覧いただくか、ちょうど PSoC Advent Calendar 2016 が開催されています。こちらを眺めてみると良いでしょう。私が初めてPSoC5を使った時はマイコンのアーキテクチャを意識せずに扱えるのがとても新鮮だったことを覚えています。

今回はPSoC Creator にて提供されているPWMコンポーネントを使います。ツリーからPWMと出力ピン、クロックを持ってきてこのように繋ぎました。リセットを操作するためにControlRegを接続しました。

コンポーネントの配置と配線

コンポーネントの配置と配線

パルス幅の分解能を10us単位にすると扱いやすそうだったのでクロック入力は100kHzとしました。8bit幅なので0.01msから2.55msまでのパルスを生成できます。続いてPWMコンポーネントをダブルクリックして表示されるダイアログを設定します。

PWMコンポーネントの設定

PWM

PWMコンポーネントの設定

こんな感じにしてみました。

ポイントは Run Mode を “One Shot with Single Trigger” にするところでしょうか。デフォルトの “Continuous” のままでは間髪入れずにパルスが出続けてしまいます。ワンショット動作であれば、Trigger後に1つしかパルスが出ないので、トリガをソフトウェアから適切なタイミングで与えるようにします。
 

基板を作る

サーボを動かせそうな目処が立ったので、せっかくなので基板を起こしてみます。そのほうがたくさんのサーボを接続するのが楽です。

最近は無料でもそれなりの機能をもっていて、回路図から基板ガーバ作成までできるソフトウェアが増えてきました。CircuitMaker(オススメ)KiCAD(日本語文献が豊富)DesignsparkPCBなどが流行っているようです。更に、格安で基板を作れるサービスも増えてきました。スイッチサイエンスPCB(日本語で利用可)やSeeedStudioのFusionPCB(オプション豊富で安い)、ElecrowのPCB Prototyping service(基板だけでなくステンシルも安い)などが非常に安価に利用可能です。5cm角の両面基板なら10枚で10ドル程度から製造してくれます。ユニバーサル基板と変わらない値段ですね。

では、まずは好きなCADを使って回路図を引きます。PSoCはIOピンを非常に自由に割当可能なのでざっくり適当に引きます。

回路図

これを

ここから基板を引きます。モータ用電源はマイコンとは分離してアートワークするのがポイントです。

基板

こうして

こうしてできたデータを今回はElecrowで製造してみました。基板が9.5ドルと送料がOCSで13.23ドルでした。

こうじゃ

こうじゃ

部品をはんだ付けして完成です。

要求電流の見当がつかない上に、電流をたくさん流せるような電源コネクタを用意するのが面倒だったので、横着して圧着端子直付けにしてしまいました。良い子のエンジニアは真似しないでくださいね。これは後々サーボの評価とキャリブレーションに使う予定です。
 

ソースコード

PWMやControlRegはAPIを使って操作します。APIのリファレンスはデータシートを読んでいただくとして、叩く必要のあるAPIは以下で済みそうです。

void PWM_Start(void)

void PWM_WriteCompare(uint8/16 compare)

void ControlReg_Write (uint8 control)

これらを、タイミングよく操作するために一定間隔で割り込みを発生させます。プログラマブルロジックをなるべく消費したくないので、ARM系CPUが必ず持っているSystickと呼ばれるカウンタを使ってみます。設定は以下です。

CyIntSetSysVector(15,<割り込みルーチンへのポインタ>);

SysTick_Config( (<バスクロックの周波数>) / <割り込み周波数>);

これらを使ってサイン波のテーブルを順次読み出すようにしてみました(ソースはこちら)。

動作確認ができました。この基板はサーボをたくさん接続できるようにしたので、せっかくなので繋いでみます。Creator上でコンポーネントを並べます。コピペを多用します。

PWMコンポーネント1つあたり2本のPWMを出せます

PWMコンポーネント1つあたり2本のPWMを出せます

コードも同様にコピペで増やします(ソースはこちら)。

それぞれのサーボが独立して動いているのがおわかりいただけるでしょうか。ハードウェアタイマを使って16本のPWMを出力しています。他のマイコンではなかなかできない芸当ですよね。

この状態でもまだまだ半分以上のリソースが余っているので50本以上のPWMを出力することができそうです。サーボに限らず一般的なDCモータやブラシレスモータも楽に駆動できそうです。
 

たくさんのモータを回しています

という事で、絶賛開発中のタチコマには20を超えるモータが搭載されています。現在は様々なアクションを楽しんでいただけるよう調整を行っています。もちろん、機能はモータだけではないですよ。これからの発表を是非楽しみにしていてください。

ぼくタチコマ

ぼくタチコマ

※写真は開発中のものです。
 

Reference:

Cerevo Blog: 「攻殻機動隊」に登場するタチコマを現実世界に再現するプロジェクトを開始
Engadget Japanese: Cerevo、1/8スケールの『タチコマ』をニコニコ超会議で披露。クラウド経由で学習内容の並列化機能も搭載予定?

[8日目] LiveShell Xの密かなコダワリ

こんにちは。小林哲之です。組み込みソフトウェアエンジニアとして、LiveShell Xに携わりました。

先日、秋葉原ライブカメラをリニューアルして配信機材としてLiveShell Xを投入しました。最初だけちょっとつまずきましたが、現在は安定して動作しています。今まではUstreamだけでしたが、新たにYouTube LiveFRESH! by AbemaTVが加わりました。この3つの配信を一台のLiveShell Xでまかなっています。YouTube Liveには1920×1080 (いわゆるフルHD)で配信しています。(2016年12月8日現在)
秋葉原ライブカメラを見るにはタブレットのアプリがおすすめです。ちょっと古いパソコンよりもずっと滑らかに再生できます。個人的にはFRESH! でながめるのが気に入っています。

歩行者天国のときの秋葉原ライブカメラ

歩行者天国のときの秋葉原ライブカメラ

さて、今日はカタログにはあらわれない、開発者のコダワリのポイントをいくつか紹介します。

小さくすることへのコダワリ

liveshellx_on_hand
これは製品コンセプトを決めた弊社代表岩佐のコダワリです。
最初にできあがってきたモックは今より少し背が高い形状でした。しかし岩佐がそれをよしとせず、メカデザのエンジニアとハードウェアのエンジニアが部品の配置をあれこれパズルのように組み合わせ、この大きさになりました。しかもバッテリー駆動時間を犠牲にしていません。
(その過程で、私が希望していた標準サイズのSDカードスロットは没になり、マイクロSDカードスロットに変更されました。)
「LiveShell Xにはなぜ ○○コネクタをつけなかったの?」と聞かれることがありますが、それは大雑把に言えば、小さくすることを優先したからです。(もちろんコストも。)

複数配信のコダワリ

LiveShell X はひとつのビデオ入力から複数のライブ配信サービスに異なる画像サイズ、異なるビットレートで同時に配信することができます。実はこの機能は、一番最初の製品企画会議では必須要件に入っていませんでした。既存機種からの変更規模があまりに大きいので、「そこまではやらなくていい」という位置づけでした。しかし、「ライブ配信としては1280x720p 30fps で充分なのではないか?この製品で1920x1080p 60fpsできるようになるが、それは過剰で実際には使われずに、LiveShell 2を2台買ったほうがいいと言われてしまうのではないか?LiveShell 2の2台分以上の価値を提供したい。」という思いがあり、私のコダワリで複数配信の機能を入れることにしました。
でもやはり、実装には苦労しました。単純に複数別々に配信する実験まではうまくいったのですが、その後の製品レベルまで詰めて行くのがつらかったです。いくつかの制限事項と折り合いをつける必要もありました。「複数配信の機能を入れていなければ、とっくに完成したなあ」と後悔したことも。
いろいろな人の手も借りつつ、最終的になんとか完成させることができました。おかげさまで、この複数配信できる機能は好評のようです。こだわった甲斐がありました。

モノラル音声の密かなコダワリ

音声のチャネル数の選択の部分なのですが、従来のLiveShellシリーズではステレオとモノラルの2つが選択可能です。
これと同じように作ることもできたのですが、ちょっと思うところあってLiveShell X では以下のように選択肢を増やしておきました。

  • モノラル (左右ミックス)
  • モノラル (左のみ)
  • モノラル (右のみ)
  • ステレオ

つまり、左右のチャネルのどちらか片方だけを使うというモードを追加しました。
この実装はそれほど難しいものではありません。従来のLiveShellシリーズになかったのは単にその必要性がなかったからです。

これはどんなときに使うことを想定したかというと、「簡易2カ国語対応」です。昔のテレビの2カ国語放送のように、音声2チャンネルのうちの左に主音声、右に副音声を入れてもらえば、複数同時配信するときに、映像は同じものを流しつつ、ひとつは主音声、もうひとつには副音声をつけることができます。
図で示すとこんな感じです。
simple_multilingual_streaming
実際にこんな使い方をする人がいるかどうかはわからなかったのですが、LiveShell Xの発売直前の体験イベントに来ていただいた方がまさにこの機能を要望していたのでびっくりしました。「こんなこともあろうかと」とか心の中で言いながらドヤ顔で説明させていただきました。(^^)v

実は録画も複数できるようにしておいたというコダワリ

LiveShell Xはひとつのビデオ入力から複数のライブ配信サービスに同時に映像を送ることができます。実は録画もライブ配信も最後の出力先をどこにするか?の違いでしかありません。なので、録画も複数できます。(録画のファイル名は開始時刻を元に自動生成していますが、同時刻に複数録画を開始してもファイル名が重複しないように、チャネル番号もファイル名に含むようにしてあります。)
複数録画したい場面はほとんどないとは思いますが、同一の映像をH.264とH.265でそれぞれ同時に録画してみて、画質をじっくり見比べるということをしたい人はいるだろうなあと。

ただし、複数の録画を同時にするときにはマイクロSDカードにランダムアクセス性能の高いものを使用してください。世の中にはシーケンシャルアクセスは充分速いのにランダムアクセスがとても遅いマイクロSDカードが存在して、それを使って高ビットレートで複数の同時録画をするとフレーム落ちが発生する可能性があります。
安全をとって録画を同時にはひとつだけしかできないように制限をかけるという案もあったのですが、あえて制限はしませんでした。なお、UHS 1やclass 10などの規格はシーケンシャルアクセス性能しか考慮していないので、選定基準にできないことに留意してください。

最後に

とりとめがなくなるので今回はこのあたりで切り上げます。コダワリポイントはまだまだあるので、またそのうちに。

ライブ配信機器として、入門機ならばLiveShell 2をおすすめしますが、ワンランクアップしたい方はぜひLiveShell Xをご検討ください。
値段が高い分の価値はありますよ!!

BlueNinja BSPの新バージョン”RELEASE_160615”を公開

BlueNinjaのソフトの中の人、組み込みソフトウェアエンジニアの奥原です。

今回はBlueNinjaの開発環境、BlueNinja BSPのバージョンアップのお知らせです。

前バージョン(RELEASE_151021)との違いは

対応するTZ10xx BSP(TOSHIBA.TZ10XX_DFP)のバージョンにVer. 1.39.0が追加になりました。
Ver.1.39.0では、BluetoothLEのプロトコルスタックBLELibでセントラルデバイスとして動作させることができるようになりました。
HyouRowGanのようなBLEペリフェラルからの接続待受が可能になります。

更新手順は

BlueNinjaのサイトの「開発環境アップデート手順」を参照ください。
今回のバージョンでは、更新処理を簡単に行えるようにバッチファイルを用意しました。

セントラルデバイスとしての動かし方は

BlueNinjaサイトの事例紹介「BlueNinjaをBLEセントラルにする」を参考にしてください。
GitHubのリポジトリでソースコードも公開していますのでプログラム作成の参考になさってください。

ESP8266 SDK環境での開発に挑戦(技適済みWi-Fiモジュール「ESP8266」で始めるIoT入門)

 「ESP8266」で始めるIoT入門シリーズはこちらからお読みいただけます
 IMGP9683
「俺はガ○マのために働いている。完璧な世界を作るために!」と息子に宣言してから一ヶ月以上経ちました。
某ヒーロー番組で弊社入居ビルが敵勢力に支配された為なのですが、一向に主人公が助けに来てくれません……。
さて、ESP8266の記事の続きです。
これまではArduino IDE、Luaと、導入しやすい開発環境の紹介をしてきましたが、CPUの性能をより発揮するためには、純正SDKでの開発環境が必要になります。
今回は、espressifが用意しているSDKの環境構築に挑戦します。firmwareの書き込みも専用ツールを使い、Lチカをビルドして書き込むところまで記載し、次回はI2Sでの音声再生など、より高度なことに挑戦したいと思います。
できる方はこの記事を読まなくても既にやられていると思うので、比較的導入しやすいWindows環境でのインストールについて説明します。Macでも、bootcampでWindowsを使っている場合は同じです。
以下の5つのファイルをダウンロードします。
開発環境込みのLinuxのdiskイメージが開発元で用意されているので、
VirtualBoxの仮想環境でSDKを動作させます。
A)必要なファイル
     1)VirtualBox
     2)VirtualBoxのdiskイメージ
     ESP8266_lubuntu_20141021.ova
     3)IOT_SDK
   現状最新と思われるV1.5.2
  4)LED BLINK Sample
   user_main.c
   5)ESP_DOWNLOAD_TOOL_V2.4
1)は、OSに合ったものをダウンロードして下さい。
2)は、開発元公式ツールなのですが、baidu cloudにupされています。手順がやや煩雑ですが、baiduかQQアカウントを作ってダウンロードしてください。
3)4)はGitHubからダウンロードしてください。
B)SDK環境のインストール
1)Dドライブを用意します。
パーティションを区切るか、USBメモリなどをDドライブに割り当てても可能です。
 Dドライブの中にVMフォルダを作って下さい。
 D:¥VM\Share
2)VirtualBOXをインストールして下さい。
 詳細は割愛します。
3)環境設定のデフォルトの仮想マシンフォルダーを設定
 1)のD:¥DMを選んでください
SnapCrab_NoName_2016-2-25_20-50-47_No-00
SnapCrab_NoName_2016-2-25_21-9-7_No-00
4)イメージのインポート
 フォイル>仮想アプライアンスのインポートで
   ESP8266_lubuntu_20141021.ova
 を選択してインポートして下さい。
pict03
pict03
pict05
pict06
VMフォルダに、vboxとvmdkファイルがコピーされる
pict07
ESP_Lubuntuの設定で
pict07
共有フォルダーにD:\VM\Shareを設定します
pict09

Windows上で

D:\VM\ShareフォルダにSDKをコピーします。
pict10
SDKのappフォルダに、
D:\VM\Share\esp_iot_sdk_v1.5.2\examples\IoT_Demo
の中身を
D:\VM\Share\esp_iot_sdk_v1.5.2\app
にコピーします。
pict11
pict200
さらに、
D:\VM\Share\esp_iot_sdk_v1.5.2\app\user
の”user_main.c”を
4)のファイルと差し替えます。
 pict13
5)ESP8266_lubuntuを起動する
pict20
user name : “ESP8266”, password : “espressif”.です
起動後画面。
pict21
LXTerminalを起動して、
“./mount.sh”と入力し、Enter
pict22
passwordを聞かれるので、”espressif”と入力し、Enter
pict23
フォルダがWindowsと共有される。
pict24
”cd /home/esp8266/Share/esp_iot_sdk_v1.5.2/app”と入力し、Enter。
appのフォルダに移動する。
pict24
キーボードの割り当てが異なるので
” _ “は、shift + ” – “、” = “は、” ^ ”キーを押すと入力できる。
./gen_misc.sh”と入力し、Enter.
STEP1: choose boot version (0=boot_V1.1, 1=boot_v1.2+, 2=none)     =>2
STEP2: choose bin generate (0=eagle,flash.bin+eagle.irom0text.bin, 1=user1.bin,2=user2.bin) =>0
STEP3: choose spi speed(0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz)  =>2
STEP4: choose spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT)  =>0
STEP5:
 0= 512KB( 256KB+ 256KB)
 2=1024KB( 512KB+ 512KB)
 3=2048KB( 512KB+ 512KB)
 4=4096KB( 512KB+ 512KB)
 5=2048KB(1024KB+1024KB)
 6=4096KB(1024KB+1024KB)
    =>6
pict14
Compileされ、書き込み用のbinaryファイルが出力される。

pict15

binaryは、D:\VM\Share\esp_iot_sdk_v1.5.2\bin

に生成される。

pict16

Programing Gideは現状知る限り、Ver1.3が新しいようです。

SDKを解凍したdocumentの中にpdfファイルがあります。

http://bbs.espressif.com/viewtopic.php?f=46&t=919

6)Firmwareの書き込み

USBシリアル変換アダプタとCerevo ブレイクアウトボードの接続をしている前提で

技適済みWi-Fiモジュール「ESP8266」で始めるIoT入門(ブレイクアウトボード実装編)

WIndows上で

ESP_DOWNLOAD_TOOL_V2.3(ファイル名はV2.4だが、Windows表示はV2.3)を使って下図のような設定でESP8266に書き込みます。[START]をクリックして書き込み、FINISHが表示されれば書き込み完了。

pict30

ESP_DOWNLOAD_TOOLはWindows専用ツールなので Macではesptoolを使う必要があります。 Port12にLEDを繋ぐとLチカしました。

pict40

次回はSDK環境での作例を公開予定です。

それでは、完璧な世界(=会社の利益が出て、社員に還元される世界)のために仕事に戻ります!

[16日目] Mac上に、PSoCの開発環境を構築する

16日目はアプリケーションエンジニアの水引が担当します。

もうすぐクリスマスですね。Cerevoがある秋葉原の街もクリスマス一色….ということもなく、大型家電量販店以外は平常通りの店構えです。ジャンク通りのお店は、店内BGMも平常通り。クリスマスで浮つかない、そんな秋葉原が私は大好きです。

さて、本題に入ります。Cypressがリリースしているプログラマブル SoC “PSoC”をよく使います。いわゆるマイコンの類ですが、PSoC(Programmable System on Chip)の名が示す通り、ペリフェラルを柔軟にカスタマイズできることが大きな特徴です。ペリフェラルとして配置した各種コンポーネントを、内蔵のプロセッサから操作するために自動生成されるAPI(Cライブラリ)の使いやすさと、PSoCのラインナップを跨いでもなお引き継がれるAPIの互換性は、素晴らしい出来栄えです。

しかし、唯一気に入らないのは、PSoCの開発環境であるPSoC CreatorがMac OS X向けにリリースされていないことです。そこで、この記事では、PSoC CreatorおよびPSoCのプログラマ/デバッガであるMiniProg3をMacで使う方法について紹介します。

VirtualBoxにPSoC Creatorをインストールする

早速の出落ちですが、VirtualBoxのゲストOSとしてWindows環境を構築し、PSoC Creatorをインストールします。ひとまずここまでで、コーディングとビルドまでの作業はこなせます。

ゲストOSからPSoCデバッガMiniProg3を使えるようにする

ビルドの後は、PSoCを搭載したターゲット基板にプログラムを書き込み、動作確認をします。PSoCへのプログラムの書き込みやデバッグには、MiniProg3を使います。しかし、仮想環境としてVirtualBoxを使う場合、MiniProg3を使用するために特別な設定が必要です。次節で解説します。

なお、Cypress社のテクニカルノートによれば、Parallels DesktopまたはVMwareについては、開発環境およびデバッガについて、動作確認をしているようです。筆者も、Parallels Desktopを利用してPSoC CreatorおよびMiniProg3を使用可能なことを確認しました。Parallels Desktopを利用する場合は、次節から説明する特別な設定は不要です。

Extension Packをインストールし、USB 2.0を有効にする

VirtualBoxのWebサイトから、Oracle VM VirtualBox Extension Packをインストールして、ゲストOSのWindowsからUSB2.0を使えるようにします。Extension Packをインストールした後、ゲスト OSの「設定」→「ポート」→「USB」タブの中の、”USB2.0(EHCI)コントローラー”を有効にします。

tb20151216_fig1

ちなみに、Extension Packは、VirtualBox Personal Use and Evaluation Licenseのもとで無料で利用可能です。無料で利用可能な範囲は「個人使用」もしくは「評価目的」とされていますが、Licensing FAQによれば、「商用目的で個人が業務利用する」ケースについても、個人使用の範疇に含まれます。

6. What exactly do you mean by personal use and academic use in the Personal Use and Evaluation License?
Personal use is when you install the product on one or more PCs yourself and you make use of it (or even your friend, sister and grandmother). It doesn’t matter whether you just use it for fun or run your multi-million euro business with it. Also, if you install it on your work PC at some large company, this is still personal use. However, if you are an administrator and want to deploy it to the 500 desktops in your company, this would no longer qualify as personal use. Well, you could ask each of your 500 employees to install VirtualBox but don’t you think we deserve some money in this case? We’d even assist you with any issue you might have.

デバイスフィルタを追加する

ゲストOSが、MiniProg3をホストOSよりも優先的につかめるように、デバイスフィルタを設定します。MiniProg3をMacのUSBポートに接続し、VirtualBoxのゲストOSの「設定」→「ポート」→「USB」画面にある、フィルタ新規作成のアイコンをクリックします。

tb20151216_fig2

ここで追加したフィルタの設定を一部変更します。リストに追加された”新規フィルター1″を選択し、フィルタ編集ボタンを押します。

tb20151216_fig3

フィルタの設定ダイアログが出てくるので、

  • 名前: “Cypress MiniProg3”
  • ベンダーID: “04b4”

と入力します。

tb20151216_fig4

ここで、ベンダーID以外の欄は空欄にしておきます。MiniProg3は、OS(Windows)が認識後、PSoC Programmer/PSoC Creatorを起動すると、プロダクトIDが変わるためです。プロダクトIDが変化しても、そのままゲストOSがMiniProg3を掴めるようにベンダIDだけのフィルタにしておきます。

動作確認

これでゲストOS(Windows)にインストールしたPSoC Creatorから、MiniProg3を使う準備が整いました。デバッガがターゲットを認識できることを確認しましょう。

tb20151216_fig5

まとめ

この記事では、VirtualBoxを使って、Mac上にPSoC Creatorの開発環境を構築する方法について説明しました。なお、筆者は Mac OS X El Capitan(10.11.2)にインストールしたVirtual Box 5.0.10で動作を検証しました。また、PSoC Creator 3.3 CP1で動作確認しています。

Windowsの仮想環境さえ用意してしまえば、それほど苦労せずに、Mac上にPSoCの開発環境を準備することができますが、Cypress様、ぜひ、Macネイティブの開発環境のリリースもご検討いただけないでしょうか。