これまでのあらすじ:
2016年3月、フェルト生地を手で裁断している際にレーザーカッターがあれば複雑なカットが容易にできるなあと思って、安価になってきたレーザーカッターを購入しようと思ったのがきっかけ。調べていくうちに、合板も切れたほうがいいと思うようになって、CNCルーター(CNCミリング)についても考えるようになった。
Arduinoは以前から使っており、CNCシールドがあると気付いて自作も可能と思うようになった。当初はShapeOkoやX-CARVEを参考にMakerSlide、OpenRail、V-Wheel、2GTタイミングベルトなどで5万円くらいで自作しようと思っていた。AliExpressでも部品が安く買えることが分かって、しばらくは部品探し。探せば探すほど安くて本格的な部品も見つかってくるので、そんなにケチらなくてもいいのではないかと徐々にスペックアップ。最終的には剛性や精度のことも考えてボールスクリューやリニアスライドを使うことになり、予想以上に重厚な3軸CNCマシンをつくることに(約7万円)。
構想から約5週間(制作約3週間)でルーターとレーザーともに使えるようになり、現在はgrbl1.1+Arduino CNCシールドV3.5+bCNCを使用中(Macで)。余っていたBluetoothモジュールをつけてワイヤレス化。bCNCのPendant機能でスマホやタブレット上のブラウザからもワイヤレス操作可能。


CNCマシン全般について:
国内レーザー加工機と中国製レーザー加工機の比較
中国製レーザーダイオードについて
CNCミリングマシンとCNCルーターマシンいろいろ
その他:
利用例や付加機能など:
CNCルーター関係:

*CNCマシンの制作記録は2016/04/10〜の投稿に書いてあります。

2017年9月17日日曜日

UdacityのDeep Learningコース(無料)

今日(日曜日)は、Coursera(Machine Learning)のWeek4の締切日ですが、Week4とWeek5を一気にやってしまい、もうすでにWeek6に突入です。Week4からはニューラルネットワークで、Week5には難しいとされるバックプロパゲーションも登場してきました。
使用する言語であるOctaveにも徐々に慣れて来たのですが、いざ動画での数学的な説明をプログラミングコードに置き換えようとすると一筋縄ではいきません。というのも、動画は主に数学的な説明が中心であり、プログラミングとしてどう実装するかまでの説明はあまりありません。プログラミングに関しては、課題文にも多少手ほどきがあり、またサイトには課題ごとのResourcesページがあるので、それを読みながら実装していく感じです(この辺の説明文はすべて英語)。
やはり複雑な行列計算になるので、頭の中に行列のマトリクスがイメージできないとエラーばかりでてしまいます。数学的な数式をコード化するのはまたちょっとテクニックが必要という感じです。なので何回も再提出してようやくクリア。しかし、クリアしたからと言っても、完全に理解したかというと多少怪しいところもあります。なので、バックプロパゲーションについては、forループを使うコード、使わないコードの2種類を書いてみて試してみました。
以前は数式を見てもわからなかったし、当然数式の意味がわからなければ、コードを見ても分かるわけがなかったのですが、いまは見れば分かるというくらいには理解が深まりました。

Udacity: Deep Learningコース(無料):
予定より先に進んでいるので、またUdacityの授業のほうも見ていました。前回の「Intro to Machine Learning」と「Machine Learning」の2つのコースに関しては、概念を理解するにはいいかもしれませんが、プログラミングしながら学ぶという感じではないのでもうやめようかなと(そもそも無料なので辞めても構わない)。その代わりにUdacityにある「Deep Learning」コース(無料:3ヶ月)のほうが面白そうなので少し見てみました。
このコースはGoogleによってつくられたコンテンツのようですが、Googleのエンジニアっぽい人が講師です。やや真面目そうな感じで前述の2つのコースとは違います。レベルもAdvancedなので、ある程度機械学習をやってきた人が見る感じなのだと思います。
内容的には、基礎知識の説明が終わると、すぐにMNIST(手書き文字認識)、そしてデュープニューラルネットワーク、コンボリューショナルニューラルネットワーク・・・と進んでいきます。コンボリューショナルニューラルネットワークに興味があるので(そこまで行けるかわからないけれども)、やってみようかなと。ディープラーニングのコースとなるとだいたいが有料で、このコースだけは無料のため試して見る分にはいいかもしれません。

