フォト
2018年9月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ

通販

2018年6月11日 (月)

CH340E搭載小型USB-シリアル変換モジュールの調査

AliexpressにてCH340Eを使った小型USB-シリアル変換モジュールを見つけ入手しました。

1PCS CH340E USB to TTL Serial Converter, 5V/3.3V Model:BTE17-06 Alternative CH340G Module
00

1個 $0.53ですが、送料が$1.32かかります。1個だけの注文だと割高になるので5個購入。
5個でも送料は$1.32でした。

このモジュールはaitendoでも販売されているようです。

到着したモジュール
Dscn8178

基板の実装状態は良好な製品です。

GND、5V、TXD、RXD、DTR、3.3Vの6端子があります。
DTRが使えるので、シリアル経由のプログラム書き込みにも利用出来ます。
ポリヒューズが乗っており過電流の対策も施されています。
3.3Vは内蔵レギュレーターで生成しています。

Dscn8188

早速、Arduino Pro mini (5V 16MHz)で書き込みテストを行ってみました。

Dscn8202

Lチカスケッチは問題なく書き込めました。

次に秋月で購入したATmega328P(内部RC 8MHz)への書込みを試してみます。

Dscn8205

書込みでエラー発生。

02

念のため、コマンドラインにて接続チェックをしましたがやはりエラー発生です。

01

ケーブルやリセット回りの実装等を見直すも、原因不明です。
様子的にはDTRによるリセットはちゃんの行われているようですが、
それ以降のデータ通信が上手く行っていないようです。

念のため利用実績のあるCP2102搭載のUSB-シリアル変換モジュールで
書込み確認してみました。

Dscn8209

問題無く書き込み出来ました。何回やってもエラーなしです。

04_2

当然、接続確認も問題なし。

03


CH340E搭載モジュール固有の問題のようです。
Arduino Pro mini (5V 16MHz)では問題なく書き込めていたので、
CH340EがRC発振8MHzの精度の悪さに敏感なためエラーになっているのかもしれません。

CH340E搭載モジュールとCP2102搭載を直結して57600bps設定で通信が出来ることを
確認したので、57600bps設定の通信も問題無く出来ています。

原因については、ロジックアナライザ等を使ってもう少し調べてみることにします。

2018/06/12 追記
ロジックアナライザにて正常書込みが出来るCP2102モジュールと上手くいかない
CH340Eの信号を調べてみました。

CP2012モジュール利用時
06

CH340Eモジュール利用時
05

どうも、CH340EモジュールのDTR信号に問題があるようです。
Atmega328Pは外部リセットピンのLOW→HIGHの立上りでMCU起動の遅延タイマが
スタートし始動しますが、これではブートローダが動く前にデータが送られて処理出来ません。

色々調べると、CH340搭載モジュールの一部にはこれと同様の問題があるようです。
   参考にしたサイト
   ・Arduino Forum Topic: CH340 programmer not auto-resetting (Read 2806 times)
   ・くつしたねこのTinkering,Tinkering and Obliquity - Arduino互換機を作りたい(3)
   ・Memoteki - Arduinoに書き込めない問題を修正する方法[not in sync]

上記のサイトに解決策があり、早速参考にしてみました。
次の回路を付加してCH340EモジュールのDTR出力から短いワンショットパルスを生成します。   

07
Dscn8210

これにより、DTR信号からRESET信号を生成できました。
一番下が生成したRESET信号です。

08

CP2012モジュールのDTRとほぼ同じ信号が生成出来ました。
ただし、これでも書込みがうまくいきません。
もう少し調べてみることにします。

2018年5月23日 (水)

梅澤無線電機さんの「電子倶楽部60」を購入してみました

電子工作関連のブログを色々と読みあさっていたところ、
梅澤無線電機さんの「電子倶楽部60」を発見、レトロな雰囲気につられてポッチってしまいました。

個人的な趣味として電子工作をやってますが、アナログ回路はあまり得意でなないので、
勉強しようと、教材を探していたんですよね。

梅澤電機株式会社 - 電子倶楽部60

01

関連情報
電子倶楽部60

