macsbug

M5 Wheel ( moio ) part 2

leave a comment »

作りやすい Easy PROTO Module で M5 Wheel ( moio ) を製作。2019.12.03

構成は Battery , Motor Drive , Motor の3つです。
費用は 1800円 又は 2100円。 ( Battery : 中古 1300mA 又は 新品 1800mA )

M5 Wheel ( moio ) Module M5 Wheel ( moio ) Module
1800 or 2100 円 without M5 1800 or 2100 円

 


Module: Motor Module , Motor Drive Module , Battery Module
.
1. Motor Module

Motor Module M5 Wheel ( moio ) Module
1099 円 1800 or 2100 円

.
2. Motor Drive Module

Motor Drive Module Motor and Drive Module
324 円 1423 円

.
3. Motor and Drive Module

Motor and Drive Module
1423 円

.
4. Battery Module

1800mA Battery Module 1300mA Battery Module
681 円 333 円

 


.
費用 ( moio ):

moio:M5 Wheel Module
No Nomen Purchase Price
1  M5Stack
2  Motor Module  以下の部品表に記載    1099円
3  Motor Drive Module  以下の部品表に記載      324円
4  1300mA Battery Module  Low price Battery Module      333円
4  1800mA Battery Module  以下の部品表に記載      681円
= ==================== ================ ======
 費用総計: M5 Wheel ( moio ) 1300mA Battery Module    1756
 費用総計: M5 Wheel ( moio ) 1800mA Battery Module    2104円

 


.
部品表:

1. Motor Module: 部品名称、仕様、個数、販売店、輸送期間、価格

Motor Module
1099 円
No Nomen Purchase Price
1  3V DC Gear Motors
, GA1024-N20 , Voltage:3V
, Speed:200RPM, 2pcs
 Aliexpress:ModuleLive Store
, 輸送期間:–
, 469円 x 2個(pcs)
    722円
2  Oring : Outside Dia: 16mm
, Thickness: 1.9mm, 2pcs
 ebay:mnsmoresell
, 輸送期間:25日
      12円
3  M2 5mm Tapping Screw, 8pcs

 西川電子部品株式会社       12円
4  JST 1.25 2Pin Mail Female, 2pcs
 onered33
, 20pcs : $2.24, JPY 244
      13円
5  CASE , 1pcs
 DIY : 材料費 FDM     340円
= ==================== ================== ======
 費用総計:   1099円

.
2. Motor Drive Module

Motor and Drive Module
324 円
No Nomen Purchase Price
1  M5Stack PROTO Board , 1pcs
 DIY    100円
2  2*15 Male D-Pin Header , h=9mm
, 1pcs
 ce10Wy
, 輸送期間:13日
, 10pcs 2*40, JPY358
     18円
3  DRV8833 2ch Driver, 1pcs
 Hong Kong feng tai
, 10pcs : $4.55, JPY 533
     54円
4  JST 1.25 2 Pin Mail Female , 2pcs
 onered33
, 20pcs : $2.24, JPY 244
     13円
5  Case , 1pcs
 DIY : 材料費 FDM

, 凸 凹 部の無い
, 作りやすい ケース。

   115円
6  M2 5mm Tapping Screw, 4pcs

 西川電子部品株式会社        6円
7  JST 1.25 2P Mail Female , 1pcs

 salena wang’s high quality
, 輸送期間:9日
, 20pcs : $2.98, JPY 326
       9円
8  Wire
= ===================== ================ ======
 費用総計:    324円

.
3. Battery Module

Battery Module
681 円
No Nomen Purchase Price
1  ロープロファイルピンソケット
, 低メス 2×15 (30P) 5.7mm , 1pcs
 秋月電子通商:
, 2×15 (30P) 5.7mm
     40円
2  JST 1.25 2P Mail Female , 1pcs
 salena wang’s high quality
, 輸送期間:14日
, 20pcs : $2.98, JPY 326
       9円
3  SLIDE SWITCH , 1pcs
 C&G Semiconductor
, 輸送期間:11日
, $7.60 100pcs, JPY 830
       9円
4  BATTERY MODULE CASE , 1pcs
 DIY : 材料費 FDM    120円
5  3.7V 2000mAh 103450
, SIZE:50 × 34 × 10mm , 1pcs
DEAH Online Store
, 輸送期間:25日
, US $ 4.69:503円
   503円
6  Wire
= ==================== ================ ======
 費用総計:    681円

メモ:
Battery:販売店で種類が変わる場合があり、ケースに入るサイズを調べます。
_    例:以前の記事にある 703048 , 1800mA は 入手不可になり
_      103450 , 2000mA ,50 × 34 × 10mm が使用できます。
_      サイズは ギリギリで 角に丸みがある為に収まります。


.
配線:
_ M5 Wheel Module ( moio )   を参照ください。
_ Make M5Stack Servo Module を参照ください。

M5Stack 3V3 GND GPIO 5 GPIO 17 GPIO 13 GPIO 0
DRV8833 VCC GND IN1 IN2 IN3 IN4
DRV8833 ULT GND OUT1 OUT2 OUT3 OUT4
DC Motor L Motor – L Motor + R Motor + R Motor –

 


.
メモ:
_ 費用:
_  M5Stack PROTO Board:
_  PROTO Board は 友人から無料で頂きましたが、此処では 100円とします。
_  基板厚を 1mm でなく 1.6mm で製作した為です。
_  どのような基板でも使用できるように 前回の記事 Easy PROTO Module
_   を作成しました。
_ Battery:
_  何をするにも M5Stack は Battery と 電源スイッチは 必要です。
_  オリジナルよりも容量が大きく M5Stack側に接続出来る事。
_  中国からの Battery は 入手しずらい場合が 多くなってきました。
_  特に ebay では 販売が少なくなりました。
_  サイズを踏まえて 秋葉原や国内の低価格品を使用する方法があります。

_ 接続方法:
_  上下のスタック接続は 基板にコネクターを設ける方法があります。
_  この場合 基板の準備や配線、設置に手間や費用がかかります。
_  3つで1つの専用のモジュールで良いため Drive と Motor の接続は
_  Wire Connector を使用しました。
_  M5とmoioの接続:M5のBattery connector に接続するか
_   M-BUS 経由 どちらでも出来る様にしました。

_ CAD:
_  WordPressのブログでは 図面(.zip)を添付出来ない為に 公開できません。
_  都内の何処かでお会いした時に 製作物をお渡し出来るかと思います。
_  :
_  thingiverse:
_   thingiverse には 無料の公開CADデーターがあります。
_   Makerbotの主催で Makerbot Replicator用のデーターが主です。
_   baskasteel氏が M5 Wheel Module ( moio )の記事を参考に
_   以下に CADデーターを公開されています。baskasteel 氏に感謝致します。
_   M5Stack module MOIO by macsbug
_   注意:
_   thingiverseには どのPrinterを使用し出力結果は どうであったかの
_   画像の表示がありません。機種によって出力結果が異なる為 使用でき
_   ない場合があります。それにより無駄な時間と費用を使用します。
_   上記のデーターを DMM等の外部に高価な有償依頼しても同様です。
_   私は 上記のデーターが通常のPrinterで出力できるか確認していません。
_   注意:
_   これまでの製作は 高精度の「Uprint」を使用し 0.5mm幅の凸部や
_   凹部の幅と位置は「出力結果のズレを補正したデーター」で出来ています。
_   よって他のPrinterで出力した時は 正しく出力できません。
_   前回 作成した Easy PROTO Module の目的は 通常のプリンターで
_   出力可能な事をめざした物です。確認は他の場所にある使用機材の都合や
_   自身の時間が取れず 公開までには至っていません。

_ 参考:
_  Easy PROTO Module:2019.12.03:作りやすい PROTO Module の製作。
_  Operate M5 Whell (moio) with RCWControll:2019.08.26:RCWControllerで操作。
_  M5 Wheel Module ( moio ):2019.08.21:M5 Wheel Module の製作。

 


.
感想:
_ 費用:
_  Motor の費用が 全体の4割程の割合を占めています。
_  M5の製品や委託販売品は 1つのモジュールが 2〜3千円します。
_  低価格にする為に 工夫し 3つのモジュールで 約2千円です。
_  表示は材料費ですので 販売品は 他の費用が加算する価格になります。
_  個人の電子工作ならば 材料費と機械使用料になります。
_  低価格の効果は 1台でなく複数台持つ事が可能になり SONY toio
_  の様に 複数でできる遊びが可能になります。

_ プリンター:通常プリンターの出力確認は使用機材の都合で 今回の
_  投稿までには出来ませんでした。出力途中で材料が出なくなるとか
_  トラブルが多く時間を取られます。高精度、高価格の Uprint は
_  トラブル無く 結果的に早く出力出来ます。

_ 前回、前々回記事:投稿日時変更。
_  編集中に前回の「Easy PROTO Module」2019.11.22 と
_  前々回の「Repair M5Stack Display」2019.1120 は 手違いにより
_  消えてしまい 再度、新規に投稿しました。これにより
_  投稿日時が 2019.12.03 になっています。


M5stack , Wheel , moio , DRV8833 ,

Written by macsbug

12月 3, 2019 at 3:26 pm

