COMPUTER SHIEN LAB
2つのアナログ入力と、 モータ制御などに使える2つの 絶縁型PWM出力を持ち、
入力したデータを判断して、出力を制御するような使い方を想定しています。
PCなどとUSBで接続して、短いプログラミングが可能になっています。
制御用チップは microchip社のマイクロコントローラ (PIC32MX270F256B-50I/SP)です。
「趣味でもの作りをする人」に使って欲しいという目標で、アイデアに応じて使いたい部品を、
ご自身で選んで追加できるようにしました。
例えば、各種コネクタ、コンデンサマイク、可変抵抗、LED、タクトスイッチ、圧電スピーカ、赤外線リモコン送受信部品などは未実装で、
必要に応じて利用者ご自身で部品を選択し、半田付けで追加する形式になっております。
趣味以外にも、学習・教材用、ロボット用、アイデア商品検討用・・とさまざまな作品に、 組み込む部品として使っていただきたく、願っています。
(USBを介してプログラム転送で動作させる使い方はArduinoに似ています。
ですが使っているコントローラはAVRでなく、 Microchip社のPIC32MXを使っており、
Arduinoとは違うコンセプトで作ったものです。)
基板「UMEHOSHI ITA」は、「micro B」のUSBのメスコネクタを持っており、これで電源供給を行い、通信が可能です。
そして現在、WindowsPCや HOST機能のUSB端子を持つAndoroid機器で、接続用プログラムを用意しています。
また、Rasberry PiのPythonと通信する例を紹介しています。
(appleのPCやスマフォ、またはLinuxなども、プログラムさえ自作などして用意できれば繋げられるでしょう)
下記のイメージ例でUSBコネクタケーブルを使って接続します。
WindowsPCなど (USB type-Aを持つ) | |
Andoroidなど (USBのHOST機能を持つ) |
上記例の接続イメージの相手は、「USB-TypeA」 や 「micro B」をコネクタを持つPCやAndoroid機器ですが、
接続先の相手機器のコネクタが「USB-TypeC」でも対応ケーブルを用意できれば可能です。
近年は、「micro B⇔TypeA」のUSB充電とデータ通信が可能なケーブルが比較的容易に入手できます。
ケーブルの長さは用途に応じて選んでください。(100円ショップのものでも構いませんが、充電専用ケーブルはダメ。)
プログラミング用にWindowsPCと接続するケーブルは、比較的長い方が使いやすいでしょう。
また接続先ホストに応じて、「type-A」から「micro B」や「TypeC」への変換コネクタを介すことも可能です。
ケーブル例と「micro B」コネクタ、「type-A」コネクタ、変換コネクタを下記に示します。
micro-B と Type-A のケーブル例 | type-AコネクタをPCやスマフォに合わせて変換コネクタが使えます。 | |||
micro Bコネクタ | ケーブル | type-Aコネクタ | micro Bへの変換コネクタ | type-Cへの変換コネクタ |
「TypeAメス-->micro B変換コネクタ」を使う場合は、PCやスマフォ側で使ってください。
変換アダプタを[UMEHOSHI ITA]側で使うと動作しない場合が多いようです。
(対応しない通信用のUSBホストケーブルや変換コネクタもあるようです。ホスト側から電源供給されないと動作しません)
あらかじめ、前述で示した対応の接続ケーブルを用意します。
Windows10のタスクバー端のSTARTアイコンの右クリックメニューから「デバイス マネージャー」選択して表示しておきます。
USB装備PCと[UMEHOSHI ITA]の基板を、用意したUSBケーブルで接続します。
ここで、「デバイス マネージャー」表示内の「ポート(COMとLPT)」に新たな「通信ポート(COMn)」が出現すればOKです。
以下は、「USB Serial Port(COM4)」が接続で出現した場合の例 です。
あらかじめ、前述で示した対応の接続ケーブルを用意します。
将来的にGoogle Playよりインストールできるようにする予定ですが、
現在は、
umehoshiアプリを
このページから「umehoshiアプリ」をダウインロードしてインストールします。
USB装備AndroidとUMEHOSHI基板を用意したケーブルで接続します。
この時点で、[UMEHOSHI ITA]のD1のLEDが点灯します。(点灯しない場合、このケーブル接続で失敗しています)
その後、インストールした「umehoshiアプリ」を起動し、右上端のメニューより「Setting USB」を選択して、「CONNECT」をタッチします。
この操作で、アプリ上部に「SysEvent:OPENED」の表示が出現すれば、OKです。
内部のテスト用プログラムを利用して一部のプログラミングだけを実験的にUSBで転送して動作させる手法と、 内部コントローラのプログラミングを1から全て行って、ROMに書き込んで動作させる手法があります。
基板内部に埋め込まれているテスト用プログラムを利用し、WindowsPCとUSB接続して、プログラムの転送や
実行が可能です。
(後述する「MPLAB X IDE」の開発環境や
PICKit3などの書き込みツールを使いません。)
実は 上記の「Windows PCと接続」を行って、「通信ポート(COMn)」が出現すれば
このポートで、「115200bps、1StopBit、Parity無し」のシリアル通信が可能になっています。
この状態で、「UME専用Hexコマンド」文字列を送信することでプログラム送信や実行ができます。
(例えば、「Tera Term」などのターミナルソフトを使って、通信ができる状態になっています。)
そして、当方で開発した「umehoshiEdit」という開発ツールを使います。
この「umehoshiEdit」の開発環境は、
こちらを参考に用意してください。
この場合はC言語やアセンブラで開発しますが、プログラミング転送の領域が
0xA0005000〜0xA0007FFFのRAMの範囲です。
この範囲はRAM領域なので、電源を切る(USBを抜く)と、プログラムは消滅します。
なお、「一つの作品は1つのソースでのみしか作れない」ことや
「変数の初期化を怠るとビルドが正しくできない」など
様々な制限があります。
(制約無しのプログラミングする場合は、後述の「1から全てプログラミングする手法」で作成してください。)
このUSBでRAMに転送して実行する手法は、比較的容易に次のイメージでプログラミングが可能です。
「umehoshiEdit」の開発環境は、
この基板で使っているICチップ(PIC32MX270F256B)専用の開発環境です。
内部のテスト用プログラムとUSBで通信し、このICチップのRAM領域にプログラムを転送し、
希望の絶対アドレスから実行を開始できるようになっています。
「umehoshiEdit」の開発環境で作ったプログラムは、
別途の「
umehoshi
アプリ」との間で、Wifi通信(TCP)によるコマンドファイルなどの転送ができます。
これにより、Androidを介して「UMEHOSHI ITA 基板」の遠隔操作などを可能にします。
この転送は、Android同士でも可能です。よってあらかじめ転送しておいたAndroidで、他のAndroidを介して遠隔操作できます。
次のようなイメージです。
このボードを使って商品を作る場合などは、この手法で作成してください。
以下のようなイメージです。この
環境準備と手順はこのページを参照してください。
これはマイクロチップ社の「MPLAB X IDE」と呼ばれる開発環境で、
このボードで使っている「microchip社マイクロコントローラチップ」のプログラムを開発し、
出来上がったプログラムコードを、PICKit3などの書き込みツールでチップにを埋め込む方法です。
PICKit3などの書き込みツールは、
別途に購入するなどして用意しなければなりません。
これはプロの技術者も使う一般的手法で、上で示した「一部のプログラミングだけ行う手法」のような制限がなく、自由にプログラミングできます。
(電源なしの永続的なプログラムの埋め込みが可能です)
本来、内部の全てを自分でプログラミングすることは大変難しいのですが、
「UMEHOSHI ITA」用のテスト用プログラムのソースを公開しているので、それを改変して作品を作れば、
比較的容易に作ることができるでしょう。
基本機能の実験・学習(10通りの基本的な使い方を紹介しています。)
androidのスマフォを介した遠隔操作(モータ遠隔操作) .umh群
録音実験 .
(その1)WindowsPCとUSB接続してpython制御(例:録音)
(その2) USBでなく、Bluetoothモージュールを介して録音する検討
Raspberry PIとの接続例
(その1)Raspberry PI 3B とUSB接続し、PC側はRaspberryとWifiで接続してSSHで遠隔操作で制御する例
(その2)Raspberry PI Zero WとUSB接続し、PCやAndroidのumehoshiアプリでWifiを介した遠隔操作する例
(その3)Raspberry PI Zero WとUSB接続し、Wifi接続してWebブラウザで制御する例
esp32を付けた基板をUDPで遠隔操作(モータ遠隔操作)
esp32を付けた基板をTCPで遠隔操作(プログラムファイル転送や実行)
(検討中)RN4020を付けた基板を遠隔操作(遠隔操作)
アセンブラで、D1のLEDを「 Lチカ 」する。(基板入手直後で実験できます)→ 動画リンク