価格は税込みで1,058円ですが、送料に868円かかりました。

注文して2、3日で商品が到着しました。さっそく開封してみます。

到着した商品

外箱は手抜きのない立派な箱です。
これなら、子供さんへのプレゼントとしても使えそうです。

Dscn7930

箱の裏

Dscn7932


開封

箱の中はこんな感じで入ってます。

Dscn7933

本体

値段の値段の割には、しっかりした作りです。
上面ボードの材質は、ボール紙ですが厚さが1ミリあり樹脂化粧していて丈夫そうです。
付属品として、ケーブル類とクリスタルイヤホン等が付いています。

Dscn7935

バーアンテナ、ポリバルコン、トランジスター、ダイオードがあるので鉱石ラジオや
1・2石トランジスターラジオなんかも作れそう。

搭載しているパーツ類、個別に買った場合1058円じゃすまないとおもいますね。

テキスト類

36ページの冊子がついています。意外としっかした内容のテキストです。

Dscn7943

60種類の実験回路が掲載されています。
色々と面白そうな実験が出来そうです。

Dscn7945

Dscn7944

Dscn7937

裏はこんな感じです。電池ボックスがあります。
うらは若干チープ間がありますが、良しとしましょう^^

Dscn7940

子供のころ、学研の電子ブロックを持っていたのですが、
あれって電子部品を直感的に結線出来ず、ブロックの配置に悩んでしまいました。
このワイヤー直結の方が楽ちんです。ブレッドボードとの併用もできますね。

ArduinoやIchigojam等のマイコンと組み合わせての利用にも良さそうです。
Lチカや音出し、リレーを使った実験等はこのボードを使って出来そうです。

2018年5月16日 (水)

ゲームボーイ(旧タイプ)のパーツ その2

前回からの続きです。
その後、ケースの他に液晶モジュールとそのカバーを追加注文し、部品が到着しました。
とりあえず、IchigoJamで稼働させてみる予定です。

到着したパーツ

Dscn7908

Dscn7910

追加注文したパーツ

・LCDモジュール
3.5インチ 4:3の画面だと選択枝がこれしかありませんでした。
Podofo 3.5" TFT LCD Display RGB LCD Display Module Kit

01

・LCD用のカバー
  プラスチックではなくガラス製です。
Glass For GameBoy Zero DMG-01 For Raspberry Pi Modify Glass Lens Protector

02


まずは、LCDディスプレイの動作チェック

LCD部とドライバーボードのセットです。NTSCビデオ入力で表示出来ます。
IchigoJamに接続して表示確認をしたところ、仕様では12V駆動ですが5Vで動作しました。
意外と視野角の広く、斜めからも良く見える液晶です。

Dscn7907

液晶パネルはLQ035NC111という、比較的入手しやすいパーツです。

さっそく、今回の試みで一番重要なLCDの組み込みをやってみました。
傷防止のマスキングテープを付けて、段差のある部分をカットします。
パネルカバーが載せられるように、若干フチを残します。

Dscn7912

マスキングテープで仮止めして、一旦組み立ててみます。

Dscn7914

基板も装着

Dscn7917

ふたを閉めて、表示の確認をします。
LCDモジュールからケーブルを引き出して電源供給とビデオ信号入力を行っています。

Dscn7921

とりあえず、見栄えも良くいい感じに仕上がりました。
LCDカバーは購入して正解でした。

次に裏の電池ボックスからの電源供給をどうするか考えてみます。
Ichigojamを中にどう入れるかも検討します。

Dscn7922

他にもコネクタ類(キーボード、シリアル通信、外部電源)も何とかしたいですね。


2018年5月 8日 (火)

ゲームボーイ(旧タイプ)のパーツ

ゲームボーイ(旧タイプ)のパーツがAliexpressやeBeyで出回っています。

02

01

古いゲームの傷ついたハウジング(外側ケース)やボタンを交換したりってニーズが
海外ではあるようです。

Pi Zeroとの記載があり、中にラズパイ Zeroを入れて利用する用途もあるようです。
私も「Arduinoや何かに使えるのでは?」と思い、幾つかパーツを注文しました。