カテゴリー: M5STACK

Easy PROTO Module

leave a comment »

作りやすい PROTO Module の製作方法  2019.11.22 2019.12.03

M5Stack の PROTO Module は 射出成型により 綺麗で高精度です。
低価格の3Dプリンターは XY軸の精度が低く 出来ない所があります。
凸部と凹部の「填め込み」部分は 0.5mm で 幅が狭く出来ません。

さらに PROTO基板は 凸部と凹部に填める為に 縦,横,高さ が制限され
自由な基板を使用する事ができません。

「基板に合わせてケースを作る」と 自由な作品ができる事になります。

費用は コネクターを除き 221円 です。


対策:
1. 「填め込み」の為の 凸部と凹部を 使用しない。
_ スクリューガイドとネジ止めの部分を 填め込みに使用します。
2. スクリューガイドとネジ止め部を ケース外壁の上に配置します。
_ ネジ止めの位置は 使用する基板に合わせます。


効果:
1. 低価格の3Dプリンターで出力が可能です。
2. 自由な基板を使用する事ができます。
3. 低価格で製作する事ができます。
メモ:以下、上側(凸)の画像を示します。下側(凹)の加工はありません。

Original Easy PROTO Module

 


部品表:

Easy PROTO Module
No Nomen Purchase Price
1  M5Stack PROTO Board
 DIY    100円
2 Case
 DIY : 材料費 FDM    115円
3  M2 5mm Tapping Screw, 4pcs  西川電子部品株式会社        6円
= ===================== ================ ======
 費用総計:    221

.

with Connector
 2*15 Male D-Pin Header
, h=9.1mm
 ce10Wy
, 10pcs 2*40, JPY358
      18円
 費用総計:     239円
with Connector
 ピンヘッダー
, male, H=5.3mm
, M5Stack 同等品
 廣杉計器:
, PSM-4200233-15
      76円
 費用総計:     297円

 


製作方法:

Top ( Hole:3.5mm, 2mm) Side

 

Size ( Side View ) Size
1. 従来のPROTOも接続できる様に
,  高さ(深さ)は 2.0mm。左上。
,
2. 「填め込み」の隙間は 0.3mm
,  又は 精度の低い物は 0.5mm
,  の隙間を設けます。上。
,
3 コネクタの長さにあった 厚みを
.  製作できます。 例:6mm

メモ:
_ 今回は ピンヘッダ 高さ 9.3mm と 基板の厚さ 1.6mm を使用しました。
_ 左上の 2.0 mm の高さは 「コネクター」と「基板の厚さ」により異なります。
_ 「コネクター」と「基板の厚さ」と M-BUS との接続距離を計算し製作します。
_ コネクター:ピンヘッダ 2.54mm 2×15 を使用します。

_ 例:表面実装用ピンヘッダ 40P(2×20):高さ 9.6mm。秋月電子通商
_   
_ 例:Pin Header 2x15P:高さ 9.1mm:Shenzhen LMX Connector
_    Aliexpress では Row Connector と言う表現は 高さ 9.1mm を言います。
_   

_ 基板:厚さ。
_    1.6mm 厚の場合は 2.0mm です。1.0mm 厚の場合は 1.4mm です。

Easy PROTO Module Size

 


製作事例:
_ PROTO基板 厚さ 1.6 mm の例:(オリジナルは 1mm 厚です)。
_ M-BUS コネクターの高さが合えば 秋月等の基板が使用可能です。
_ 基板を固定するネジの位置は 自由に配置する事が可能です。

Easy PROTO Module Easy PROTO Module

 


Makerbot Replicator 2X の出力:( Nozzle 0.4mm )
_ 角の部分の荒さは出ますが 個人で使用する程度は可能です。
_ 商品には使用出来ない精度です。
_ メモ:精度により 隙間は 0.3mm や 0.5mm 等に現物合わせをします。

Makerbot Replicato 2X
Makerbot Replicato 2X

 


3Dプリンターの剥がれ防止方法:
_ これまでの気苦労が見事に無くなり 確実に製作物を固定出来ます。
1. プレートに 3Mマスキングテープを貼る。
2. その上に「NITTO No.5000NS」両面テープを張ります。
メモ:この両面テープは レーザーカッター や CNC 工作時に
_  同様に使用する事が出来ます。


参考:
1. Make M5STACK PROTO CASE:2018.07.26:PROTO CASE を作るポイント。
2. Low cost PROTO Module of M5STACK:2018.07.26:
_ 400円で出来るM5STACK PROTO Module
3. Low cost PROTO module of M5STACK Part 2:2018.08.19:
_ 400円で出来るPROTO Module。


感想:
1. 形状がシンプルになり 製作しやすいです。
2. 低価格で製作する事ができます。それにより多彩な工作が可能になります。
3. 凸凹が不要になると かなり自由なモジュールが製作出来ます。
4. 凸凹は 一種のハードウエアー プロテクションに感じます。
5. 製作の切っ掛けは 友人から上記の基板を30枚程 無料で頂いた事です。
_ 基板発注時の厚みの指定ミスでしたが 「基板に合わせてケースを作る」から
_ アイデアが生まれました。友人に感謝致します。
_ 結果、ケースが自由に製作できる事は 何でも製作が可能になる体験をしました。
6. 製作費用:基板は無料ですので あるプリンターで1個130円程度です。
_ さらにあるワークショップでは材料代が無料ですので ネジ代の5円程度となります。


.
M5Stack , PROTO , PROTO Module , Makerbot Replicator 2X ,

Written by macsbug

12月 3, 2019 at 3:15 pm

カテゴリー: M5STACK

Repair M5Stack Display

leave a comment »

M5Stack TFT Flexible Wire の 修理方法   2019.11.20  2019.12.03

M5Stack Display の Flexible Wire は 短く切れやすいです。

修理により 高価な M5Stack を再度 使用する事が出来ます。

オリジナル 切断した Flexible Wire

修理完了:
_ この修理は超難解ですが 以下の様にできます。


手順:

1. 分解:
_ 分解前に 全体の組み立て方を 把握します。
_ 基板側の 2mm の Screw を2本外します。
_ スピーカーを引き出し ワイヤーが切れない位置に移動します。
_ 基板は 左上に切りかきがあります。基板全体を左にずらして外します。
_ この時 Display のワイヤーは 短く切れ安い事に注意!。
_ M5Stack表面のGlass Panelは両面テープで接着されています。
_ Glass Panelの隙間をゆっくり広げ アクリルを外します。
_ 注意:表面のGlass Panelは薄い為 割れない様に均等に剥がします。
_    Glass Panelの部品は M5Stack Official Store で販売されています。
_ Display をケースから外します。

2. Flexible Wire の準備:
_ FLEX Wire のハンダ付けする部分を細いカッターで表面の被覆を剥がす。
_ 注意:カッターの先は 鋭く無いと削れません。パターンを切らない事。
_ Flex Wire は 21本です。使用するのは 16本です。
_ 剥がした部分を瞬間にハンダメッキします。
_ アルコールやアセトン等でクリーニングします。
_ 

3. ワイヤーの準備:
_ 寄り線ワイヤーをほぐし、0.1mm の 超細線を用意します。
_ 極細線をハンダメッキします。
_ ワイヤーを真っすぐにします。
_ アルコールやアセトン等でクリーニングします。
_ 

4. ハンダ付けの準備:
_ 基板上のハンダ付け部分は ハンダやゴミを掃除し綺麗にしておく事。
_ FLEX Wire を 基板パターンと少し離し 両面テープで基板に固定します。
_  修理後に「力」で切れない様に しっかり固定します。
_ Wire は短い為 2mm 程度離し延長させ 折り曲げる時の負担を軽減させます。
_ ハンダの小手先は Flexible Wireより細い先端を使用します。
_ ハンダゴテの先端をクリーニングします。
_ 

5. ハンダ付け:
_ ハンダは極細(0.32mm)か ハンダメッキした状態で使用します。
_ 断線部分にハンダメッキした極細線を瞬時にハンダ付けします。
_ 注意:ハンダ付けは瞬時に1度だけにします。
_ 使用している本数は 16本です。
_ ハンダ付けした部分をアルコールやアセトン等でクリーニングします。

_ 

6. 点検:
_ 目視点検、テスターによる導通と 隣の配線の接触が無いかをチェック。
_ 電源を入れてテストをします。

7. 最終処置:
_ ハンダ付けの表面をUVレジンで固めます。UVレジンはネイルで使用され、
_ 百均で販売されています。

 

メモ:
_ 綺麗に仕上げる方法:
_  出来れば顕微鏡を使用してください。
_  道具や材料、基板 を その都度 クリーニングし綺麗にする事です。

_ 追加修理として 全てのスイッチの裏に 付箋紙(0.1mm厚) を接着し
_  クリック感の向上と斜めにならない様にしました。これは効果があります。
_  


感想:
_ Flexible Wire の幅は非常に狭く ハンダ付けは 超難解です。
_ 事前の準備が 重要なポイントです。
_ 丁寧に実施すれば できます。
_ 顕微鏡が必要ですが 百均の老眼鏡で行ないました。
_ M5Stack のスイッチキャップの設計は 裏を平らに、そして 厚みを 0.1mm
_   増やして欲しかったです。