言語はPython、そしてJupyter notebook(iPython notebook)を使用して、GoogleなのでTensorflowライブラリを用いるようです。Tensorflowに慣れるにはいいかもしれません。Jupyter notebookは以前インストールしてあったので、そのまま使えました。一応細かい説明などしてくれますが、やはり上級者向けだけあって、どんどん先に進んでいきます。なんとなくTensorflowに触れておしまいというコースにも見えなくはないのですが。

現在進めているCourseraのMachine Learningコース(全11週)が終われば、できればディープラーニングへ移行していきたいと考えています。以下は有料ですが、今後の理解度によっては受講してもいいかと。
・Coursera 「Deep Learning」($49/月)
・Udacity 「Deep Learning」($399?)ナノディグリーコース


追記:
もう少しこのUdacityのDeep Learningコースを見続けて見ましたが、Deep Learningの概要を短時間で説明しているという感じでした。プログラミングの課題もいくつかあるのですが、その内容についての細かな説明などはなく、勝手に各自でパラメータを変えてみたりしてという感じです。Lesson3の中ほどでバックプロパゲーションも登場するのですが、約2分間でさらっと説明するだけです(以下がダイアグラム)。
どのような手順で演算していくかまでは説明がありません。ライブラリを使えばすぐに済んでしまうのかもしれませんが、その使い方の説明もないので、おそらくこのコースはざっくりとDeep Learningの紹介をしているレクチャーというかんじで、実際にプログラミングできるようになるためのコースではなさそうです。
Lesson4のコンボリューショナルニューラルネットワークまで見てみましたが、大まかな説明なので期待していたほどの収穫はありませんでした。やはり無料コースであるから、この程度なのかもしれません。
これに比べれば、CourseraのMachine Learningコースは、細かく計算方法まで教えてくれるので、プログラミングしたいという人にはいいと思います。もしくは、ディープラーニングを学ぶなら有料のコースのほうがいいのかもしれません。

2017年9月13日水曜日

Udacityの機械学習コース

前回投稿したCourseraのMachine Learningコース(全11週)を引き続き受講中ですが、Week4のニューラルネットワークは予定より早く終わってしまったので、先回りしてWeek5に入りました。

多少余裕ができたので、他にもこのようなコースがないかと検索していると、オンライン学習サイトとして、Couseraと競合しているUdacityというのもありました。以前はこのようなオンラインコースは、登録も含め面倒なイメージがあって試してみようとも思いませんでした(必要な知識やアルゴリズムなどはネット検索でも充分なので)。しかし今回、試しにCourseraを受講してみると、予想以上にためになるので、このようなオンライン学習サイトも悪くないなと思い始めました。

ということで、Udacityの中にも機械学習やディープラーニングのコースはいくつかあるので、試しにちょっとのぞいてみました。

Udacity:Intro to Machine Learning(無料:全10週間):
まずはこの「Intro to Machine Learning」というコースです。Introと書いてあるので初心者向けっぽいですが、いちおうIntermediate(中級者向け)となっています。
言語はPythonを使用、Pythonについての細かなプログラミング指導はないらしく、プログラミングの知識は多少必要なので中級者という位置づけなのかもしれません。それとできれば統計学の知識もあったほうがいいと言っています。そのためUdacity内の別のコースである「Intro to Descripitive Statisics」や「Intro to Inferential Statistic」も受講すれば手助けになると。
内容的にはこれまでの機械学習という感じで、ナイーブベイズ、サポートベクターマシン、決定木、線形回帰、クラスタリング・・・という流れになっています。

こちらもCourseraと同様に、動画を見て途中にクイズが挿入され、プログラミングコード演習もあります。CourseraのMachine Learningコースと比較すると、動画の画質やシステムそのものはかなり完成度があると言う感じです。
UdacityはGoogleやAmazonなどにも支援されているようで、さすがに潤沢な資金があるのかいろいろ工夫されている印象です。要点だけを説明していく真面目な大学の講義とは違って、ややカジュアルな感じで(たまにジョークなど入れながら)、TVの教育番組を見ているという感じです。楽しみながら(飽きさせずに)学んでいくという工夫がなされているのかもしれません(あるいはエデュテイメント:エデュケーション+エンターテイメントという感じなのかもしれません)。
動画は字幕があるものないもの、ばらつきがあります。日本語の環境はそれほど整っているとは言えません。英語の字幕はあるので、聞き取りにくい場合は英語字幕を手がかりに理解していくと言う感じでしょうか。