私は、ゲームボーイ自体で遊んだことがなく、本物の使い勝手が分かりません。
そこで、中古を探して入手しました。
初代ゲームボーイ(DMG-01) 、amazonで3,290円でした。

Dscn7866

Dscn7867

状態はかなり良いです。
ゲームボーイは初めて手にしましたが、かなり頑丈な作りです。

ゲームは近くのHardOffで入手しました。

Dscn7874

テトリス 200円、それ以外は40円でした。

Dscn7871

テトリス、久々にやりました。液晶の表示も良好です。
問題無くプレイできました。
う~ん。面白い、操作性も抜群です。ハマってしまいました。

残念ながら、ハイスコアの保存で出来ないようです。
ゲームカーリッジ内のバッテリーバックアップが動作していないようです。

Dscn7873

カートリッジは特殊なねじで開けることが出来ません。
このタイプのドライバーをamazonで見つけ注文しました。

ゲームボーイ本体は調査のため解体して、基板の寸法等を調べる予定です。

2018/05/10 追記

工具が到着したので、早速ゲームカートリッジを分解してみました。

Dscn7876

以前ダイソーで購入したドライバーに嵌めて利用できました。

Dscn7877

テトリスを分解しみると、バックアップ電池はありませんでした。
ググってみると、どうやらテトリスはハイスコアを保持する機能は無いようです。
残念。

Dscn7878

とりあえず、遊戯王も分解してみました。
こちらには、バックアップ電池がありました。
ICが4つも搭載。グラフィック等を多用するためか、容量の大きいROMが搭載されているようです。

Dscn7880

2018年4月26日 (木)

Aliexpressで USBTinyISPの小型版を購入

Aliexpressにて USBTinyISPの小型のものが出回っているようで、入手しました。
USBTinyISP Programmer Module For Arduino

03

私が購入した時は、送料は無料だったのですが、現時点では若干値上がり&送料がかかります。

01


到着した製品(左)と所有していた従来のUSBTinyISP(右)

02

かなり小型です。Windows 10パソコンに接続したところ、問題なくUSBTinyISPと
認識してくれました。

ATtiny13Aの書込みには、今後これを使っていく予定です。

別途、6ピンのコネクタ付きのフラットケーブルがあると重宝します。
6 Pins 2.54mm Pitch JTAG AVR Download Cable

04



2018年1月 2日 (火)

Aliexpressで見つけたSTM32F407VGT6ボードを購入

こりもせず、Aliexpressで見つけた良さそうなマイコンボードを購入しました。

STM32F4discovery STM32F407VGT6 ARM Cortex-M4 32bit MCU Core Development Board 02

到着したマイコンボード

BluePillボードの2倍くらいの大きさです。STM32F4が乗っている割には非常にシンプルなボードです。

Dscn7437

使い勝手は良さそうなのですが、資料なし。
色々探してみると、このボードを評価しているサイトがありました(感謝!)。

Visuariddim - DIY More STM32F407VGT6 ボード
http://dubstylee.net/v/diy-more-stm32f407vgt6/

上記サイトの情報により、ユーザー利用可能LED、ボタン利用のポート番号や、
USBの問題点を知ることが出来ました。

とりあえず、Arduino STM32環境にてLチカを行うことが出来ました。
書込みはST-Linkを利用しました。

Dscn7442

USBシリアルの利用は上記サイトで指摘のある通り、問題ありです。
D+、D-がプルアップ抵抗、ダンピング抵抗がなくポートに直結の状態。
とりあず1.5kΩの抵抗でプルアップすることで、USBシリアルを使った通信を行うことが出来ましたが、
USBを認識したり、しなかったりと不安定です。

USB経由でDFUを使った書き込みは、DfuSeDemoでは出来ましたが、Arduino IDEからは
出来ませんでした。

(2018/01/05 補足 Arduino IDE for STM32にてF4ボードでUSB経由(.dfu形式イメージ対応)で
  書き込みを行うには、下記のリンク先のカスタマイズ設定が必要です。
  alternative way to use STM DFU in Arduino 1.8.3 on Black F407VET6
  ただし、このボードでは書き込みは出来ても、動作しませんでした。
)