M5Stack , display , 断線 ,

Written by macsbug

12月 3, 2019 at 3:11 pm

カテゴリー: M5STACK

M5Stack speaker noise reduction

leave a comment »

M5Stack の スピーカーノイズを 低減する方法。       2019.09.27

M5Stack の スピーカー は ノイズがでます。

Noiseless PROTO Module を 製作しました。


課題:
_ M5Stack の 課題に スピーカーの「ノイズ」と「歪み」があります。
_ 今回は ノイズの原因と対策が主題ですが、歪みの件も含めて記載しています。


方法:
_ 1. PROTO基板の製作時に GPIO25 Pin ( DAC ) を外します。
_ 2. もしくは PROTO基板の GPIO25ピンをカットします。この場合
_   ピンのカット面と M-BUS 側ピンの距離が近くならない事。


ノイズレス PROTO基板 の 接続方法と効果:
_ GPIO25ピン無しのPROTO基板 だけか 他のPROTO基板へ接続すると
_ スピーカーノイズは 無くなります。最も効果のある方法です。
_ ただし、M5Stackの基板で発生するノイズはそのままです。
_ M5Stackの基板上で発生するノイズは 機種やバージョンで異なります。
_ ディスプレーに表示する画像によっても異なります。


原因:以下、1と2に分類して述べます。
_ 1. PROTO Module と BOTTOM Module。
_ 2. M5Stack の設計 と レイアウト。


1. PROTO Module と BOTTOM Module。
_ 原因:MOSI (GPIO23) の 輻射ノイズ
_ 理由:接続したPROTO基板の GPIO23,25がアンテナになり GPIO25に乗る。

_ MOSI信号はディスプレー信号に使用しています。
_ 画像によっては MOSI の周波数成分が多くなりノイズが増えます。
_  M5Stack Electronic Animated Eyes でノイズ増加が解ります。
_ スケッチによっては 周波数が 80MHz に高くなる場合があります。
_ PROTO基板上に GPIO25のパターンがあるとノイズを拾います。
_  基板の長さ 50mm等の長い場合は かなり大きなノイズになります。
_  60mmのパターンの基板を作成しノイズが増加するのを確認しました。
_ M-BUS の GPIO25 ( DAC ) は ピン有るだけでも 隣のGPIO23( MOSI )
_  から輻射ノイズを拾います 。
_ M-BUSの設計:GPIO25は D級アンプの入力に使用している為、
_  GPIO23の隣 もしくは M-BUSにピンを立てるべきではない。

_ ノイズがでる要素:( してはいけない設計 )。
_  GPIO23 と GPIO25 の配置を 2.54mm 以内。
_  GPIO25 の長い配線。
_  M-BUSに GPIO25ピンを立てる。
_  BOTTOM Module を接続する。
_  GPIO25 のパターンが長い PROTO基板を接続する。
_  M5Stack Electronic Animated Eyes の様な複雑な画像を表示する。

_ 確認:テスターで誘導電圧を確認できます。
_  23と25間にワイヤーを近接すると誘導される事が解ります。
_  周波数成分の大きいMOSI信号時も同様です。

_ 原則:M-BUS MOSI と M-BUS DAC は 隣に配置してはいけない。
_  レイアウトミスと判断しています。


2. M5Stack の設計 と レイアウト。図は M5Stack BASIC の回路図。

_ 

_ 基本:M5Stack BASIC
_  基板のバージョンによってノイズの大きさが異なる。
_   BASIC:2017.6。BASIC:2018.3 NOIS 大。GRAY:2017.6。
_  液晶バックライトのPWM制御10KHz の影響(可視聴)がノイズになる。
_   10KHzの周波数を可視聴外に変更する案:
_   参考に記載した lovyan03氏の #142#147。lovyan03氏に感謝致します。

_  PGND:回路図は ANALOG GND だが 現物の配線はなし。
_   調査:PCB は基板 BAT Connector 横の日付(DATE CODE)です。
_   BASIC(PCB=2017.6 ) ;NS4150B_4 – C44 – open。
_   BASIC(PCB=2018.3 ) ;NS4150B_4 – C44 – open:*openをGNDでノイズ大。
_   GRAY (PCB=2017.6 ) ;NS4150B_4 – C44 – open。
_   GRAY (PCB=2017.11 );NS4150B_4 – C44 – GND。
_   FIRE (PCB=2018.2A) ;NS4150B_4 – none – GND。BASICより音質は良い。

_   図面通りの GND(DC) にすると 基板のバージョンによっては多少改善
_   されるが ノイズは解決しない。
_   理由1:
_    IC:回路図は NS4148 だが 現物は NS4150 ( NS4150B )。
_    NS4150 Data Sheet V1.0 の Typical Application Circuit には
_    入力( INP, INN ) に 30KΩが接続されているが M5Stack は無し。
_    内部抵抗 30KΩ内蔵のNS4148 を取り付けてみましたが 動作不可。
_    mはげ氏は NS4150Bの入力に 30KΩを接続したが 結果得られず。

_    歪み:アンプの入力範囲が狭い設計になっている。
_    mはげ氏の情報:この件でハードとソフトで多大な調査と努力を
_     されています。mはげ氏に感謝致します。
_    @Tw_Mhage:M5Stackのスピーカーの音質が悪い原因と対策
_    以下は 上記の記事、mはげ氏の記事と画像を記載させて頂きます。
_    「M5StackのD級アンプNS4150の出力測定結果。テスト信号は
_     800Hz 正弦波。NS4150推奨回路の入力抵抗はなくても入出力
_     はほぼ比例し ゲインは約2.94。出力は±1.6Vでクリップされる。
_     音が割れないようにするためにはDAC出力の振幅を0.54V以内
_     に抑えればいい。」
_    結論:プログラミング:
_     NS4150B をプログラムで使用する場合、入力は 最大 0.54Vac
_     に押さえる必要があります。これを超える入力をすると出力が
_     歪みます。つまり M5StackのDAC出力の振幅は0.54V以内
_     ある事。
_     
_     

_   理由2:GND電位がゼロにならず 不安定になり ノイズが発生する。
_    レイアウト設計の不足。
_    NS4150 の入出力から M-BUS への配線は ノイズ対策が不足。
_    ただし、回路としてはこの程度かと判断しています。

_    他社の製品:
_    理由は 他の ODROID-GO ( ESP32 + PAM8304Aアンプ) の回路では
_     入力抵抗を付け 特別なノイズ対策無くとも ノイズ無く動作している。

_      以下の図は ODROID-GO の回路図。
_    

_   TTGO製品(ESP32)の場合:TTGO製品は多数のバージョンがある。
_    TTGO T4_v1.3 は NS4150 4pin PGND は OPEN。パラメーターは異なる。
_    
_    TTGO T10_v1.8 は PCM5102Aを採用している。
_    
_    結果、TTGO の AMPは変更され NS4150 は問題である事を示しています。

_   M5Stack Fire は C44 を除去しノイズが低下している。
_    対策:M5Stack Team はノイズ問題を認識し C44 Remove を考案した
_       事を示しています。
_    理由:部品からノイズを拾う事を防止している。

_   M5StickC Speaker AMP:
_    D CLASS AMP は PAM8303 を使用しています。
_    これは NS4150 でなく PAM8303 が正解である事を示しています。

_  電源:USB電源使用せず EA3036(LDO)の入力に バッテリー入力
_     (DC電池)のみでもスピーカーノイズは出る。

_  NS4150B の電源停止方法:
_   EA3036 LDO にある T1 端子をショートします。
_   ショートにより EA3036-19 ( sw3 ) がオフになり AMP PWR が無くなります。

_ ソフトによるノイズの低減:
_  以下を記載し DAC をオフにし スピーカーを無音にします。

dac_output_disable(DAC_CHANNEL_1);  // Sound OFF

_   dacWrite(25, 0); で AMP を OFF にし 効果がでる場合もあります。

_  結論:本体基板のハードの改善は無理がある。
_     パターン幅が小さく 素人では パターンが剥がれる。
_     ハードの改修も可能ですが 改造は多くの人には無理です。

 


❌ ノイズ対策の無い製品:
スイッチサイエンス販売 委託品:幾つかの製品を見かけます。
_ 1. 使用しないにもかかわらず、GPIO25 のパターンを配線している。
_ 2. M-BUS GPIO23, 25 で 1.27mm ハーフピッッチでスルーホール
_  を作り配線している。距離が短くなり さらにノイズがでます。
_  
_ 3. M-BUS の延長と称してフラットケーブルで延長するボード。
_  これは確実にノイズが出ます。
_ どうも 設計ミスの製品が多い事と 不完全な商品を販売しています。

⭕ ノイズ対策をしている基板:
_ この情報を得てか M5Stack で開発している ある基板は
_ GPIO25 ピンは配線していません。

◯ ノイズ対策の回答:対症療法
_ M5Stack Community での ノイズの質問は 「BOTTOM を外して見てください」
_ と言う対症療法の回答があります。 これは BOTTOMの配線で GPIO25が
_ 延長され ノイズが発生する事を示しています。