このコースは無料なので動画はYoutubeでも見れるようです。一つずつの動画は短いもので1分以内、長くても5分程度です。かなりテンポよく進んでいきます。このテンポの良さで、次の動画また次の動画とついつい見てしまい、気づくと1時間くらい経ってしまいます。延々と長たらしい説明を聞くよりはいいのかもしれません。このテンポの良さも工夫されている点かもしれません。

動画による説明の合間や終わりに、以下のようなクイズ画面が出てきます(画面が突然切り替わる)。

選択方式のクイズもあれば、数値を空欄に入れるタイプもあります。「SUBMIT ANSWER」を押すと正解/不正解が確認できます。不正解になっても特にペナルティなどはないようです。

さらにPythonによるプログラミング演習の画面にも自動で切り替わります。
ブラウザ上でPythonのプログラミングができて、「TEST RUN」を押せば内容を実行できます。Pythonは事前にパソコンにインストールしておく必要がありますが、このコースのために特に設定などせずにすぐに動きました。勉強している内容というよりも、このブラウザ内でPythonコードを実行できる仕組みに感心しました。
CourseraのMachine Learningコースの場合(Octave言語使用)、一旦サイトのリンクからプログラミング課題に必要なファイル群をダウンロードし、各自のエディタやターミナルを使ってプログラミングするという仕組みでした。課題提出はターミナル上からできるので、それほど手間はかからないのですが、ブラウザだけですべて可能なUdacityのこの仕組はかなり便利だと思います。

全体の10%くらいを一気に見てみましたが、Introというだけあって機械学習の予備知識なしで始められるという感じです。多少機械学習をやったことがある人にとっては、余計なジョークや冗長な説明が必要ないとも感じられますが、たまに抜け落ちている知識もあるので、とりあえず勉強してみる分にはいいと思います。UdacityもCourseraもスマホに対応しているので、アプリをインストールすれば、電車などのなかでも受講可能(受講というか普通に動画を見る感じ)です。


Udacity:その他のMachine Learningコース:
先程のコースとは別に機械学習なら以下のようなコースもありました。
強化学習や教師なし学習などのコースも別に用意されているので、もう少し内容を絞って勉強したい場合はこちらのコースがいいのかもしれません。

とりあえず、真ん中のMachine Learningコース(無料:4ヶ月間)をちょっと覗いてみました。
このコースは二人の男性が講師となって機械学習の基礎から教えてくれます。一人の講師が講義してくれるモノローグタイプとは違って、二人の講師がお互いに質問したり、つっこみを入れながらテンポよく説明していきます。やはり、講義というよりは教育番組と言ったノリでしょうか。ただ、その分やや早口の口語表現が多いので英語が聞き取りにくいかもしれません。ただし、しばらく聞いていれば、この人たちの声質に慣れてくるので次第に聞きやすくなってくるとは思います。内容的には、機械学習の初心者に合わせて細かい説明やクイズがあるのでわかりやすいとは思います。


その他の有料コース:
Udacityにもたくさんコースがあり、機械学習のほか、AI、ディープラーニングなどの興味を引くものとして以下。
AIだとこんな感じのコースがあり、レベルもAdvanced(上級者向け)で有料(1ターム/12週間/$800)。無料コースとは違ってナノディグリーという修了証が取得できるようです。おそらくシリコンバレーなどで働くIT関係の人たちが、ここでナノディグリーを取って即戦力となって先端技術領域で活躍できるようなプログラムになっているのかと。会社に入ってからいちいち新米に教育している暇もないので、このようなコースで事前に必要な知識とスキルを身につけておけということでしょうか。コースの説明を見てみても、このスキルを身につければ、最低でもいくらの報酬がもらえる仕事につけるということまで書いてあります。


そしてディープラーニングのコースだと、以下のような感じ。

特にDeep Learningのナノディグリーコース(有料:たぶん$399)は気になります。このコースはそれぞれCNN、RNN、GANなどに分かれた構成になっているので、特に興味のあるGANのコースは受講してみたいと思いますが、もうすでに受講締め切りしており、現在次回受講の予約を受け付けているようです。