Dscn7443

ボードとしては、シンプルで好きなタイプなのですが...
とりあえず、実験用に使ていこうとは思います。

2018/01/03 追記

端子名が分かるよう、ラベルを貼り付けました。
これでちょっと使いやすくなりました。

Dscn7455

2018/01/10 追記
Arduino for STM32のフォーラムにこのボードに関する投稿記事を見つけました。
[Solved] Anybody using this F4 board and got the USB working?

結論としては、「外部プルアップ抵抗付けなくてもUSB CDCは利用できる~よん」
とのことです。内部でプルアップ処理を施す対応のようです。

2017年11月12日 (日)

シリアル接続 赤外線送受信モジュールの調査

Aliexpressでシリアル接続で利用出来る赤外線送受信モジュールを見つけ、入手しました。

Photo

製品はこんな感じです。

04

06

いつものAliexpressクオリティでマニュアルが無いので、
裏のシルク印刷「YS-IRTM」で情報を探すと ズバリの情報がありました。
  ・Arduino フォーラム Topic: Infrared interface
   https://forum.arduino.cc/index.php?topic=359707.0

上記の情報から、通販サイト「UCTronics Store」の商品情報のページに詳しい情報があります。
  ・Infrared Remote IR Decoder Encoding Transmitter & receiver Wireless Module NEC
  08

  このページにマニュアルのリンクがあります。
  http://www.uctronics.com/download/U3107_Infrared_decoding_module.zip

マニュアルは中国語ですが、使い方が分かりました。
(以下、使い方のメモ)

結線

05

シリアル(UART)はクロス接続です。電源は3.3Vでは動きません。5Vを供給します。
3.3Vマイコンを使う場合は、5Vトレラント対応を確認して利用します。
IchigoJamやSTM32(Blue Pillボード)のSerial1は、5Vトレラントなので直結出来ます。

シリアル通信条件
デフォルトでは、9600bpsで、8ビット長、パリティなし、ストップビット1、フロー制御無し

とりあえず、データの受信はこれで出来ます。
NECフォーマットなので、赤外線リモコンを押したときに、受信するデータは
次の3バイトとなります。
  [カスタマーコード上位] [カスタマーコード下位] [ボタンコード]

試しに、豊四季Tiny BASICを使って、受信してみます。

01

プログラムソース

10 CLS
20 SOPEN "9600"
30 D=SREAD()
40 IF D>=0 ?HEX$(D,2)
50 GOTO 30

プログラムは、シリアルをオープンして、データを受信したら16進数で表示します。

02

ボタンを押すと3バイト受信出来ました。
3バイトのうち、最初の2バイトがカスタマーコードで、どの赤外線リモコンから送信されたか識別できます。
3バイト目が押されるボタン毎に異なる値となります。

こういった実験は、単独稼働できるボードだとお手軽に出来ますね。
インタープリターでコンパイル不要なのも良いです。

モジュールには幾つかのコマンドが利用出来ます。
コマンドは次の5バイト構成となっています(16進コード)。

     [アドレス]  [コマンド] [引数1] [引数2] [引数3]

アドレス:送信先モジュールを指定するアドレス
    0xA1(デフォルトアドレス、変更可能)
    0xFA(ユニバーサルアドレス、変更不可)

コマンド: モジュールに対する指示
   0xF1  赤外線信号送信
           引数1~引数3に送信するデータを指定します。
              引数 1: カスタマーコード上位
              引数 2: カスタマーコード下位
              引数 3: データ(ボタン識別コード)

   0xF2  アドレスの変更
           引数1~引数3に送信するデータを指定します。
              引数 1: 新しいアドレス
              引数 2: 0x00
              引数 3: 0x00

   0xF3  シリアル通信速度の設定
           引数1~引数3に送信するデータを指定します。
              引数 1: 0x01~0x04(0x01:4800、0x02:9600、0x03:19200、0x04:57600bps)
              引数 2: 0x00
              引数 3: 0x00

ここで、アドレスとはモジュールを個体識別するコードのようです。
やろうと思えばシリアル通信でも1対多送信出来るので、同時に複数のモジュールを
接続してる場合にでも利用するのかもしれません。