参考:
NS4148:NS4148 Data Sheet V1.1
NS4150:NS4150 Data Sheet V1.0
Odroid-GO:
_ 回路図:Hardware tunning for silent the sound volume of ODROID-GO
_ Odroid PAM8304A:Odroid-GO support #10
_ PAM8304 pdf
mはげ氏の M5Stack D級AMPの調査
@Tw_Mhage:M5Stackのスピーカーの音質が悪い原因と対策
M5Stack Community:So much noise!:dacWrite(25, 0); でも消えない。
M5Stack Community:Noise on speaker
_ オーディオラインが適切に設計およびシールドされていない。
_ ledcDetachPin(SPEAKER_PIN); pinMode(SPEAKER_PIN,INPUT);
ESPRESSIF:M5Stack to be Relaunched with ESP32
lovyan03:PWM control of the backlight emits unpleasant 10 kHz noise #142
_   バックライトのPWM制御は10KHzで聞こえる周波数。これを44.1KHzに
_   すると不快な10KHzノイズをオフにできる。
lovyan03:Modify: Suppress the mosquito noise that LCD backlight PWM emits. #147
BLOG:M5stack tetris with sound:無音にするメモ。
BLOG:Low cost PROTO Module of M5STACK:国内製品のコネクターを使用できます。
BLOG:Low cost PROTO module of M5STACK Part 2:国内製品のコネクターを使用。
_ 国内製品のコネクターを使用すると M-BUS との接触が良くなります。
_ 理由は オリジナルは M-BUS コネクター下 0.1mm, コネクター間の隙間 0.1mm
_  があり 接触が低下。国内製品のコネクターを使用すると 合計 0.2 mm
_  分の接触を得る事が出来 良くなります。


感想:
1. NS4150:NS4148 や NS4150 は既存のスマホに使用され 動作的に完成
_ されていますが M5Stack は ノイズがでます。
_ アンプの設計とレイアウトの 作り込みが少ないと判断します。

2. 実験による数値:
_ 実験も踏まえ電圧値も取得しましたが 対策がある為 数値は記載しません。

3. 設計:
_ レイアウトの重要性:Display 信号のMOSI (23) と SCK (18) が 逆の配置
_           ならば ノイズは発生しません。
_ M5Stack のバージョン:
_  ATMEGA328P, ESP8266, ESP32 の多数のバージョンがあります。
_  バージョンによって M-BUS の配置が異なっています。
_  例として ESP32版でも幾つかあります。
_  ESP32 M5Stack は 2017年3月28日に ESPRESSIF と契約。
_  この時の M5の内部レイアウトと M-BUS(M5-BUS) は現在とは異なる配置。
_  ESPRESSIF:M5Stack to be Relaunched with ESP32
_ 
_  この時の MOSI(9)とDAC 1(16) の配置は離れています。
_  つまり あるバージョンでは M-BUSの配置が異なる為に ノイズの発生は
_  無いが 何かの理由で 現在の配置になり 輻射波の問題が発生した。
_  と言う経過です。
_  M5Stack Store からの販売は 2017.10.23 (BASIC $35.00) からです。
_ 原因を踏まえ  M5Stack で基板を開発している人に 参考になればと
_ 思います。是非、素晴らしい基板を設計、製作する事を期待しています。

4. 投稿:かなり以前に下書きをしていましたが 投稿が遅れました。

5. 使用している基板は tomorrow56氏に 製作して頂きました。
_ 低価格で沢山あると 今回の様な 実験や使用が簡単にできます。
_ M5Stack の PROTO基板とは異なる「ある工夫」がしてあります。
_ 精度によりますが 個人の3D Printer でケースを製作する事が可能です。
_ この PROTO Module は 私と都内で合える場合はお渡し出来ると思います。
_ tomorrow56氏に販売をリクエストすると 答えてくれるかと思います。
_ tomorrow56氏は thousandiy で 幾つかの開発製品を販売しています。
_ 基板を見ると解るかと思いますが 氏の技術レベルは高く信頼性があります。

 

.


M5Stack ,  スピーカー , ノイズ , NS4148 , NS4150 , NS4150B , FIRE , DAC ,
MOSI , EA306 , T1 ,

Written by macsbug

9月 27, 2019 at 3:00 pm

カテゴリー: M5STACK

Operate M5 Whell (moio) with RCWControll

leave a comment »

M5 Whell ( moio ) を RCWController アプリ で操作しました。 2019.08.26

RCWController アプリは ゲームパッドのインターフェイス を持ち、
iPhone や iPad で 操作する事ができます。

 M5 Wheel ( moio ) RCWController

RCWController の機能:UDP通信でWi-Fi機器と接続でき、ジョイスティク や ボタン
_ などを タップすることで、操作に対応するデータが送信されます。

RCWController ダウンロード:App Store RCWController。micutil氏に感謝致します。

robo8080氏のブログに RCWController アプリを使用した記事、
ESP32-DevKitCに、RCWControllerを接続してみた。」があります。
その github に ESP32とRCWControllerを接続するテストプログラム
ESP32_RCWController_Test」があり 設定、操作、データの仕様が書かれています。
上記からダウンロードして RCWController.h を入手します。robo8080氏に感謝致します。

以上から RCWController.h を使用し、M5 Whell ( moio ) のスケッチを作成しました。

仕様:今回のスケッチは Right Joystick 操作のみです。
_  必要に応じて 他の操作を追加します。
_  追加機能は Loop内の x , y に 操作の値を入れます。


.
データフォーマット表: Operation と buffer[ 0 to 9 ]
_ 縦軸は Operation、横軸は 0 – 9 で buffer[ 0 to 9 ] の配列です。
_ 例:Right Joystick の UP / DN は 配列5の値が UP は 255 , DN は 1 です。
_ 例:Right Joystick の Right/Left は 配列4の値が Right は 255 , Left で 1 です。

 

Operation \ buffer 0 1 2 3 4 5 6 7 8 9
 ……………………………. ……… ……… ……… ……… ……… ……… ……… ……… ……… ………
 R JOY CENTER 128 128 9
 R JOY UP 255 9
 R JOY DN 1 9
 R JOY R 255 9
 R JOY L  1 9
 R PUSH SW Y 16 1
 R PUSH SW A 32 1
 R PUSH SW B 64 1
 R PUSH SW X 1 1
 R1 8 1
 R2 16 1
 L1 2 1
 L2 4 1
 SELECT 12 1
 START 3 1
 L JOY CENTER  128 128 18
 L JOY UP 255 18
 L JOY DN  1 18
 L JOY R 255 18
 L JOY L 1 18
 L TOGGLE UP 1 1
 L TOGGLE DN  2 1
 L TOGGLE R  4 1
 L TOGGLE L  8 1
 R ACCEL CENTER 128 128 1 97
R ACCEL UP 1 1 97
R ACCEL DN 255 255 97
R ACCEL R 255 255 97
 R ACCEL L 1 1 97
 L ACCEL CENTER 128 128 1 65
 L ACCEL UP 1 1 65
 L ACCEL DN 255 255 65
 L ACCEL R 255 255 65
 L ACCEL L 1 1 65
 ……………………………. ……… ……… ……… ……… ……… ……… ……… ……… ……… ………
Operation \ buffer 0 1 2 3 4 5 6 7 8 9

.
作成:
_ RCWController と Blynk 、Servo のスケッチを合体しました。
_ iOS RCWController アプリからの値は データフォーマット表に示す 1 〜 255 です。
_ M5の Blynk servo ルーチンでは この値を 255 〜 -255 で使用します。
_ これにより void loop内で map命令にて 以下の様に変換しています。
_ 例:x = map(buffer[4], 1, 255, 255, -255); // R JOYSTICK X
_ 後に Blynk servo ルーチンは 見やすくする為に while文から if文に変更しました。

接続方法:
_ 1. iPad の WiFi設定 は ESP32-RCWC を選択します。 Password は esp32pass です。
_ 2. RCWController アプリを動かし 中央の ON ボタンで WiFi接続します。
_  もしくは接続時に IP が表示されます。
_ 3. 右下側の ANALOG ( pink ) を選択し Joystick にします。
_ 4. Joystick で操作が出来ます。( ACCEL にも反応します)


.
参考:
M5 Wheel Module ( moio )
Make M5Stack Servo Module
robo8080のブログ:ESP32-DevKitCに、RCWControllerを接続してみた。
ESP32_RCWController_Test


.
感想:
身近な iPhone や iPad で操作出来ると簡単です。
Blynk:前回記事の Blynk は ネット接続が必要で 不便です。
RCWController の 接続は iPad と M5 moio 間で接続する時に便利です。
PS4 等の専用コントローラーで操作出来るとさらに便利になります。
コントローラー以外に、自動操縦の機能が出来ると良いかと思っています。

BeetleC:操作性の良く無い BeetleC のコントローラーに使用出来ます。


.
スケッチの構成:
_ 

スケッチ:M5 moio RCWControll :
_ ORG : : 2019.08.26 : macsbug
_ rev.1 : battery, motor : 2019.09.01 : macsbug
_ rev.2 : UDP, Operability of x : 2019.09.05 : macsbug
仕様:Right Joystick のみのスケッチです。
.