講師の一人であるShiraj氏(上画像左)のYoutube動画はたまに見ていたので(このコースの動画だとは知らなかった)、どんな感じか予想できますが、Courseraのdeeplearning.ai(Andrew Ng)という選択肢もあり、お互いに競い合っているような感じに見えます。Udacityとしては、このDeep Learningコースは特に力を入れているのかもしれません。GoogleやAmazonの支援だけではなく、こういったYoutubeで人気のある人たちも巻き込んでより一層オンライン教育プログラムを充実させているようです。しかもかなりの経済効果もありそうです。もはや、教育コンテンツだけでなくエンターテイメントコンテンツ(エデュテイメント)という感じです。


感想:
いろいろ目移りしても仕方ないので、Courseraのコースが終わったら、つぎにどうするか考えてみようと思います。ノリとしては、やや真面目路線のCourseraのほうが好みですが、Udacityのような試みも気になるところではあります。コースの受講内容というよりは、何かを学ぶというスタイルが徐々に変化/進化していて、従来のような書籍(教科書)を購入して学ぶという方法、学校に通って学ぶという方法は、もはや必要ないのかもしれません。
日本国内にもこのようなオンライン学習サイトはありますが(以前Node.jsをドットインストールの動画を見て学習したことがある)、まだまだボトムアップ的な内容が多いようで、ディープラーニングなどのようなコンテンツはあまり見かけたことはありません。やはりこういうコンテンツはアメリカのほうが進んでいるのでしょう。

CourseraやUdacityは魅力的なコースが多いのですが、やはり日本人にとって問題となるのは英語でしょうか。特にプログラミング関係は元々英語表記なので、この際日本語を忘れて(英語の勉強もかねて)、普段から英語を使ったほうがよさそうです(いちいち頭のなかで日本語訳しないようにする)。英語における文学的なニュアンスは難しいと思いますが、このような理系の説明であれば、専門用語以外はそれほど難しい表現もなく端的で明快な英語なのでわかりやすいほうだと思います。特にプログラミングの場合は、コードや数式があるので、それらを見ていけば大体理解できると思います。

2017年9月8日金曜日

CourseraのMachine LearningコースとDeep Learningコース

前回のRaspberry Pi Zero Wのリチウムバッテリー化が中断しているのは、CourseraのMachine Learningコースに多くの時間がとられているためでもあります。


以前から、人工知能には興味があったので、ネットで調べながらTensorFlowなど試してはいました。サンプルを試してみると面白いのですが、細かな設定や自分なりに工夫してコードを書くということになると、基本を知らなければ、このライブラリ自体がブラックボックス化してしまい、それ以上活用することができなくなってしまいます。

個人的には機械学習やディープラーニングで何をしたいかというと、DCGANをつかった画像生成です(TensorFlowをつかったDCGANもできるらしい)。これは何かを解析したり分類したりするというよりは、学習させた画像をもとに、複合的な画像を新たに生成することができるようなので、やや創造的な行為に近いところもあり気になります。
ただ、一気にこのアルゴリズムを理解するには基礎知識がなさすぎなので、きちんと最初から勉強してみようと思ったわけです。当然、基本がわかっていないと機械学習の説明やサンプルコードを見ても、何がなんだか分からなくなってしまいます。

いろいろと検索していると、CouseraのMachine Learningオンラインコース(無料)が評判いいので受講してみようかと。さらには最近同じAndrew Ng先生のDeep Learning(deeplearning.ai)コース(有料:$49/月)も出来たようです。
おそらくこちらはもっと本格的なので、まずは基本からきちんと学ぶということで(無料でもあるし)、Machine Learningコース(11週)をやってみることにしました。Couseraにはその他にもたくさんのコースがあるので、ネット検索で必要な情報を得ながら独学してもいいのですが、このような無料(一部有料の場合もあり)のオンラインコースを利用したほうが効率がよさそうです。

Machine Learningコース(11週:無料):
一週間単位で次のステップに進んでいきます。現在3週目が終わろうとしています(あとはプログラミングの課題を提出するだけ)。毎週日曜日が締め切りなのですが、それまでにトピックごとの授業動画(一つ10分程度を複数)を見て、途中に出題される4択ミニクイズ、トピック最後に出題されるテスト(5問:4問以上正解で合格)ならびにプログラミングによる課題を提出します。受講と言っても、実際に講師と何かをやりとりするわけではないので、自分のペースで学んでいくことができます。いちおうForumがあるので、もしどうしても分からない部分があれば質問すればいいという仕組みです。
無料コースなので、タイミリミットはあるとは言え、遅れてもとくにペナルティがあるというわけではありません。あるいは、どんどん先にすすんでいっても構いません。
授業自体は基本英語ですが、動画には日本語字幕もあるので、英語でよくわからなければ日本語訳に切り替えて、再度動画を見るという感じにしています(復習も兼ねて)。ただ、専門用語が日本語化されると、微妙にニュアンスがかわって、かえってわかりづらいということがよくあります。テストの出題は英語なので、できれば用語などは英語で覚えたほうがいいような気がします。