上記のコマンドを送信し、正しく処理が行われた場合は、コマンドのコード1バイトが
応答として送られてきます。

  0xF1  送信に成功した
  0xF2  シリアルポートアドレスが正常に変更されました
  0xF3  ボーレートが正常に設定されました

応答が帰ってこない場合、エラーを意味します。

資料を読むと、アドレス、通信速度のリセット方法の説明があるので、
アドレス、通信速度の変更は保持さるっぽいです(試していません)。

モジュールをもう一つ使って送信も試してみました。

10

もう一方はUSB-シリアル変換にてパソコン(Windows 10)に接続しています。

09

Real Time Serial Captureというソフトを使って、データ送信コマンドとして
0xA1 0xF1 0x12 0x34 0x56 をモジュールに送信します。

相手側にて受信され、画面に 12、34、56が表示されました。
パソコン側は応答としてF1を受信しています。

2、3メートル離して送信を試してみましたが、問題なく送信出来ました。
NECフォーマットの都合上、一度に3バイトしか送れませんが、色々と使えそうです。


さて、このモジュール、回路図を見るとこのモジュールにはSTC11F02Eというマイコンが
使われているようです。STCは中国で良く使われているマイコンのようです。

ちょっと消費電力が気になり、測定してみると15mA(5V)でした。
まあこの程度なら利用には問題ないでしょう。

2017年9月25日 (月)

注文していたスイッチが到着

キーボード作成のために注文していた、未到着スイッチが到着しました。

Dscn7071

ボタン部がシリコン製のスイッチは、タッチ感抜群で、タクトスイッチがゴミのように思えます。
連打を要するゲーム機の作成にはこのスイッチがおすすめです。

一方、2ピン省スペース角形スイッチ、タッチ感は通常のタクトスイッチを同じですが、
面積を取らず、これはこれで使い勝手良好です。

キーボード製作(完成版)はシリコン製のスイッチを利用、
試作では前回到着した激安タクトスイッチ利用で作業を進めていきます^^

2017年9月15日 (金)

注文していた激安タクトスイッチが到着

Aliexpressで注文していたタクトスイッチが到着しました。
9/6に注文して、9/15に到着。最近配達が早くなった感じです。

Dscn7026


Dscn7028

2ピンタイプはブレッドボード上での利用に良さそうです。
送料込みで 4ピンタイプが100個 $0.79、2ピンタイプが100個 $1.57。

国内で買うと1個10円するのでかなりお得です。

2017年8月 5日 (土)

Blue Pill ボード(STM32F103C8T6) $1.58

Aliexpress、Blue Pillボード取扱い業者が増え、値段が下がっていますね。
原価はいくらなんだろう..

Free Shipping STM32F103C8T6 ARM STM32 Minimum System Development Board Module Forarduino
Blue Pillボード

とりあえず、2個注文しました。
安くて、小さくて、高性能とバランスが取れて良いボードです。

利用者も増えている感があります。

増えているといえば、最近のArduino STM32は更新の頻度も増えてます。
利用者増加に伴い、プルリクエスト・不具合の指摘も増えています。

機能追加・不具合対応等は大歓迎です。

早速更新すると、何気にメニューの設定項目が増えています。
オーバクロック 128MHz !?

04

2017/08/07 追記
Arduino STM32、最近の激しい更新ラッシュ、Wire(I2C)ライブラリに大きな変更があり
豊四季Tiny BASICでコンパイルエラーが発生するようになりました。

Wireライブラリはハードウェアバージョンとソフトウェアエミュレーションバージョンがあり、
デフォルトではWire.hがソフトウェアエミュレーションバージョン、HardWire.hが
ハードウェアバージョンを使うためのヘッダーファイルでした。

これが、最近の修正で、Wire.hがハードウェアバージョンとなり
ソフトウェアエミュレーションバージョンを使う場合はSoftWire.hを使うこととなります。

豊四季Tiny BASIC for Arduino STM32は、
これを機会に、Arduino STM32の安定版での利用をデフォルトとしました。

より以前の記事一覧