COMPUTER SHIEN LAB

UMEHOSHI ITA    TOP PAGE


画像クリックで画像の大きさが変わります。 画像クリックで画像の大きさが変わります。 画像クリックで画像の大きさが変わります。
92mm×56mmのほば名刺サイズです。

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ホストケーブルや変換コネクタもあるようです。ホスト側から電源供給されないと動作しません)



Windows PCと接続

  1. あらかじめ、前述で示した対応の接続ケーブルを用意します。

  2. Windows10のタスクバー端のSTARTアイコンの右クリックメニューから「デバイス マネージャー」選択して表示しておきます。

  3. USB装備PCと[UMEHOSHI ITA]の基板を、用意したUSBケーブルで接続します。
    ここで、「デバイス マネージャー」表示内の「ポート(COMとLPT)」に新たな「通信ポート(COMn)」が出現すればOKです。
    以下は、「USB Serial Port(COM4)」が接続で出現した場合の例 です。

画像クリックで画像の大きさが変わります。

Androidと接続

  1. あらかじめ、前述で示した対応の接続ケーブルを用意します。

  2. 将来的にGoogle Playよりインストールできるようにする予定ですが、
    現在は、 umehoshiアプリを このページから「umehoshiアプリ」をダウインロードしてインストールします。

  3. 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を介して遠隔操作できます。
次のようなイメージです。
画像クリックで画像の大きさが変わります。 画像クリックで画像の大きさが変わります。

1から全てプログラミングする手法

このボードを使って商品を作る場合などは、この手法で作成してください。
以下のようなイメージです。この 環境準備と手順はこのページを参照してください。
画像クリックで画像の大きさが変わります。
これはマイクロチップ社の「MPLAB X IDE」と呼ばれる開発環境で、 このボードで使っている「microchip社マイクロコントローラチップ」のプログラムを開発し、
出来上がったプログラムコードを、PICKit3などの書き込みツールでチップにを埋め込む方法です。
PICKit3などの書き込みツールは、 別途に購入するなどして用意しなければなりません。
これはプロの技術者も使う一般的手法で、上で示した「一部のプログラミングだけ行う手法」のような制限がなく、自由にプログラミングできます。
(電源なしの永続的なプログラムの埋め込みが可能です)

本来、内部の全てを自分でプログラミングすることは大変難しいのですが、 「UMEHOSHI ITA」用のテスト用プログラムのソースを公開しているので、それを改変して作品を作れば、 比較的容易に作ることができるでしょう。

使用例や実験・学習の紹介

  1. 基本機能の実験・学習(10通りの基本的な使い方を紹介しています。)

  2. androidのスマフォを介した遠隔操作(モータ遠隔操作) .umh群

  3. 録音実験 .
    (その1)WindowsPCとUSB接続してpython制御(例:録音)
    (その2) USBでなく、Bluetoothモージュールを介して録音する検討

  4. 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ブラウザで制御する例

  5. esp32を付けた基板をUDPで遠隔操作(モータ遠隔操作)
    esp32を付けた基板をTCPで遠隔操作(プログラムファイル転送や実行)

  6. インターネットを介した遠隔操作が出来るターンテーブルの作成中

  7. (検討中)RN4020を付けた基板を遠隔操作(遠隔操作)


下記は、UMEHOSHI ITA基板用のWebページ上アセンブラ(MIPS32系)を利用した作成中ページへの参考リンクです。
  1. helloの文字列をUSBに出力する方法を紹介しています。関数呼び出しの解説です。(基板入手直後で実験できます)→移動リンク
  2. helloの文字列を、レジスタを制御変数に使って繰り返す方法を紹介しています。(基板入手直後で実験できます)→移動リンク
  3. autoローカル変数とグローバル変数の違いを、それぞれの制御変数使った繰り返しで紹介しています。(基板入手直後で実験できます)→移動リンク
  4. アセンブラで、D1のLEDを「 Lチカ 」する。(基板入手直後で実験できます)
    1. RAM上に関数を作って、コマンドでそれを呼び出す。→移動リンク
    2. RAM上に関数を作って、それをリセットスイッチ操作で動かす。→移動リンク
    3. EEPROM上に関数を作って、それをリセットスイッチ操作で動かす。→移動リンク
    4. EEPROM上に関数を作って、それをリセットスイッチ操作で動した後でもUSB通信を可能にする→移動リンク
  5. [Raspberry Pi 3 Model A+]に接続した[UMEHOSHI ITA]基板をアセンブラ言語で「 Lチカ 」する(RAM上で動作)→移動リンク
  6. D1によるLチカをSW2で止める プログラム→移動リンク
  7. D2によるLチカの プログラム→移動リンク
  8. 4bitコードのブザー音をスイッチ操作で登録して鳴らす→移動リンク
  9. Hブリッジ回路によるブラシ付DCモーターの駆動→移動リンク

アセンブラで、D1のLEDを「 Lチカ 」する。(基板入手直後で実験できます)→ 動画リンク