コースの難易度:
最初の1週目や2週目は入門という感じでやさしいのですが、3週目からは少々難しくなってきました。ただ、内容は高度になっていくとは言え、どんどん便利なアルゴリズムになっていくので面白さと関心度が高まっていきます。やはり説明動画を何回か見て、途中に出てくる公式もその場で覚えていかないとダメと言う感じです。動画を一回みただけだと(10分間程度の理解)、概要を把握するだけになってしまい、覚えた内容をすぐにコード化できるかというと、そうもいきません。つまり、プログラミングできるレベルまでの理解を得るには何回か動画をみたり、ひとつ前に遡ったりしながら、ある程度の反復作業が必要という感じです。見たり読んだりするだけでなく、手書きのノートで覚えていったりしたほうがよさそうです。

Octaveという言語:
例えば、3週目の授業は合計すると3〜4時間あれば終わることになっているのですが(つまり一日30分程度やれば済むという計算になる、場合によっては1日で終わらせることもできる)、きちんと理解するには、その2〜3倍の時間がかかりそうな気がします。個人差にもよるのですが、ある程度復習したり、本や他のサイトなどで理解を深めていかないと、本当に身についたかどうかが怪しいという感じです。実際身についたかどうかは、プログラミング(Octaveという言語で)で書けるかどうかでも確かめることはできると思いますが、Octaveの使い方もある程度平行して勉強しないといけません。Octave自体は難しくないのですが、ちょっとした癖があるので、最初のうちは間違えないようにしないといけないと言う感じです。Octaveだとforループをつかわずに行列計算ができるので便利です。スマホにもOctaveが使えるアプリがあるので、簡単な演算などの練習はスマホで試したりもしています。

学習のペース:
ちょっと数日休んでしまうと、すぐに締め切り日が来てしまうので、毎日少しずつでもいいからコツコツやったほうがよさそうです。継続的に毎日やれば、それだけ頭にも入ってくるので、短期間に何かを覚えるなら、多少時間に追われながらでもやったほうがよさそうです。
コースはスマホでも見ることができるので、電車の中で勉強することも可能です。そうやって暇な時間を使って勉強していくこともできます。大学で数学をやっていたとか、仕事でこのようなことをやっているのであれば理解は早まるとは思いますが、専門領域でもない人にとってはきちんと理解するためには、多少まとまった時間を設けたほうがいいと思います。

まとめ:
おそらく人工知能や機械学習に関心を持っている人は多いと思います。機械学習についての概要を説明してある記事などを読んで、なんとなくどんなものなのかということを理解するまではいいのですが、突然複雑な数式が出てくると急に敷居が高くなって、その手前でやめてしまう人も多いと思います。個人的には、数学は高校以後ほとんどやっていませんが、プログラミングを通して、そのつど必要な計算方法を身につけていった感じです。つまり数学的な数式はあまり得意ではないのですが、それをプログラミングコードに置き換えてあれば理解しやすくなります。
しかし、数学やプログラミングのどちらもやったことがないとなると二重苦で難しいのかもしれません。さらには、Courseraの場合基本英語なので、英語も苦手だと三重苦になるのかもしれません。
とりあえずコース3週目までにも一見複雑な数式はいくつか出てきましたが、どんなことがなされているのか理解していくと、その数式の意味もわかってきました。複雑な数式を見ることにも慣れてきたと言う感じです。
機械学習を学ぶ上で、ネット検索すればたくさんの情報が見つかるので独学も可能ですが、その多くは概要的な説明であったり、要点をまとめたメモのようなものであったり、必ずしもこれから学ぶ人のための記述にはなっていないので、教えることに主眼をおいたCourseraのようなコースのほうがいいと思います。

