今回は、中国から配送されるネットショッピングに挑戦です。
と言っても、昔の「個人輸入」みたいな大変なことは何も無くて、いつもの様にAmazonでポチっとするだけです。購入したショップが、たまたま中国のショップで、中国から商品が送られてくるだけのことです。「挑戦」とまで言えるかどうか疑問ですが、心配なのは以下の三点です。
3番目の心配事は、トラブルが起きなければ、検証不能ですが、最初の2つは検証できるはずです。
まず、発注したのは2019/01/02の夜でした。以下、イベントのあった日付を表にまとめておきます。
日付 | イベント | 備考 |
2019/01/02(水)夜 | Amazonで発注 |
発注は夜だったので、実質、次の営業日? 発注先は「EasyWordMall(7-14日でお届け致します)」 |
2019/01/04(金)AM | 発送メール着信 |
Amazonから発送した旨のメールが届いた。 普通に考えて迅速な対応でした。 年始であったことを考えると、かなり迅速。 配送業者はChinaPost 「お届け予定: 月曜日, 01/14」 |
: | 特になし |
Amazonの「注文履歴」では、着々と進行しているように 見えていました。 |
2019/01/14(月)PM | 到着 |
到着しました。 届けてくれたのは、たぶん、郵便局(日本郵便)の配達員さん。 |
2019/01/15(火)朝 | 特になし |
ふと、Amazonの「注文履歴」を見てみたところ、 「申し訳ありません。お客様のお荷物の配送が遅延しています」 イヤイヤ、もう届いてますって(1^^;)。 |
2019/01/19(土)PM | 状況確認 |
この段階でもまだ、「配達遅延」していることになっていました。 もう、ステータスを反映する気はないみたいです……(1^^;)。 |
発送メール時点で記載されていた「お届け予定」日から、1日も前後することなく、ピッタリその日に届きました。「01/14までに配送」というベストエフォートではなく、「01/14に配送」という、日付指定になっていたかのよう。
ともあれ、01/04に発送してから10日で届きました。中国と日本の税関を通り抜け、船便で輸送されたとすると、妥当な日数ではないでしょうか?
何より、今回使ったショップに関しては、発注〜発送までの間が非常に迅速で好感が持てました。昔、日本国内のショップでもあった、「発注を受けてから仕入れる」様なショップだと、ここ(発注〜発送までの間)でもっと時間を要することになります。
※「発注を受けてから仕入れる」様なショップでは、在庫も倉庫も持たなくて済む分、他のショップに比べて安く販売できるのですが、発注を受けてから仕入れるため、「写真と違うものが届いた」とか、仕入れ先が在庫を切らしていたため、「1か月以上待たされた」などのトラブルも多発するので、注意が必要です。
留意すべきなのは、01/15のAmazon「注文履歴」の表示です。うまく連携が取れていないみたいです。「最新の配送状況は配送業者にてご確認ください」と、リンクが張られていたのですが、リンク先に、今回の配送業者China Postは無く、万一、トラブルがあった時には不安が残ります。
結果としては発注から12日で届いていますので、満足です。初めから「7-14日でお届け致します」と謳っているので、謳い文句通りですし、妥当な日数だと思えます。
「品質」と言っても、各商品の品質について評価するのはちょっと違いますね。作っているのはメーカで、今回のショップは、ただの小売店ですから。評価するとしたら、梱包状態とか、注文内容通りに届いたか、とかでしょうか?
まず、いくつか(10点ほど)まとめて買い物したのですが、15cm×20cmくらいの、内部にエアキャップが付いた封筒で送られてきました。梱包状態は良好でした。いつものAmazonだと、そこまでする?って程頑丈に、小さなものでも段ボール箱に梱包して送ってきますが、だいぶあっさりしています。ただ、エアキャップ付きの封筒でしたし、必要最小限の梱包で、問題なしです。
商品を全て確認しましたが、間違って届いたり、外観で欠損しているものはありませんでした。
価格とのバランス(費用対効果)を含め、合格レベルでした。
とは言え、ショップの対応以前に、メーカ責任の「初期不良」は存在するもの、ですから、初期不良品が混じっていないことは最初にチェックする必要があるでしょう。
以下、注文した中で「大物」の商品4点に関して、初期不良チェックを兼ねた、セットアップを実施してみます。
中国から配送されてきた、本HP 4機目となるArduino、Pro Mini互換機です。大きさ比較のため、映り込んでいるのはUNOの機体です。
MCUはATmega328P-AU (QFP版)で、機能的にはUNOと同じ様な構成です。28ピンDIP版のUNO(ATmega328P-PU)に比べ、32ピンQFPになったことで、4ピン増加しています。増えたピンは、Vcc、GND、ADC6、ADC7です。UNOに比べて、アナログピンが2本増えています。
届いた時点では、Pro Miniの本体と、ピンヘッダが別々に送られてきました。上の写真は、自分ではんだ付けした後です。増加した2ピンと、何故か、アナログ端子のA4、A5が両サイドのピンヘッダとは別に、基板の内部にスルーホールがついていました。増加した2本はまだ良かったのですが、A4、A5にはI2C端子(SCL、SDA)がマルチプレクスされているので、これらのスルーホールにはピンソケットを上向きにはんだ付けしました。
※ピンソケットは付属していないので注意。「#3-3 I2C接続 LCD表示モジュール」で購入した残り(自前)を使いました。ただ、ピンソケットをはんだ付けしたら、シルクの端子名が隠れて見えなくなってしまいました……(ピンは立ったけど、端子名がわからない(1x_x))。
UNOとの最大の違いは、USBインターフェイスがついていないことです。よって、USB⇔UART変換モジュールを使ってPCとつながないと、プログラムを書き込むことができません。
Arduino Pro Miniだけでなく、他にも使う都合があったので、USB⇔UART変換モジュールに関しては以下の点に留意して選択しました。
FTDIという会社のチップが載ったモジュールが該当していましたので、それを選んで、今回Pro Miniと一緒に購入しました。
Arduino Pro Miniと言う機体は、USB⇔UART変換チップやUSBコネクタが要らない分、コストを抑えられるはずなのですが、そこは残念ながらそんなに安くはありません……。あとは大きさですね。上写真のサイズですから、実装場所を取りません。
蛇足ですが、手持ちのMicro互換機と、サイズもピン配置(電源、デジタル端子、アナログ端子、等の配置)も同じでした。
変則的に基板内部にスルーホールの開いていた4端子については、Microには存在しない端子だったため、どうも、MicroとPro Miniでピン配置を揃えたいという意図があったように思えます。
デバッグ中はUSB⇔UART変換モジュールを接続して使うことになるので、そこから電源も供給できるのですが、一旦USB⇔UART変換モジュールを取り外してしまうと、自分で電源を供給してやらないとならない点は、若干の欠点ではあります。
では、USB⇔UART変換モジュール(以下簡単に、FTDIと呼びます)を使って、Arduino IDEからプログラムを書き込んでみましょう。
外観は以下の様な感じです。
いきなり、USBケーブルでPC(Windows 10 Home)に接続してみましたが、ダメ、認識されず。手動でドライバをインストールする必要があるみたいです。
Amazonの購入ページに記載されていたドライバ(k000430-ft232rl-driver.zip)をダウンロードしてインストールしようとしましたが、解凍したディレクトリを指定しても「対応するドライバが見つからなかった」と、インストールできず。
「FTDI+windows+driver」で検索して、FTDIのページからドライバをダウンロード(CDM v2.12.28 WHQL Certified.zip)したところ、無事インストール完了。
なに?これ?わざわざ、購入ページで指定されていたドライバではインストールされなかったんですけどね……。ファイル名も全然違うし、バージョン違いとかではなさそう……、まあ、いいか。ちゃんと認識されたし(1^^;)。
FTDIとPro Mini互換機を以下の様に接続します。
Arduino Pro Mini | 接続 | FTDI |
VCC | ← | VCC (ジャンパを5V側に設定) |
GND | ⇔ | GND |
DTR | ← | DTR |
TXO | → | RX |
RXI | ← | TX |
GND | → | CTX |
TXとRXはクロスに接続します。Pro Miniの端子は、基板上向きで直角に曲がったピンヘッダに引き出されています。
FTDIをUSBケーブルでPCに繋ぐと、そこからPro Miniまで電源が供給されるので、これだけでプログラムの書き込みはできてしまいます。
Arduino IDEを起動して、ツールメニューから以下の様に設定します。
通信ポート名は、環境によって異なります。これで準備は全て終了です。プログラムをコンパイルして書き込んでみることができます。
いきなり、Logiscopeを書き込んで、実行してみました。PC側で実行するスクリプト(logiscope.olv)で、接続直後のArduinoからの応答"RDY"を読み捨てるところの処理が、待ち時間が短すぎてうまく動きませんでしたが、待ち時間を少し長くして、動作を確認しました(logiscope.olv更新済みです)。FTDI経由でリセットする様になったせいで、Arduinoがリセットから立ち上がって"RDY"を送ってくるまでの時間が伸びてしまったのが原因みたいです。
ざっと、Logiscopeで動作を確認しました。初期不良はなさそうです。
一緒に購入した、ARM Cortex-M3 (@72MHz)が搭載されたマイコンボードです。
こちらも、ピンヘッダは実装されていない状態で届きました。上写真は、自分ではんだ付けした後の写真です。ボードなのか、ピンヘッダなのか、ちょっと、はんだの濡れが悪くて、イモ気味です。イヤ、ボードのせいではなく、筆者の腕のせいかもしれません、お恥ずかしいm(1__)m。暫く使い込むと、何本か、コンタクトの取れていない端子が有ったりして……(イモはんだのせいか、初期不良か、判断できませんね)。
このボード、元々はArduinoとは無関係だったのかもしれませんが、現時点では、Arduino IDEを使って、Arduinoとして開発できる様、先輩方が環境を整えてくれています。本HPでも、購入したマイコンボードをArduinoとしてセットアップして使いたいと思います。
さあ、この子はセットアップするのに少〜し手間がかかります。先輩方が手取り足取り教えてくれているサイトがありますので、セットアップ方法については、そちらをご参照ください。
STM32F103のセットアップについて検索する(別ウインドウが開きます)
ここでは備忘録代わりに、筆者の足跡を、ざっとまとめておきます。
STM32ボード | 接続 | FTDI |
5V | ← | VCC (ジャンパを5Vに設定) |
3.3 | × | |
G | ⇔ | GND |
A10(RX) | ← | TX |
A9(TX) | → | RX |
STM32F103は、3.3V定格のMCUなのですが、FTDIから電源を供給するのであれば、FTDIを5Vのモードにしておく必要があります。3.3V設定にしてはいけません。FTDIのUSB⇔UART変換チップ、FT232RLには、降圧レギュレータが搭載されており、USB VBUS(5V)から3.3Vを生成しているのですが、この3.3V電源から取り出せる電流値はMAX 50mAです。恐らく、STM32ボードを支え切れませんので、もし、3.3Vでインターフェイスするなら、STM32ボードにFTDI以外から電源を供給する必要があります。
今回使うUART(シリアル)端子A9、A10は、5Vトレラントになっているので、5Vインターフェイス信号を直結できます。しかも、5Vの電源自体はUSBのVBUSから供給されていますので、電流容量も問題ないはずです。
※厳密には、A9端子は3.3V系の出力であり、それを受けるRXは5V系の入力ですので、レベルがあっていません。ただ、Ioh≒0mAだと考えると、A9のHIGHレベルは3.3V近辺まで上がるはずなので、RX側のVihを満たせるでしょう。心配な場合は、レベルシフタを挟んでください。
※STM32F103のI/Oポートの中には、5Vトレラントになっていない端子もありますので、5V信号を接続しようとするときには、データシートで確認してから繋ぎましょう。
PCから通信ポートが見えたら、準備終了です。Arduino IDEを起動して、以下の様に設定します。
通信ポート名は、環境によって異なります。
この子は、これから使い込んでみる必要があるのですが、まずは初期不良の無いことを確かめるテストですので、Lチカプログラムを組んで実行してみましょう。
void setup (void)
{
// initialize
pinMode (PC13, OUTPUT);
}
void loop (void)
{
digitalWrite (PC13, HIGH); // オンボードLED(PC13)は、
delay (1000);
digitalWrite (PC13, LOW); // LOWで光る回路になっている。
delay (1000);
}
今回購入した機体は、「Blue Pill」と呼ばれている機体です。USBのD+信号線につけるべき、1.5kΩのプルアップ抵抗が間違って(10kΩ等)ついているとか、USBコネクタのはんだ付けが甘いとか、色々とトラブルの報告されている機体ではあります。
プルアップ抵抗値の間違いについては、接続するPC側のホストコントローラ次第で、プログラムをうまく書き込めないケースがあるそうです。今回購入した機体は、プルアップ抵抗が10kΩでした、間違っていますね(1^^;)。でも、問題なくプログラム書き込みまでできてしまいました。PCのホストコントローラが「許容」してくれたみたいです。
※あまりトラブルの話を聞かない、「Black Pill」なる、機体もあるようですので、そちらを選ぶのも良い考えです。
もし、うまくLチカまで到達できなかった場合には、最初に検索した、先輩方の奮闘記をご覧ください。解決策が見つかるはずです。お勧めの方法は以下です。
約1.77kΩの抵抗(プルアップ抵抗が10kΩだった場合)を、STM32ボードのA12−3.3V端子間に接続する。
これで、元々ついている10kΩと、外付けに追加した1.77kΩが並列接続となり、合成抵抗がおよそ1.5kΩとなります。筆者の腕では、ボードに面実装されているチップ抵抗(10kΩ)を剥がして、新たに1.5kΩのチップ抵抗を実装するなんて、絶対に無理ですから!腕に自信のある方には、「張り替え」の方が確実であることは言うまでもありません。
※A12と電源(3.3V)端子は結構離れていますが、STM32ボードにはブレッドボード1列分の「ひさし」があるので、追加したプルアップ抵抗をひさしの下に隠してしまうことが可能です。後々トラブルに出くわすのは嫌なので、下図の様に仕込んでおくことにします(1.77kΩなどと言う半端な抵抗は無かったので、手元にあった2kΩ)。
いつもこのセットアップで使いたいので、STM32専用にするため、400穴ブレッドボードも1個購入しました。
Lチカまでですが、動作確認できました。初期不良はなさそうです。
今回、中国のショップから購入した、最後の(3機目の)マイコンボードです。
日本国内で使用するのも安心な、技適(特定無線設備の技術基準適合証明)マーク付きです。
こいつは、ピンヘッダが実装された状態で届きました。しかし、ピンヘッダが斜めにはんだ付けされてしまっています。お陰で、ブレッドボード(や、ユニバーサル基板)に挿さりません。ただ、これは購入ページの口コミに書かれていたので、承知しています。覚悟していたので、「やっぱりね」で終了。
実は、この機体も、Arduinoとして使用可能なボードなのですが、当面の間、ESP32をArduinoとして使う気は無いので、良しとしておきます。Arduinoとして使うつもりだったら、ブレッドボードに挿せないのは致命的ですけどね。将来、Arduinoとして使わざるを得なくなった場合には、一旦、ピンヘッダのはんだを吸い取って、真っすぐに矯正しないと使い物にならないと思われます。
では、どうやって使うか?と言うと、シリアルで接続して、デフォルトで搭載されているファームウェアを使い、ATコマンドで制御してみたいと思っています。
※Arduinoとして使う場合には、前節のSTM32と同様、セットアップ手順が必要です。本HPで使おうとしているATコマンドであれば、工場出荷時のデフォルトファームウェアに搭載されているはずなので、特にセットアップの必要はありません。
※逆に、Arduinoとしてセットアップして、プログラムを書き込んでしまうと、デフォルトファームウェアが消えてしまうので、本ページではArduinoとしてのセットアップは実行しません。
早速、USBケーブルを使って、PCに接続してみました。
今回も、先輩方のお知恵を拝借。
ESP32+ATコマンドの情報を検索する(別ウインドウが開きます)
どうやら、デフォルトの内蔵ファームウェアは、USB⇔UART変換ではなく、ESP32のUART#2でATコマンドを受け付けているようです。と、言うことで、三度登場FTDIの出番です。
PC | 接続 | ESP32 | 接続 | FTDI |
USB#1 | ⇔ | USB | ||
USB#2 | ⇔ | USB | ||
GND | ⇔ | GND | ||
RX2 | ← | TX | ||
TX2 | → | RX | ||
× | VCC (ジャンパを3.3Vに設定) |
ESP32とFTDIの両方とも、USBケーブルを使ってPCと接続します。ESP32の方は、電源を取るためにUSB接続しますので、PC本体など、しっかり電源を確保できる端子に接続してください。バスパワードのハブなどでは、電流不足で誤動作する可能性があります。
ESP32は、ブレッドボードに挿さらないのですが、上表の通り、FTDIとの接続は3本程度なので、デュポンワイヤ(メス-メス等)で事足りるはずです。
あと、FTDIは必ず、3.3V側に切り替えてください。ESP32のI/Oポートは5Vトレラントになっていないので、5V信号を直結してしまうと、絶対最大定格違反です。最悪、デバイスが壊れてしまうかもしれません。また、FTDIのVCC(3.3V)端子は、ESP32には接続しないように!電流容量が全く足りないはずです。
さて、ESP32の方は、電源を取りたかっただけなのですが、USBでPCとつながっているので、ちょっとややこしいことになるかも?
ATコマンドを使って、ある程度のネットワークアクセスができるはずですが、追々、試してみたいと思います。
ひとまず、ATコマンドを送信して応答が返ってくることを確かめられたので、初期チェックはOKとします。
では、今回のお買い物です。
「明日ほしい」という切羽詰まった状態では使えませんが、2週間のんびり待てる時間的余裕がある場合には、選択肢の一つとして考えたいと思います(個人の意見です(1^^;))。国内のショップに比べるとだいぶ安かったですし、配送料も無料でした。
ただ、今回全くトラブルが起きなかったので、何の参考にもなっていません。本当は、何らかのトラブルがあった時にこそ、良し悪しが明確になるものですから。もう何回か使ってみないと、信頼できるショップかどうか?答えを出すわけにはいかないと思います。
皆様も、各自の判断でショップを選定してください。