GBC-SHC基板 Rev1.0 SHC (wSHC) を作成する

<ナビゲーション>
GBC-SHC基板 Rev1.0 SHC  (wSHC) を作成する
GBC-SHC基板 Rev1.0 電動フォーカサーを作成する

GBC-SHC基板 Rev1.0 DCINを使用する
GBC-SHC基板 Rev1.0 電池駆動

SHCとしての実装パターン


基本パターンの実装です。パススルーST-4ポートを持ちます。
OnStepとの接続はST-4ポートを使用し、電源も同時にOnStep側から供給します。
OnStep側のST-4ポートの1番ピンに+5Vを出力する改造を行ってください。 

wSHC (Wifiによる接続) として実装する場合は、wSHCとして実装する を参照してください。

パーツ表

記号番号パーツ名備考
U2
ESP32-DevKitC1秋月 ESP32-DevKitC-32E
フラッシュメモリ領域は最低4M必要です。
RN1抵抗アレイ12.2KΩ 8素子。
共立エレショップ 抵抗アレイ8素子
RN2抵抗アレイ12.2KΩ 4素子。
共立エレショップ 抵抗アレイ4素子
パススルーST-4ポート用
パススルーST-4ポートを実装しない場合は不要です。
D1ショットキーバリアダイオード1基板5VとESP32ボードUSB電源の衝突防止用。
秋月 SB340LS
U3OLEDディスプレイ1126x64ドットのOLEDディスプレイ。制御はI2C 4結線。0.96インチ、1.3インチ、1.54インチ、などのバリエーションがある。
J76極6芯モジュラ1秋月 6極6芯モジュラ (※1)
パススルーST-4ポート用
パススルーST-4ポートを実装しない場合は不要です。
J8ヘッダピン 6P1OnStepとの接続用ポート
wSHCとして実装する場合は不要です。
-GBC シェル
1Gameboy Colorのシェルキット。
GBCのメンテナンス用キットで、ケース、ボタン、接点ラバー、ねじ類がセットになっているもの。
 
上記に加えて、OnStep接続用の6極6芯モジュラケーブルが必要です。(wSHCとして実装する場合は不要です)

部品調達先