// M5Stack moio + RWCController JoyStick: org 2019.08.26 : macsbug
// rev.1 : battery, motor                   : 2019.09.01 : macsbug
// rev.2 : UDP, Operability of x            : 2019.09.05 : macsbug  
// https://macsbug.wordpress.com/2019/08/26/operate-m5-whell-mono-with-rcwcontroll/
// RCWController Test Program for ESP-WROOM-32 2017/4/3 by robo8080
// https://github.com/robo8080/ESP32_RCWController_Test
// https://macsbug.wordpress.com/2019/08/21/m5-wheel-module-moio/
// https://homemadegarbage.com/esp32_minirobot01
// https://mvdlande.wordpress.com/2019/06/02/drv8833-motor-driver-module/
// DRV8833 + M5Stack + DC MOTOR
// INx  :GPIO:  OUTx : MOTOR   :CH : 
// IN1  :  5 :  OUT1 : RIGHT - : 1 : 
// IN2  : 17 :  OUT2 : RIGHT + : 2 : 
// IN3  : 13 :  OUT3 : LEFT  + : 3 :
// IN4  :  0 :  OUT4 : LEFT  - : 4 :
// DRV8833 H-BRIDGE
// IN1 = PWM, IN2 = 0   : Foword  PWM, fast decay
// IN1 = 1  , IN2 = PWM : Foword  PWM, slow decay
// IN1 = 0  , IN2 = PWM : Reverse PWM, fast decay
// IN1 = PWM, IN2 = 1   : Reverse PWM, slow decay
// Controll/buffer:   0   1   2   3   4   5   6   7   8   9
// ---------------: --- --- --- --- --- --- --- --- --- ---
// R JOY CENTER   :                 128 128               9
// R JOY UP       :                     255               9 
// R JOY DN       :                       1               9
// R JOY R        :                 255                   9
// R JOY L        :                   1                   9
// R PUSH SW Y    :      16                               1
// R PUSH SW A    :      32                               1
// R PUSH SW B    :      64                               1
// R PUSH SW X    :   1                                   1
// R1             :   8                                   1
// R2             :  16                                   1
// L1             :   2                                   1
// L2             :   4                                   1
// SELECT         :      12                               1
// START          :       3                               1
// L JOY CENTER   :         128 128                      18
// L JOY UP       :             255                      18
// L JOY DN       :               1                      18
// L JOY R        :         255                          18
// L JOY L        :           1                          18
// L TOGGLE UP    :       1                               1
// L TOGGLE DN    :       2                               1
// L TOGGLE R     :       4                               1
// L TOGGLE L     :       8                               1
// R ACCEL CENTER :   0   0 128 128 128 128 128 128   1  97
// R ACCEL UP     :   0   0 128 128 128   1 128   1 128  97
// R ACCEL DN     :   0   0 128 128 128 255 128 255 128  97
// R ACCEL R      :   0   0 128 128 255 128 255 128 128  97
// R ACCEL L      :   0   0 128 128   1 128   1 128 128  97
// L ACCEL CENTER :   0   0 128 128 128 128 128 128   1  65
// L ACCEL UP     :   0   0 128   1 128 128 128 255 128  65
// L ACCEL DN     :   0   0 128 255 128 255 128 255 128  65
// L ACCEL R      :   0   0 255 128 128 128 255 128 128  65
// L ACCEL L      :   0   0   1 128 128 128   1 128 128  65
// ---------------: --- --- --- --- --- --- --- --- --- ---
// Controll/buffer:   0   1   2   3   4   5   6   7   8   9

#include <M5Stack.h>
#include <WiFi.h>
#include <WiFiUdp.h>
#include "RCWController.h"
const char ssid[] = "ESP32-RCWC";
const char pass[] = "esp32pass";
WiFiUDP udp;
unsigned int localPort = 10000;
const int PACKET_SIZE = 256;
char packetBuffer[PACKET_SIZE];
long S, L, R, c1, c2, c3, c4, x = 0, y = 0;
char buff[32]; // UDP buffer

int8_t getBatteryLevel(){
  Wire.beginTransmission(0x75);
  Wire.write(0x78);
  if (Wire.endTransmission(false) == 0
    && Wire.requestFrom(0x75, 1)) {
    switch (Wire.read() & 0xF0) {
    case 0xE0: return 25;
    case 0xC0: return 50;
    case 0x80: return 75;
    case 0x00: return 100;
    default: return 0;
    }
  }
  return -1;
}

void battery_level(){
  M5.Lcd.setCursor(0, 200);
  M5.Lcd.print("Battery Level: ");
  M5.Lcd.print(getBatteryLevel());
  M5.Lcd.print("%");
  M5.Lcd.setCursor(0, 220);
  if (getBatteryLevel() == -1){M5.Lcd.print(" or Not USB IP5306");}
}

void motor() {
  S = sqrt( x * x + y * y );
  if ( S > 255 ){ S = 255;}
  M5.Lcd.clear(BLACK);
  M5.Lcd.setCursor(5, 25);M5.Lcd.print("speed: ");M5.Lcd.print(S);
  M5.Lcd.setCursor(5, 65);M5.Lcd.print("x: ");M5.Lcd.print(x);
  M5.Lcd.setCursor(5,105);M5.Lcd.print("y: ");M5.Lcd.print(y);
  R  = 0 ; if (x >= 0){ R = abs(x);}
  L  = 0 ; if (x <  0){ L = abs(x);}
  c1 = c3 = 1 ; if ( y >= 0 ){ c1 = S - R; c3 = S - L;}
  c2 = c4 = 1 ; if ( y <  0 ){ c2 = S - R; c4 = S - L;}
  ledcWrite(1, c1); // ch1, Phase,  5, IN1, RIGHT MOTOR-
  ledcWrite(2, c2); // ch2, PWM  , 17, IN2, RIGHT MOTOR+
  ledcWrite(3, c3); // ch3, Phase, 13, IN3, LEFT  MOTOR+
  ledcWrite(4, c4); // ch4, PWM  ,  0, IN4, LEFT  MOTOR-
}

void setup() {
  M5.begin();
  M5.Lcd.fillScreen(TFT_BLACK);
  M5.Lcd.setTextColor(GREEN);
  M5.Lcd.setTextSize(2);
  ledcSetup(1,5000,8);ledcSetup(2,5000,8); // channel,freq,resolution_bits
  ledcSetup(3,5000,8);ledcSetup(4,5000,8); // channel,freq,resolution_bits
  ledcAttachPin( 5, 1); // GPIO 5 , ch1, IN1, OUT1, RIGHT MOTOR-
  ledcAttachPin(17, 2); // GPIO17 , ch2, IN2, OUT2, RIGHT MOTOR+
  ledcAttachPin(13, 3); // GPIO13 , ch3, IN3, OUT3, LEFT  MOTOR+
  ledcAttachPin( 0, 4); // GPIO 0 , ch4, IN4, OUT4, LEFT  MOTOR-
  ledcWrite(1,0);ledcWrite(2,0);ledcWrite(3,0);ledcWrite(4,0);// STOP
  battery_level();delay(3000);
  WiFi.softAP(ssid, pass);
  IPAddress myIP = WiFi.softAPIP();
  M5.Lcd.setCursor(5, 15);M5.Lcd.print("AP IP address: ");M5.Lcd.println(myIP);
  M5.Lcd.setCursor(5, 35);M5.Lcd.print("Starting UDP");
  udp.begin(localPort);
  M5.Lcd.setCursor(5, 55);M5.Lcd.print("Local port: ");M5.Lcd.println(localPort);
  M5.Lcd.setCursor(5, 75);M5.Lcd.print("wifi ssid = ESP32-RCWC");
  M5.Lcd.setCursor(5, 95);M5.Lcd.print("password  = esp32pass");
  M5.Lcd.setCursor(5,115);M5.Lcd.print("Operate RCWController");delay(5000);
  M5.Lcd.fillScreen(BLUE);delay(1000);M5.Lcd.fillScreen(TFT_BLACK);
  M5.Lcd.setTextSize(3);
  M5.Lcd.setCursor(5,25);M5.Lcd.print("START");
}

void loop() {
  int rx = udp.parsePacket();              // UDP packet size
  if (rx) {                                // UDP recive
   int len = udp.read(buff,rx);            // recive lengs
    if (len > 0){                          // recive action
       buff[len] = '\0';                   // Termination clear    
          x = map(buff[4],1,255,100,-100); // R JOYSTICK X:  50 to -50
          y = map(buff[5],1,255,-255,255); // R JOYSTICK Y:-255 to 255
          if ( abs(y) < 100 ){ x = x * 2;} // Operability of x 
         motor();                          // move motor
      }
  } 
  battery_level();                         // battery check
}

moio , M5Stack , M5 Wheel Module , RCWController , wifi , UDP ,

Written by macsbug

8月 26, 2019 at 6:00 pm

カテゴリー: M5STACK

M5 Wheel Module ( moio )

with 3 comments

M5 Wheel Module を製作しました。               2019.08.21
全体の名称は moio と言います。

moio moio


.
M5 Wheel Module の Metal Gear Type:費用 1500円

M5 Whell Module ( Metal gear ) M5 Whell Module ( Metal gear )

.
M5 Wheel Module の Plastic Gear Type:費用 760円。