次週(4週目)からはニューラルネットワークなので楽しみです。以前パーセプトロンまでは独学したのですが、多層パーセプトロンあたりから中断してしまっていたので、ここの壁を乗り越えられればと思っています。ニューラルネットワークあたりから面白くなってくると思うので、この機会に理解を深めておきたいと思います。

Raspberry Pi Zero Wのリチウムポリマーバッテリー化(その1)

Raspberry Pi Zero Wは、小型なのでそのままスタンドアロンで使いたいところですが、外部電源を接続するとUSBケーブルが邪魔だったりするので、なんとかならないかと、Raspberry Pi Zero Wの外形(65x30mm)にあったリチウムポリマーバッテリーを探していました。

Raspberry Pi Zero Wの短手30mmと同じ30mm幅のリチウムポリマーバッテリー。そして、リチウムポリマーバッテリー(3.7V出力)を使うからには、DCDC昇圧コンバーター(3.7V→5.0V)兼充電回路も必要。
青いアクリル板の上にRaspberry Pi Zero Wが固定されていますが、左側の長い部分は後からカットする予定です。

リチウムポリマーバッテリーに関してはアマゾンで探すとドローン用も含めいろいろありますが、やはりAliExpressで探すともっと種類があり少し安いので、今回もAliExpressから購入。
Raspberry Pi Zero WをWifiカメラとして使う予定でもあるので、バッテリー容量は1000mAh程度あったほうがいいかと。そうするとこのサイズのバッテリー(30x50mm程度)だと厚さが8mmくらい。つまりは、Raspberry Pi Zero Wの裏側に昇圧/充電回路とバッテリーを配置するのでこんなサイズにおさめてみました。