秋月電子通商 いつもお世話になっています。
スイッチサイエンス モジュール系強し。変わったパーツ多数あります。
共立エレショップ 関西ならここ。学生時代に入り浸ってました。
マルツオンライン 部品点数の多さならここ。特殊部品も見つかったりします。
aitendo 液晶が豊富。モジュール系が充実。
朱雀技研工房ストア ロボット系部材、モータードライバなど扱いあり。
ストロベリー・リナックス 電源系のモジュール探すならここ。
ロボショップ ロボット系のパーツが豊富。Teensy, DRV8825の扱いあり。
Amazon 中華系ショップは海外発送だったりするので注意。コピー品が送られてくることがあるので品質は期待してはいけません(^^;

部品実装

部品点数も少なくESP32とOLED以外、目立った部品もありません。

OLEDディスプレイとESP32が表裏で取り付け位置が重なるため、先に裏面(ボタン側でない方)のESP32を取り付ける必要があります。


記号番号備考
U2ESP32-DevKitC
市販されているピンヘッダのまま直接取り付けます。
ケースの高さ上、ソケット化できません。
RN1, RN2
2.2KΩの抵抗アレイです。
コモンピンの位置に注意してください。画像の▲がコモンピンです。
J7
6極6芯モジュラ
パススルーST-4ポート用です。パススルーST-4ポートを実装しない場合は不要です。
J8
OnStep側のST-4ポートへ接続します。
対応する記号の通り接続します。
オリジナルOnStep基板を使用する場合は、ピンアサインが同じです。
他の基板等、OnStep ST-4ポートと接続する場合はアサインにご注意ください。
wSHCとして実装する場合は使用しません。

 

表面はOLEDディスプレイとダイオードだけです。 


記号番号備考
U3
OLEDディスプレイ、I2Cの4結線のもの。
0.96インチ、1.3インチ、1.54インチの各サイズが取り付けられます。お好みで。
JP1, JP2OLEDディスプレイの電源入力を選択するジャンパです。
OLEDディスプレイには、ピン配置のVCCとGNDが入れ替わっているものがあります。
取り付けるOLEDディスプレイに合わせて、3.3VかGNDへジャンパしてください。
 
OLEDディスプレイ側にESP32のピンが飛び出してくるので、短く切っておくことと、OLEDディスプレイボードにESP32のピンが干渉しないように、テーピングなどで絶縁処理をしてください。

ESP32-DevKitC(-32E)

秋月などで入手できます。

詳しい注意点などは、こちらの記事 オリジナル OnStep基板 Rev3.0(ESP32) をご覧ください。

コネクタ類


6極6芯モジュラ

ST-4互換インターフェイスです。
ピンアサインはポート正面から見て図のとおりです。オフィシャルのPCB設計とはピン配列が異なります。本基板は一般的なST-4ポートのピン配列に準拠しています。

Smart Hand Controller の書き込み

Smart Hand Controller ver3.03 をベースに解説します。
ソースコードは SmartHandController GitHub を参照してください。

Arduino IDE において、 ESP32-DevKitC で開発する環境を整えます。
ボードマネージャでの導入方法などは説明しませんので他のサイトにて調べてください。

前準備

ESP32版 SHCのファームウェアについての情報は、 The Smart Hand Controller (SHC)に記述があります。
ボードマネージャにおいて、ESP32 board ver 2.0.1 で安定していると書かれていますので、このバージョンを基準にするといいでしょう。

また、別途下記のライブラリが必要です。

  • U8g2 Library version 2.31.2
  • Ephemeris Library
 スケッチ->ライブラリのインクルード->ライブラリを管理から、上記ライブラリを検索して導入します。

Arduino IDE 書き込み設定

ボードタイプは ESP32 Dev Module を選択します。

ESP32へ書き込む設定において、フラッシュメモリ4Mの場合、領域のパーティション設定を Huge APP にしておく必要があります。
SHCはプログラムサイズが大きいので、プログラム領域に3M必要です。

Config.h

設定は、基本的に Config.h で個別の設定を行います。

DISPLAY_OLED (必須)

#define DISPLAY_OLED                        SH1106
OLEDディスプレイのコントローラ名を指定します。
コードのコメントに書いてあるように、通常、SH1106, SSD1306, SSD1309 が指定できます。

SERIAL_ONSTEP (必須)

#define SERIAL_ONSTEP                   SERIAL_ST4
OnStepと接続するシリアルポートを指定します。OnStep ST-4ポートを使う場合は、SERIAL_ST4です。

ST4_AUX_INTERFACE (オプション)

#define ST4_AUX_INTERFACE                 ON
パススルーST-4ポートを使用する場合は ON に設定してください。

※OnStepビルド時にエラーが出る
Arduino IDEのESP32ボードバージョンによって、ビルドエラーが出たり、正常に動作しなかったりします。動かない場合はArduino IDEのボードマネージャより、ESP32ボードバージョンを下げてみてください。

wSHCとしての実装

OnStep に付随して SmarWebServerを動かし Wifi APとして動かしている場合、SHCをWifi経由で接続することができます。

SmartWebServer (SWS) を稼働させる方法は、「オリジナル OnStep基板 Rev2.x +ESP-WROOM-02」を参照してください。OnStep付属のAddons Wifi では、wSHC接続できません。
ESP32版のOnStepXでは機能が統合されるので別途、準備する必要が無くなります。

Wifiを使用した接続、Wifi(Wireless) Smart Hand Controller として実装するには、基板上の J8 からOnStepと物理的に接続するモジュラケーブルを取り外し、Configを修正します。

ただしその場合 、OnStep側からの電源が得られません。
解決方法としては、

  • ESP32のUSBコネクタにモバイルバッテリーなどを接続し給電する。
  • 基板に用意しているDCINパターン回路を実装し外部ACアダプタから給電する。
  • 昇圧モジュールを利用し電池駆動により給電する。

いずれかの方法が考えられます。
DCINを使用する電池駆動、について、別記事にまとめておきます。 

ファームウェアの設定は次の通りに変更します。

Config.h

DISPLAY_OLED (必須)

#define DISPLAY_OLED                        SH1106
OLEDディスプレイのコントローラ名を指定します。
コードのコメントに書いてあるように、通常、SH1106, SSD1306, SSD1309 が指定できます。

SERIAL_ONSTEP (必須)

#define SERIAL_ONSTEP                   SERIAL_IP
OnStepと接続するシリアルポートをIP経由 SERIAL_IP に設定します。

ST4_AUX_INTERFACE (オプション)

#define ST4_AUX_INTERFACE                 ON
パススルーST-4ポートを使用する場合は ON に設定してください。Wifi経由のガイドになるので電波状況によっては遅延が発生します。

Extended.Config.h

SERIAL_IP_MODE (必須)

#define SERIAL_IP_MODE                   STATION
SERIAL_IP のモード設定です。STATION に設定します。

ONSTEP*_HOST_NAME, ONSTEP*_SSID, ONSTEP*_PASSWORD, ONSTEP*_IP_ADDR (必須オプション)

接続する OnStep アクセスポイントを3つ登録できます。
1つのwSHCで3つのOnStep Wifiを切り替えながら操作できます。

ONSTEP*_HOST_NAME    メニューに表示されるOnStep名です。ブランクにすると無効になります。
ONSTEP*_SSID    OnStep WifiのSSIDです。複数のOnStepを扱う場合は必ず OnStep毎にSSID名を個別に設定しましょう。
ONSTEP*_PASSWORD    SSIDのパスワードです。

ONSTEP*_IP_ADDR    OnStepのIPアドレスです。

その他

ケース

基板はGameboy Color のシェルキットに入るようにデザインされています。
シェルキットはおおむね、ケース、ボタン類、ラバースイッチ、ネジ、ドライバ、などが含まれます。Amazonなどで入手可能です。
中華製なので精度はあまりよくありませんが、見た目的には問題ありません。

ケース加工が若干必要になります。
基本的には基板を組み上げてから、ケースに当たる部分を削っていく形で現物合わせすればいいでしょう。


ネジが2種類付いています。
1つは短いプラスネジが3本。ボタン部分の基板固定用で下図の矢印の箇所に使用します。

もう1つはY字の特殊ネジが6本。こちらはケースをとめるネジです。

ケーブル類の引き出しは邪魔にならない場所から出せばいいと思います。
完成はこんな感じです。




オリジナル 基板頒布

オープンソースの架台制御ソフト、OnStepのハードウェア実装基板などの話題です。


頒布状況 2024/10/3
○ OnStep基板 Rev2.1
× OnStep基板 Rev3.0
○ GBC-SHC 基板 Rev1.0
頒布ご希望の方はこちら、基板頒布のお知らせ をご覧ください。

このブログを検索

Blog Archive

QooQ