M5 Whell Module ( Plastic gear ) M5 Whell Module ( Plastic gear )

.
M5Stackを除く 2400mA Battery + Servo + Metal  Gear Type:費用 2500円
M5Stackを除く 2400mA Battery + Servo + Plastic Gear Type:費用 1800円。

M5Stack + 2400mA Battery  (640円) Servo Module DRV8833  (330円)
M5 Wheel Module (Metal Gear) (1500円) M5 Wheel Module (Plastic Gear)(760円)

.
構成とサイズ:


.
準備:
1. M5Stack:
2. M5STACK Strongest 2400 mAh Battery Module:633円。
3. Make M5Stack Servo Module:329円。
4. M5 Wheel Module: Metal Gear Type:1492円。
5. M5 Wheel Module:Plastic Gear Type:  752円。


.
費用詳細:
全体 ( moio )
_ 以前の記事にある  2400 mAh Battery ModuleServo Module を組み合わせます。

No Nomen Purchase Price
1  M5Stack
2  2400mA Battery Module  2400 mAh Battery Module     633円
3  Servo Module  M5Stack Servo Module     329円
4  Wheel Module:Metal  Gear  以下の部品表に記載   1492円
4  Wheel Module:Plastic Gear 以下の部品表に記載     752円
= ==================== ================ ======
1 費用総計: Metal Gear   2454円
2 費用総計:Plastic Gear   1714円

 


.
部品表:
⭕ M5 Wheel Module:Metal Gear Type:Gear は金属製です。
_ 価格は円レートにより変化します。

No Nomen Purchase Price
1  3V DC Micro U-Typ Gear Box
. Motor N20 5-4000RPM
. Voltage:3V, Speed:200RPM
.
 ebay:xyfs-us Store
. 輸送期間:7-11日。
. 557円 x 2個(pcs)
 1114円
1  3V DC Micro U-Typ Gear Box
. Motor N20 5-4000RPM
. Voltage:3V, Speed:200RPM
.
 Aliexpress:miniyard Store
. 輸送期間:16day, 9day
. 469円 x 2個(pcs)
.
.追記:2019.08.22:$4.41
  938円
1  3V DC Gear Motors
. GA1024-N20
. Voltage:3V, Speed:200RPM
.
 Aliexpress:ModuleLive Store
. 輸送期間:–
. 469円 x 2個(pcs)

.追記:2019.11.15:$3.32
722円
2  Oring 16mm :
. Thickness: 1.9mm
. Outside Dia: 16mm
 ebay:mnsmoresell
. 輸送期間:25日
      12円
3  Screw:8ea
. M2 5mm ナベTapping Screw
 西川電子部品株式会社       12円
4  pcb:0.3mm厚ユニバーサル基板  秋月電子通商:Cタイプ     120円
5  ピンヘッダー 1×6 (6P)  秋月電子通商:6P       20円
6  シングルピンソケット(低メス)14p  秋月電子通商:低メス14P       50円
7  CASE  3D Printer 自作:材料費     340円
8
= ==================== ================ ======
費用総計 ( Total cost )  Motor : xyfs-us Store   1668円
費用総計 ( Total cost )  Motor : miniyard Store   1492円
費用総計 ( Total cost )  Motor : ModuleLive Store   1276円

メモ:Motor の No-load speed(RPM) は  50 から 1000 までの種類があります。
_  50 や 100 は 進む速度が遅いです。150 か 200, 300 が良いかと思います。
_  (計算:150=11cm/s, 200=16cm/s, 300=21cm/s)
_  最初は 150 を使用しましたが その後は 200 又は 300 を使用しています。
_   200 は 適度に速く操作しやすくなる。⭕
_   300 は 速度は速く傾く程でなく 機敏な動作をします。
_  追記:2019.08.22 Aliexpress の miniyard Store をリストに追加。
_  追記:2019.11.15 Aliexpress の ModuleLive Store をリストに追加。
メモ:O-Ring は 千石電商で ゴムベルト15mm (163円)が販売されています。
.

⭕ M5 Wheel Module:Plastic Gear Type:赤いケースの中にPlastic Gear内臓。

No Nomen Purchase Price
1  Micro 412 Coreless
. Gear Motor DC 3V
.
 ebay:supersinostore
.  輸送期間:13日. 93円 x 2個(pcs)
 186円
2  Oring 16mm :
. Thickness: 1.9mm
. Outside Dia: 16mm
 ebay:mnsmoresell
.  輸送期間:25日
     12円
3  Screw:4ea
. M2 5mm ナベTapping Screw
 西川電子部品株式会社      12円
4  pcb:0.3mm厚ユニバーサル基板  秋月電子通商:Cタイプ    120円
5  ピンヘッダー 1×6 (6P)  秋月電子通商:6P      20円
6  シングルピンソケット(低メス)14p  秋月電子通商:低メス14P      50円
7  CASE  3D Printer 自作:材料費    352円
8
= ==================== ================ ======
費用総計    752円

 


.
仕様:全重量とタイヤ直径、ギヤー比から速度を計算する。
1. Metal Gear:速度は 1秒間11cm。
_ 全体の重さ:125g :Rorted Torque=63g (2綸の片側)。
_      :補助 2400mA Battery 追加 = 170g
_ タイヤ直径:18mm
_ トルク表から計算:販売店 xyfs-us Store に記載あり。
_ 1. Voltage:3VDC 。( 他に 6V, 12V がある )
_ 2. Speed:150RPM ( 他に 200RPM, 300RPM がある)
_ 3. トルク:3V:NO LOAD SPEED=150, Rorted Torque=63g (2綸の片側)
_ 4. LOAD SPEED:120rpm
_ 5. Roted Torque:100g.cm:Rorted Torque=63g に対し 100g/cm で動く。
_ 計算値:18×3.14=56mm。120/56=2rpm/sec。56×2=112mm/sec
_  結果:11cm/sec

_ メモ:
_ NO LOAD SPEED=150 の場合は 11cm/sec:少し遅い。
_ NO LOAD SPEED=200 の場合は 16cm/sec:適度な速度。
_ NO LOAD SPEED=300 の場合は 21cm/sec:少し速い。
_

2. Plastic Gear:
_ 1. Voltage:DC3V-3.7V。
_ 2. Speed:300RPM
_ 全体の重さ 125g でも動きます。


.
諸元:
1. Metal Gear:全体の価格の半分を占め、高めになります。
_ 騒音は モーター音 ぐらいで静かです。
_ 価格は高めですが 騒音や複数の稼働環境を考慮すると Metal Gear が良い。
2. Plastic Gear:価格は低価格です。Gearの音が大きいです。
_ 低価格で気楽ですし、少しだけ試すのに良いかと思います。


.
製作:3D Printer で製作しました。白色の6つが Printer の出力です。
.

_ CAD図面:

Metal Gear Plastic Gear

.
_ 配線:Make M5Stack Servo Module を参照ください。
_  注意: Motor回転方向:Motor の + – は Motorにより回転方向が異なります。
_      回転方向が異なる場合は + – の配線を逆にします。

 M5Stack 3V3 GND GPIO 5 GPIO 17 GPIO 13 GPIO 0
 DRV8833 VCC GND IN1 IN2 IN3 IN4
 DRV8833 ULT GND OUT1 OUT2 OUT3 OUT4
 DC Motor L Motor – L Motor + R Motor + R Motor –

.
_ 組み立て完成:Metal Gear Type + Motor

.
_ Motor + Servo Module 組立。+ M5Stack + 2400mA 組立後の裏側。
_ 車輪を含めた高さは 43mmです。
_ 車輪は2個で球体の支えは1個の3本足です。
_ 転倒防止の為に補助の球体の支えがあり 位置は 1mm 低く通常は設置されていません。

.
_ Servo専用 2400mA Battery Module :
_ 画像左 の 2400mA専用バッテリー追加により 長時間動作が可能になります。
_ 高さは 11mm 追加。全体は 45 + 11 = 56mm の高さになります。
_ M5Stackの幅(54mm)より高く見えると デザイン的に綺麗で無くなります。

Added 2400mA Battery ( H=56mm ) moio STANDARD  ( H = 45mm )

.
メモ:
_ 車輪:直径 16mm、幅 2.6mm、半円の溝を設け 16mm O-Ringを填めます。
_    構造的に横からの力に弱い点が考えられます。
_    強度が足りない場合は 再設計する必要があります。
_ 強度:全体の強度は通常の玩具と比べるとかなり弱いと思われます。
_ 価格:ケースの材料費は 340円 (SCL)。
_    調査:DMM.makeの価格は高く 作る意味が無い為、使用しません。
_    M5サイズで凸凹のかみ合わせ形状に捕らわれずに製作すれば低価格が可能。
_ 接続:M5Stack Proto Board は横にコネクターを出す物が多く見た目が綺麗でない。
_    綺麗さを出す為に コネクター接続は 内部で縦に接続するデザインです。

ABS版(左) と スケルトン版(右):