Raspberry Pi Zero Wとの電源供給ライン:
Raspberry Pi Zero Wに外部バッテリーから電源供給するには、いくつか方法があるようです。
(1)PimoroniのLipo SHIM(手っ取り早いのはこの部品、しかし充電機能がない)
(2)Raspberry Pi Zero WのGPIO2(5V)とGPIO6(GND)に接続(こちらのサイトを参考に

今回は元々ついているMicroUSB端子に直結している5V電源の端子(基板裏にある2つの端子:PP1とPP6)に接続することにしました。

これは↑、Raspberry Pi Zeroの基板裏面の画像ですが、PP1(5V)とPP6(GND)に接続するといいようです(Raspberry Pi Zero WにはPP1やPP6はプリントされていないのですが同じ位置にある端子です)。ここに直接ハンダづけしてもいいのですが、今回はポゴピンをつかって接続しようと思います。


ポゴピン:
Raspberry Pi Zero Wの端子に直接ハンダづけしてしまうと、交換するさいに面倒なので今回はすぐに脱着可能なポゴピンを間にはさみます。
今回用いたポゴピンは非常に小さく、直径1.5mm(下部の段の直径2mm)、高さ3mm程度です。内蔵してあるスプリングで先端の丸くなっている部分が約1mm沈みます。右側の黒い円筒形のものは、このポゴピンを保護するためのもの?
AliExpress.com Product - 10pcs Ultra small spring loaded pogo pin Diameter 2.3mm 3.0mm heigth brass material with Gold plated 1u 331円(10個セット:送料無料)。

このポゴピンを2mm厚のアクリル板に1.5mmと2mmの段差のある穴を開けて差し込みます(以下)。

そうすると、こんな感じになります。通電テストしてみると大丈夫そうでした。そしてこのポゴピンの底面(上画像では上面)に導線をはんだ付けし、昇圧/充電回路と接続する予定。
ここまでの作業はCNCマシンを使えばよさそうですが、実は手作業でやっています。というのも、まだ試作段階なので、各寸法や部品の配置位置を検証していると言う感じです。


昇圧充電回路:
リチウムポリマーバッテリーの昇圧充電回路もいくつかあります。今回探しているのは、5V電源供給可能かつバッテリー充電可能な回路。
(1)18650モバイルバッテリー内の回路流用(安い:AiExpressで100円程度)
(2)アマゾンでも購入可能なTP4056搭載の回路(安い:100円前後)
(3)Wemos Battery Shield(AliExpressで200円前後)
(4)AliExpressで売っている昇圧充電回路(300円前後)
(5)Adafruits PowerBoost1000 Charger($19.95:かなり高い)
というかんじで、候補はこれくらい。

(1)の18650モバイルバッテリーに使われているUSBコネクタ付きの昇圧充電回路。ダイソーでも300円で売っているようですが、AliExpressなら100円以下。ただしバッテリー(18650)は含まれていません。
AliExpress.com Product - Blue Portable Mini 18650 Battery Charge Box Case 18650 External Backup Battery Charger With Key Chain f#UO87円(送料無料)。安いので、ここから部品取りをするといいのかもしれませんが、実はこの回路、充電時は放電シャットアウトするタイプのようです。つまり充電しながらの使用(放電)はできないようです。
(2)のアマゾンでもよく見かけるTP4056搭載の昇圧充電回路。
HiLetgo 3PCS TP4056 1A リチウム バッテリ 充電ボード ミニ USB 充電器モジュール 4.5V-5.5V [並行輸入品]
HiLetgo
Amazonで詳細を見る
3個で120円なので、かなり安い。中国製基板には品質のばらつきがあるので複数買って比較しながら使うといいと思います(どれかが不良品という場合もあるので)。
この基板は充電放電を同時にできますが、USB接続時(充電中)は出力端子からは4.2Vが出ているようです。そしてUSB充電を外してバッテリーだけで駆動すると3.7Vが出力されます。つまり出力が5Vではないので、5Vが欲しいならさらに昇圧回路が必要となります(降圧して昇圧するためロスが大きい)。

(3)のWemos Battery Shield。
AliExpress.com Product - Battery Shield V1.1.0 For WEMOS D1 mini single lithium battery charging and boost
259円(送料込み)
これはESP8266のWemos D1 mini用のバッテリー充電シールド。この基板だけで充放電可能。
USB接続中は5Vがそのまま出力されるようです。バッテリーだけでの出力については、まだ未検証(ブーストしてくれるようなのでおそらく5V出力)。D1 mini用のシールドなので端子が両端に並んでいるぶん、やや大きい。

(4)AliExpressでその他リチウムバッテリー用の充放電回路を探すと、
こんな回路も売っています。350円(送料無料)。充放電可能で、InputにUSB接続(5V)、Outputが5VなのでそのままRaspberry Pi Zero Wの5V入力に使えそうです。現在の候補はこれ。サイズ:23x15.4mmも比較的小さい。

(5)Adafruit PowerBoost1000 Chargerもよさそうなのですが$19.95と高い。
右下に見えるのが、PowerBoost1000 Charger。これも充放電可能のようで便利そうですが、とにかく高い。それと想定しているサイズより少し大きめなので候補から除外。23x45mm。

ということから、(4)の基板にMicroUSB端子(メス)を接続して使う予定です。それぞれ安いので購入して試してみました。
左から、(4)、(2)、(3)、(1)です。それぞれかなり小さいのですが、(3)のWemos用のバッテリーシールドだけちょっと大きめ。機能的には左端の(4)がいいのですが(5V入力、5V出力、充放電同時可能)、MicroUSB端子(メス)をはんだづけしなければいけない。それと、電源ON-OFFスイッチもつけなければいけない。

リチウムポリマーバッテリー:
バッテリーのほうはというと、様々なサイズがありますが、Raspberry Pi Zero Wのサイズが65x30mmなので、30mm幅のもので1000mAh程度を探すと、

AliExpress.com Product - 3.7V,1000mAH,[803040] PLIB; polymer lithium ion / Li-ion battery for GPS,mp3,mp4,mp5,dvd,bluetooth,model toy616円(送料無料)、40x30mm、厚さ8mmで1000mAhというのがあります。1200mAhだと50x30mmというのもあります。だいたいこのあたりのバッテリーを採用。保護回路もついているので、そのまま使えます。そこそこ厚みはあるのですが、充放電回路のスペースも含めRaspberry Pi Zero Wの外形にはおさまる感じです。
という感じで、パーツ類はほぼ揃ってきたのですが、一旦中断しています。このRaspberry Pi Zero Wとリチウムポリマーバッテリーを一体化して、さらにはカメラも装着して、コンパクトにまとめたIPカメラをつくることがとりあえずの目標です。

2017年7月31日月曜日

ワイヤレス充電器(USB:5V)

ワイヤレス充電器を購入してみました。あいかわらずAliExpressで数百円で売っていたので試してみたという感じです。

AliExpress.com Product - Ifavor Universal Qi Wireless Charging Kit Charger Pad Coil Receiver Charger Adapter For Samsung Xiaomi Android Phone Micro USB515円(送料無料)、受電(左)と送電(右:直径70mm)のセット
左側の受電用の薄っぺらいカードは厚さ1mm程度で、スマホケースを使えばスマホの裏側におさまります。ただ、MicroUSBの差し込む向き、あるいはタイプCやiPhone用のものなど、選択する必要があります。

AliExpress.com Product - Android Micro USB Universal Qi Wireless Charger Receiver Charging Adapter Receptor Receiver Pad Coil Chip For Samsung HUAWEI131円(送料無料)、受電用のカード(コイル)だけ。スマホ以外にも使えるかもしれないので、MicroUSBの向きが逆のタイプも購入してみました。

こんな感じで、受電用カード(右)は厚さ1mm程度なのでスマホケース内部に収まります。受電カード上のワイヤレスマーク(((●)))側が充電器(給電器)と向き合うように配置します。距離的には、8mmくらい離れていても給電できました。

受電用カードの裏には、5V/1000mAまでの出力と書いてあります。給電用の丸い充電器は5V/1500mAまで入力可能のようです。
Amazonでも購入できますが、やはり少し高い。

ESP8266への給電:実は、スマホ用充電器として購入したのではなく、以下のような使い方を想定していました。
ESP8266に接続して5Vをワイヤレスで給電。安定はしないかもしれませんがESP8266だと一応動くようです。


受電用カードとブレッドボードはほぼ同じサイズ。

間に電圧電流計をはさんで計測してみると、安定しているときでは0.11Aくらいでしたが、0.4〜0.25Aの間を上下していました。不安定なときは4.8Vに下がるなど、充電器の位置が多少ずれると電力が変動しているようでした。
Raspberry Pi Zero Wへの給電:試しにRaspberry Pi Zero Wも接続してみましたが、もっと電力が必要そうでダメでした。
たまに安定して起動するときもあるのですが、電圧が5.0V以下になることもあり不安定で途中で落ちてしまいます。もう少し強力な充電器が必要そうです。ちなみに、Raspberry Pi Zero Wの場合は、
18650(一本)のUSB電源であれば動きますが、右端の単3電池を2本使うタイプ(100均)のUSB電源だとやはり電力不足。ということから、18650の電源を使ったほうがよさそうですが問題はケーブルが邪魔。ケーブルを使わないで直接Raspberry Pi Zero Wに配線してしまったほうがコンパクトになりそうです。Raspberry Pi Zero Wの裏側に電源の端子があるのですが、そこに直接ケーブルをハンダつけするというよりは、以下のようなポゴピンコネクターを電気接点に使うとよさそうです。
AliExpress.com Product - 10pcs Spring Loaded Pogo Pin Connector Diameter 2.0 mm x 7.0 mm height SMT / SMD PCB brass Gold plate 1u 50g force Probe Pin505円(10個:送料無料)

ワイヤレス充電器の部品:再び、ワイヤレス充電器についてですが、以下のような5Vで2Aまで流せる部品もあります。これを使えば、Raspberry Pi Zero Wも起動するのかもしれません。
AliExpress.com Product - 5V2A Large current wireless charging module Wireless power supply module free shipping1332円(送料無料)ある程度容量があるので、これは何かに使えそうです。
AliExpress.com Product - Universal Charging Receiver Charger 3 Coils Qi Wireless Charger PCBA Circuit Board Coil Wireless Charging Micro USB Ap 25 472円(送料無料)、こちらは3個コイルがついているタイプで強力そうです。その分、横長になっています。ある程度安定して給電するには、これくらいのほうがよさそうです。
テーブルに給電器を埋め込んでおけば、ただそこに置くだけでちょっとした電化製品なら電源が入る仕組みになりそうです。ノートパソコンなどもそうなればいいとは思いますが、そこまで強力だと電磁波など問題にならないのでしょうか?

ワイヤレス充電器内蔵型家具:IKEAの家具の中には、ワイヤレス充電器を埋め込むためのキットが売っています。
IKEAワイヤレス充電ユニット:3000円直径9cm、5V/2000mAなので、スマホやタブレット程度なら充電が可能なのかもしれません。

このように既存のテーブルなどに穴を開けて埋め込むようです。

すでにワイヤレス充電器が埋め込まれているベッドサイドテーブル:6999円もあるようです。家具も電源が必要になってきたという感じです。

人気の投稿