.
スケッチ作成:
1. BLYNKで操作する。以下を参照に GPIO を設定するとJoystickで操作が可能です。
_ blynkkk/blynk-library:Blynk Library
_ App Store:Blynk – IoT for Arduino, ESP32:iOSアプリ
_ 参考:ホームメイドガービッジ:ESP32 と BLYNK と円形ロボットシャーシーキットと
_ 上記スケッチを参照し M5 Wheel Module ( moio ) 版を作成。
_ リストは この記事の最下位に記載します。
_ 参考:お父ちゃん:M5Stick-Car:I made Blynk-controlled mini Car using M5Stick-C.
_ 
_ ⭕追記:2019.08.27
_  Operate M5 Whell (moio) with RCWControllRCWController アプリ操作方法。
_  iPhone (iPad) と M5 moio 間で直接 WiFi 接続するので便利です。
_  
.
以下、他の方法を示します。
2. JoaoLopesF氏の ESP32MotorControl Library を使用する。
_ 例:MotorControl.motorForward(0, speed); にて制御出来ます。
3. M5StckCのBeetleCを使用する。m5stack/M5-ProductExampleCodes
4. iOSアプリの RCWController を使用する。
_ robo8080/ESP32_RCWController_Test


.
参考:
_ JoaoLopesF/ESP32MotorControl:ライブラリー
_ jkb-git/ESP32Servo:ライブラリー
_ blynkkk/blynk-library:Blynk ライブラリー
_ App Store:Blynk – IoT for Arduino, ESP32:iOSアプリ
_ ホームメイドガービッジ:ESP32 と BLYNK と円形ロボットシャーシーキットと
_ BeetleC (W/O M5StickC) $11.95:
_ M5StickC+BeetleC M5StickC+BeetleC+M5StickVで自動運転する
_ m5stack/M5-ProductExampleCodes:BeetleC:UDP通信による WEBコントロール。
_ iOSアプリの:RCWController
_ robo8080/ESP32_RCWController_Test:RVWControllerの使用例。
_ ホームメイドガービッジ:M5StickC で倒立振子 PID制御編 ー倒立振子への道 3
_ ごじ:ESP-WROOM-02で動かす小型 (50x50x50mm) のラジコンカー
_ 


.
感想:
M5サイズの車輪製作:
_ M5Stack 発売時より M5サイズの車輪を望んでいました。
_ 多くの車は 車輪が大きく本体より外にあり、動作範囲も大きく綺麗でないです。
_ 製作する内に 何故か 限りなく SONYの「toio」に近づいてきました。
_ 比べれば比べる程 天と地の差を ひしひしと感じます。今回の製作物は
_ おもちゃにもならないレベルです。
_ センサー等を駆使すると多機能な物ができますが 今回は基本の駆動部分のみです。

_ 拡張性:センサー等を PROTO Module で Stack する予定です。
_ スケッチ:制御用アプリは重要で 今回は Blynk を試しました。Blynk は 目の前の
_  物をネット経由で操作する為、好みではありません。他に 距離センサー や
_  光センサー、accelerator 等を駆使し 操作性の良い スケッチが必要です。
_ Motor:No load Speed(RMP) は 50,100,150,200 を試しました。
_    結果、50,100 は速度が遅く 使い道に難があります。当初 150 を試し
_    使用できていますが 200 の方が速度対応が広く 200 を追加発注しました。
_    250以上は試していませんが 速度が速くなると本体が傾くか 全体を高く
_    すると、倒れる事が起きるかと思います。動画は 200 を使用しています。
_    調査の為に 300 を Order中です。
_ Gear:Gear 未使用の作品や製品を見かけますが Gear が無いと 速度が速く
_    Controll しにくい事や トルク不足になるかと判断しています。

メモ:追記:2019.08.24
_ CAD データーと出力について:
_ 1. ブログの WordPress は 圧縮データーを投稿出来ない為に 残念ながら
_   CAD データー を公開する事ができません。GitHubは使用方法が解りません。
_ 2. データーは プロ用の3D Printer (300万クラス)を使用した CADデーターです。
_   通常のプリンターは 精度(X,Y軸)が低く正しく出力しません。
_   理由は 凸部分(幅が狭い)を出力する事ができないからです。
_   M5Stackは 射出成型でX,Y軸が 0.6mm幅(凸部)で 材質も強く
_   通常のプリンターでは 出力出来ない精度と強度になっています。
_   この条件をクリヤーする為に 他の工作では Expansion方式を記載しています。
_ 3. Wheel Module のような M5Stack の後部の場合は 凸部の工夫により低精度
_   でも可能です。低精度用の図面は 作成しておらず 低精度に合わせた現物合わせ
_   も 0.2mm 単位で必要になります。
_ 4. 都内や M5Stack 等の集まりで出力品をお渡しする事は可能です。

.
_ toio と moio の比較:toioの機能と超小型サイズは見事です。

SONY toio:技術と努力の集大成から学ぶ物が多いです。
_ ロボットや玩具の中で1番の製品で、他に toio にまさる製品はありません。
_ 参考:toio 分解図
_ 現物や分解画像から想像すると、見れば見る程 検討に検討を重ねた内容に驚きます。
_ 外観や素材の安全性があり 投げても壊れない設計。
_ 車輪は縦横の力に強い材料と構造になっている。不思議な素材で出来ています。
_ Motor は今回使用している Motor より小さく強力(速度が速い)。
_ このサイズのMotorは素人では秋葉原やebay、Aliespress では手に入らない。特注品?
_ Gear は プラスチック製で騒音は殆ど無く SONYらしい高精度な設計。これは凄い!
_ ケース事態のネジ止めはない。
_ 車輪は2つで 支えは 1つ。4輪だと浮く場所ができるからだろう。
_ 2つ目の支えは 転倒を防ぐことが出来る様です。高速の時に必要。
_ 支えはスイッチにもなっている。ここまでアイデアが入っている。
_ シートの微細な画像を読む為に、画像を認識出来るセンサーが下に搭載されている。
_ この画像認識出来るセンサーは 素人には手に入らない。
_ シートのアイデアは素晴らしい。シートから情報を得る事ができる。
_ シートでプログラムも出来る高度な内容。このアイデアは他にも使用できる。
_ 速度は 30cm/sec 位かと思われます。
_ 小さい為に小回りが出来て 遊べる範囲が広いです。
_ 小さなバッテリーが内蔵され 2時間以上持つと公表されています。凄い省エネ技術。
_ このサイズに入る程 各部のチューニングが素晴らしい。
_ ハードとソフトの作り込みが凄いです。
_ 圧倒され 他に、私には解らない事も含まれていると思います。
_ APIが公開され M5StackやESP32で操作する事が可能です。
_ 今回のWheelの製作が面倒な場合は toio を購入された方が良いです。
_ 長年の開発期間と内容から 価格は理解出来ますが 遊ぶには高い。
_  低価格で 車輪部分だけの販売があれば良いなと思っています。

 

追記:2019.12.03
続編:M5 Wheel ( moio ) part 2:2019.12.03:
_  作りやすい Easy PROTO Module で M5 Wheel ( moio ) を製作。


.
スケッチ:M5Stack moio + BLINK : 2019.08.21 macsbug

// M5Stack moio + BLINK : 2019.08.21 macsbug
// https://macsbug.wordpress.com/2019/08/21/m5-wheel-module-moio/
// https://homemadegarbage.com/esp32_minirobot01
// https://mvdlande.wordpress.com/2019/06/02/drv8833-motor-driver-module/
// DRV8833 + M5Stack + DC MOTOR
// INx  :GPIO:  OUTx : MOTOR   :CH : 
// IN1  :  5 :  OUT1 : RIGHT - : 1 : 
// IN2  : 17 :  OUT2 : RIGHT + : 2 : 
// IN3  : 13 :  OUT3 : LEFT  + : 3 : 
// IN4  :  0 :  OUT4 : LEFT  - : 4 : 
// DRV8833 H-BRIDGE
// IN1 = PWM, IN2 = 0   : Foword  PWM, fast decay
// IN1 = 1  , IN2 = PWM : Foword  PWM, slow decay
// IN1 = 0  , IN2 = PWM : Reverse PWM, fast decay
// IN1 = PWM, IN2 = 1   : Reverse PWM, slow decay 

#include <M5Stack.h>
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = "frss_BKbeyBIIehKeBK2hAEp78NCB-Ym"; // BLINK
char ssid[] = "your ssid";
char pass[] = "your password";
long S, L, R;

BLYNK_WRITE(V0) {   // V0 ( Joystick ) 
  long x = param[0].asInt();
  long y = param[1].asInt();

  M5.Lcd.fillScreen(TFT_BLACK);
  M5.Lcd.setCursor(5,25);M5.Lcd.print("x: ");M5.Lcd.print(x);
  M5.Lcd.setCursor(5,65);M5.Lcd.print("y: ");M5.Lcd.print(y);

  S = sqrt( x * x + y * y );
  if( S > 255 ){ S = 255;}
  M5.Lcd.setCursor(5,105);M5.Lcd.print("speed: ");
  M5.Lcd.print(S);M5.Lcd.print("  ");

  if( y >= 0 ){ M5.Lcd.println("FOWARD");    // FOWARD
    if( x >= 0 ){ L = 0;        R = abs(x/2);
    }else{        L = abs(x/2); R = 0;
    }
    ledcWrite(1, S - R); // ch1, PWM  ,  5, IN1, RIGHT MOTOR-
    ledcWrite(2, 1);     // ch2, Phase, 17, IN2, RIGHT MOTOR+
    ledcWrite(3, S - L); // ch3, PWM  , 13, IN3, LEFT  MOTOR+
    ledcWrite(4, 1);     // ch4, Phase,  0, IN4, LEFT  MOTOR-
  }else{      M5.Lcd.println("BACK");        // BACK
    if( x >= 0 ){ L = 0;        R = abs(x/2);
    }else{        L = abs(x/2); R = 0;
    }
    ledcWrite(1, 1    ); // ch1, Phase,  5, IN1, RIGHT MOTOR-
    ledcWrite(2, S - R); // ch2, PWM  , 17, IN2, RIGHT MOTOR+
    ledcWrite(3, 1    ); // ch3, Phase, 13, IN3, LEFT  MOTOR+
    ledcWrite(4, S - L); // ch4, PWM  ,  0, IN4, LEFT  MOTOR-
  }
}

void setup(){
  M5.begin();
  M5.Lcd.fillScreen(TFT_BLACK);
  M5.Lcd.setTextColor(TFT_WHITE);
  M5.Lcd.setTextSize(3);
  
  ledcSetup(1, 5000, 8); // channel, freq, resolution_bits
  ledcSetup(2, 5000, 8);
  ledcSetup(3, 5000, 8);
  ledcSetup(4, 5000, 8);
                        //GPIO,Ch, INx, OUTx, MOTOR
  ledcAttachPin( 5, 1); //  5 , 1, IN1, OUT1, RIGHT MOTOR-
  ledcAttachPin(17, 2); // 17 , 2, IN2, OUT2, RIGHT MOTOR+
  ledcAttachPin(13, 3); // 13 , 3, IN3, OUT3, LEFT  MOTOR+
  ledcAttachPin( 0, 4); //  0 , 4, IN4, OUT4, LEFT  MOTOR-
  
  M5.Lcd.setCursor(1,25);M5.Lcd.print("SSID=" + String(ssid));
  Blynk.begin(auth, ssid, pass);
  delay(3000);
}

void loop(){
  Blynk.run();
}

M5Stack , M5 Wheel Module , moio , DRV8833 , Wheel , SONY , toio , Blynk , BeetleC ,

Written by macsbug

8月 21, 2019 at 2:00 pm

カテゴリー: M5STACK

Make M5Stack Servo Module

leave a comment »

M5Stack Servo Module を製作しました。            2019.08.10

Servo Module は DC Motor 又は Stepper Motor を ドライブします。
Driver tip は DRV8833 (90円) を使用し 費用は 400円です。

調査チップは 左上から L9110, DRV8833, MX1508, DRV8835 の4種類です。


.
Drive IC と Module 表:

Name price Size mm Store Transport Operation
 L9110     83円 29×23   yang-sell584  22 day X
 DRV8833     90円 19×16   shoptongs  15 day
 MX1508   267円 25×21   sweetsale07  16 day
 DRV8835   300円 15×10   秋月電子通商
 L297     80円 25×21   picturesqre-
 L298N     40円 25×21   Glintdeer
 DRV8833     59円 19×16   SAMIORE

_ 評価:価格, 輸送期間, サイズ, 工作容易, 動作 調査の結果 DRV8833 を採用。
_   仕様:Output Current=1.5A, Power Supply Voltage Range=2.7 to 10.8V

_ L9110:基板に組む為のコネクターの取り外しが手間と動作が不安定で非採用。
_ DRV8833:ebay の shoptongs Store は 2個180円と安く、輸送期間は15日で短い。
_      小型の為、複数個の搭載が可能。その後(2019.11.21)高くなる。
_ DRV8833国内価格:スイッチサイエンスは 733円で8倍の高価格。購入は非採用。
_ MX1508 は L298N と同等品の様です。低価格重視の為に非採用。
_ DRV8835:超小型で組み込み便利。優秀な基板です。低価格重視の為に非採用。
_       入力電源と出力電源は別系統の設計になっています。
_ 追記:2019.08.27:L297, L298N , DRV8833 調査中


.
部品準備:

No Nomen Purchase Price
1  DRV8833 2 Ch DC Motor Driver
 ebay;shoptongs    90円
2  ピンヘッダー ( male, H=7.7mm )  秋月電子通商:

  低オス 2 x 40

   90円
3  ピンヘッダー 1×6 (6P)  秋月電子通商:ピンヘッダ    20円
4  M5Stack PROTO Board  tomorrow氏設計製作 基板  100円
5  M2 5mm ナベTapping Screw(4ea)  西川電子部品株式会社      6円
6  ケース:H=8.3mm  自作:材料費 FDM
  Low cost PROTO module
  of M5STACK Part 2
   14円
7  ショットキーバリアダイオード
. RSX101VAM-30, 30V1A
 秋月電子通商:
  RSX101VAM-30
     9円
=  ====================  ================ ======
費用総計 (2019.08.10)  DRV8833:shoptongs 329円
費用総計 (2019.11.21)  DRV8833:Hong Kong.. 293円

追記:DRV8833 最安値:2019.11.21
_ 1個 54円:10pcs $4.81, 533円。Hong Kong feng tai co., LTD
_ 1個 65円:  1pcs $0.60。cuiisw module Store


.
配線:
_ M5Stack 配線例:配線は 10本です。
_ DRV8833 の 入力(GPIO)電源はVCC、出力 (Motor)電源は ULT(VM) です。
_  電源は 共に M-BUS の 3.3Vを使用します。
_  ULT – VCC間のショットキーバリアダイオードは VCC から ULT へ供給します。
_   補足:補助バッテリ未接続時に ULT へ電源を供給します。
_  外部もしくは補助バッテリーを使用する時は ULT(VM) へ接続します。
_ DRV8833 の IN 1,2,3,4 に M5Stack の GPIO を接続します。
_ DRV8833 の OUT 1,2,3,4 に DC Motor を接続します。
_ メモ : IN, OUT は基板上の名前、IC の名前は AIN, BIN, AOUT,BOUT です。
_ メモ:MOTORの回転方向:+, – 表示と回転方向は MOTORにより異なります。

 M5Stack 3V3 GND GPIO 5 GPIO 17 GPIO 13 GPIO 0
 DRV8833 VCC GND IN1 IN2 IN3 IN4
 DRV8833 ULT GND OUT1 OUT2 OUT3 OUT4
 DC Motor L Motor – L Motor + R Motor + R Motor –

.
_ 各端子と動作表: 1つの Motor の動作を示します。

INx IN1 IN2 DRV8833 Input
GPIO 5 7 M5Stack M-BUS
Motor RIGHT – RIGHT + DC Motor
1 PWM 0 Foward fast
2 1 PWM Foward slow
3 0 PWM Reverse fast
4 PWM 1 Reverse slow

.
_ スケッチの基本:

ledc Channel 1 2 3 4
    M-BUS GPIO 5 17 13 0
    DRV8833 IN 1 2 3 4
    DRV8833 OUT 1 2 3 4
    Motor Right – Right + Left  + Left  –

 

ledWrite ( ch , PWM or Phase );
ledWrite ( 1 , PWM);  // PWM   : Foward slow
ledWrite ( 1 , 1 );   // Phase : Foward slow

_ 基板レイアウトと回路図、配線。

.
_ DRV8833 Module Schematic

.
Servo Module Layout:

.
_ Solder side wiring

メモ:
_ Motorの電源は M5Stack USB 又は 2400mA Battery の 3.3v を使用します。
_ Motorの電源は 外部バッテリーを使用する事も可能です。
_ 配線面の右上のコネクターは 外部バッテリー接続時の予備のコネクターです。
_ 綺麗なデザインにする為に 接続コネクターは横から出さず 縦に接続します。


.
資料:
L9110:L9110 Datasheet
DRV8833:DRV8833 Dual H-Bridge Motor Driver
MX1508:Using the MX1508 Brushed DC Motor Driver , pdf
DRV8835:DRV8835 Dual Low-Voltage H-Bridge IC
H-BRIDGE:どの Module (tip) も H-BRIDGE 接続 ( Motor の正逆転) が可能です。
_ H-Bridge DC Motor Applications
Adafruit DRV8833 DC/Stepper Motor Driver Breakout Board
My Tech notes:DRV8833 motor driver module:回路動作と回路図。
Pololu:DRV8833 Dual Motor Driver Carrier:基板と動作の詳細。
HACKADAY.IO:Low level DC motor driver:H-bridge circuit の説明。
コーヒーとチョコレート:ESP32でローバーの基板を作ったお話:ESP32+DRV8833


.
感想:
今回の記事は DC Motor を低価格で動作させる為の Servo Drive です。
格安で動作する Servo Module を調査 及び 動作試験を実施しました。
Module を使用するとCR部品も装備されている為、便利です。
結果、DRV8833 は 格安で輸送期間も短くリーズナブルです。

次回は DC Motor Module の製作記事を予定です。


M5Stack , Servo , H-bridge , DRV8833, DRV8835 , MAX1508 , L9110 , L298N ,

Written by macsbug

8月 10, 2019 at 12:41 pm

カテゴリー: M5STACK