マイコン安すぎる 日本大丈夫か?
3Dプリンターを作ったのが先だったか、arduinoマイコンで遊びだしたのが先だったか
忘れてしまったのですが、最近のマイコン市場安すぎてヤバいです。
下の方で互換機ですが、300円台で買えてしまいます。
最初は300円台のarduino nanoはなく、pro miniを使っていたのですが、
pro miniにはUSBコネクタがついていませんので、シリアル変換モジュールを使うか、
手元にunoや、nanoが余っていれば、ArduinoISPというスケッチを使って書き込む
事になります。
シリアル変換モジュールはESP8266など、他にもUSBポートを持たないマイコンボード
は色々ありますので、1個は持っておいた方が良いですね。
下の写真はarduino nanoにArduinoISPというスケッチを使って、pro miniに書き込む際の写真です。
nanoにArduino ISPというスケッチを先に書き込んだ状態で、パソコンをnanoとUSB接続して、arduino ISP書込みという方法で、pro miniにスケッチを書き込みます。
この時、通常の方法で書き込むとnanoの方にpro mini用のスケッチが書き込まれてしまいます。(間違ったからまたISPの書き込みからやり直せばいいのですがね)
この方法については、ここのブログを参照しました。
http://n.mtng.org/ele/arduino/ArduinoISP.html
AVRを対象に書かれていますが、ようはパソコンからUSBポートを使って、書込み側の
arduinoに送り、書込み側のArduinoが11,12,13番ピンを使って、ターゲートのUARTポート
からスケッチを書き込むという事をしているだけですので、ターゲットのUARTポートと
ちゃんと繋がっていれば、応用できます。
ちょっと伝えたかった事から脱線しましたが、nanoがこの安い値段で買えるのなら、
とりあえずこれだけでいいじゃんという話ですw
上は大きさ比較の写真で、上からサイズ比較用の消しゴム、nano、
pro mini、ESP8266(秋月製)となっています。
nanoと、pro miniはそんなに違いはないので、今後はサイズにこだわらない限り、
nano互換機になりそうです。
しかも、nanoは普通にブレッドボードに差せるので、unoより使い勝手がいいです。
注意点としては、いままで使った互換機は、シリアル通信用のチップにCH340という
ものが使われており、そのままではUSBポートが認識されないので、ドライバーを
インストールする必要があります。
CH340 USBシリアル変換ドライバ | ネクストステップ サポートBlog
USBポートさえ繋がれば、あとは普通に使えるものばかりでしたので、互換機で
全然OKだと思います。
しかも、中国から送料無料で届くんですよ。 2週間とかかかるのですぐに欲しいって
時はダメですが、なんたってこの安さは脅威的です。
arduinoは8ビットなので、メモリなどの制約を受けやすいし、ESP8266は32ビットarduinoとして考えると超優秀なのですが、I/Oが少ないのと、タイマーが1個しかないのが欠点でした。
しかし、この二つをI2C通信などで組み合わせれば最強だと思うんです。
安いし、WIFIできるし。
2足歩行ロボットのコントローラには、STBeeminiを使っていたのですが、
ESP8266+nanoを使って、iphoneから操作できるように改造しようかなぁ
マイコン大昔にやっていたのですが、arduinoを始めたのは実はまだ2年ほどです。
とにかく昔では考えられない値段で、すごい事ができてしまう時代になりました。
開発もわかってこれば超簡単です。
しかも中国から送料無料で数百円の品物が買えてしまいます。
船便で大量に送るから時間がかかるけど安くできるのでしょうけど、港から自宅までの
国内はどういう仕組みになってるんでしょうね。
たしかに製品の見た目や、梱包は雑ですけど、使えないわけじゃないし、
日本も送料なんとかしないと対抗できない気がします。
HiLetgo New Pro ミニ ATmega328P 5V 16M リプレース ATmega128 Arduinoと互換 [並行輸入品]
- 出版社/メーカー: HiLetgo
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
HiLetgo Mini USB Nano V3.0 ATmega328P CH340G 5V 16M マイクロコントローラーボード Arduinoと互換
- 出版社/メーカー: HiLetgo
- メディア: エレクトロニクス
- この商品を含むブログを見る
3Dプリンターの基本6(3軸ロボット)
3Dプリンターが騒がれていますが、作ってみたら枯れた技術の融合活用でした。
昔からある3軸ロボットの先端に、基本2で説明した熱で溶かした樹脂を送る機構を
くっつけ、これも昔からCAMで使われているGコードを利用しているだけです。
制御関係をやっている技術者なら、なんだそんなものかと思うはずです。
実際、自分もそうでした。 ただわかってみればなーんだでしたが、そんな使い方があったのかという意味で、目からウロコではありました。
光造形にしても同じで、昔からある光硬化樹脂と、直動軸を組み合わせ、ソフトで
スライスした形状を1枚ずつ照射し固めていくだけです。
なので、機構部としては特に特殊なものではなく、すごいのは3DCADや、それを
輪切りデータにするソフト(スライサー)、Gコードを解析して、ステッピングモーターを動作させる基本ソフト(marlin等)が無料で手に入るって事なのです。
で、本題に入りますが、3軸機構をどうするかで、3Dプリンターの種類が変わってきます。 reprap機ですと、mendelや、prusaなどが有名かと思いますが、制御は同じで
3軸機構が違うだけです。
1.Z軸にX軸が乗り、そこにエクスるトルーダがついて、Y軸のベースが移動する。
2.XY軸にエクストルーダーがついて、Z軸のベースが上下する。
3.デルタ式(ようはパラレルリンク機構)
そこにあとは、スライド部にどんな部品を使うか、全体のデザインをどうするかだけです。
説明になってないと思いますが、技術屋が説明するとこうなりますw
スライド機構はいろいろな種類があり、お金がかかる部分でもあり、うまく作れば、
安くできます。
自分の場合は、アルミフレームと、市販の樹脂ベアリングと、3Dプリンタ部品の組み合わせになりました。
3Dプリンター作りは昔やったブロック遊びに似ています。
作っては、組立て、組み立てるともっと良いアイデアが湧いてきて改良する。
その繰り返しが、ブロック遊びのように簡単にできるようになります。
先に脳内で組立られれば、その手間がいらないのですが、やはり脳内で想像したものと
、実際目にした時の感覚とは違いがありますので、脳内のイメージを簡単に具現化できる3Dプリンターがあると創作意欲が湧いてきますね。
自分の感覚としては、新たな電動工具って感じで扱っています。
電動ドリルや、ジグソーの横に3DプリンターがあってDIYを楽しむってのがあってる
かなぁ~
3Dプリンターの解説をしてみようと始めましたが、三日坊主の性格が災いし
更新が滞っています。
しかも、今回はほぼ解説になってない気がしますw
とりあえず改良した装置の写真を載せますので、機構部に注意して眺めてみて下さい。
2号機は、ベース部分が周りのアルミフレームに当たってしまい、造形エリアが小さく
なっていましたので、アルミフレームの長さを変更して、XYは200mmm×200mm
高さも200mmまでできるようにしてみました。
アルミフレームも少し割高ですが、黒にした事で少し高級感がでたと思います。
ベースヒーターもつけたので、造形がさらに安定しました。
また、LCDユニットも追加してみました、SDカードも使えるのでPCがなくても
印刷することができるようになりました。
追加にあたっては以下のサイトを参考にしました。
http://3dp0.com/full-graphic-smart-controller/
表示のところも MKprinter に変更してみました。
windows10のアップグレード通知を停止する方法
最近になってようやくwindows10のアップグレード通知を回避できるようになったので、書いておきます。
タスクバーの上でマウスを右クリックして、タスクバーのプロパティを表示させます。
通知領域のところのカスタマイズを左クリックします
タスクバーに表示するアイコンと通知の選択の中から、GWXの項目を
探し出し、アイコンと通知を非表示とし、OKを押します。
これだけです。 (正確には再起動が必要です)
他にGWXの更新プログラムを消すように説明しているブログ等が見受けられますが、
これをすると、GWXの更新プログラムが変わった場合に再インストールされて、また
表示されるようになってしまうので、消さない方が良いみたいです。
いままでもあったのかわかりませんが、マイクロソフトの公式ページで紹介されていたので、大丈夫かと思います。
この方法を見つけるまで、マイクロソフトに苦情メールを送ったり、消費者センターに
問い合わせたりしましたが、拉致があかず、どうしたものかと困っていたのですが、
いまのところは再表示されることなく済んでいます。
制御用のPCの場合、必要最低限の機能さえあればいいので、よけいな事はしたくなく、windows10の更新広告は非常に迷惑していました。
親切の押し売りというか、アップグレードしたくない人は、その場で非表示設定が出来るようにするべきと思います。
制御用に機能を限定して、アップグレードせず20年は使えるOSないですかね~
そんな事もあり、最近は制御にPCを使うのは極力さけるようになりつつあります。
IT関連の日本企業の衰退が顕著になってきていますが、こんな時代だからこそ、
制御用の日本製OSできないですかね~
中国製のマイコンを使って、3Dプリンターを作っていると本当に危機感を覚えます。
3Dプリンターの基本5(モータードライバー)
前回はステッピングモーターの話をしましたが、今回はドライバーと呼ばれるものの
話をします。
パルスを出せばモータが回転すると言いましたが、実際にはもう少し複雑で
定電圧制御とか、定電流制御とよばれる回路が必要です。
あとパルスモータの種類としては、バイポーラ型とユニポーラ型があります。
ちなみに3Dプリンターで使うのはバイポーラ型を定電流制御で使います。
詳しい解説は検索してもらうとして、3Dプリンターでよく使われるA4988という
基板はこの定電流制御を行う基板です。
定電流制御は複雑なんで専用ICがあるんです。
A4988以外にも、easydriverや静音化できるというTMC2100などもありますが、
みんなやってることは定電流制御です。
arduinoからのパルス信号は5Vなので、そのままでは力が出ないんですね~
なので、12V電源からパワーをもらい、5Vのパルス信号に合わせた電流をモータに
流す役目がA4988なんですね~
モータには定格電流というものがありまして、電流をたくさん流せば力は出ますが、
あんまり流すと壊れちゃうよって事で、安全に一番力を出せる電流値の事をいいます。
3Dプリンターに使うモータはこの定格電流が2Aくらいで、A4988は出力電流2Aという仕様になっています。
電流値はボリュームで多少調整できるらしいのですが、電流を測るのは難しいんですよね。
電圧換算で測定できるようですが、小さい部品で測定時に手が滑ってショートさせそうなので、いまのところ購入時のまま無調整で半年くらい使っていますが、今のところ問題はありません。
そして実はこのA4988、電源電圧は35VまでOKなんです。
とういう事は12V電源じゃなくて、24V電源電圧でやればもっと電流値の少ない電源でモータを動かせるはずなんです。 電源電圧については、ヒーターのところでも解説しますので、とりあえずここまで。
A4988 5個セット ステッピングモータードライバ NEMA17 3Dプリンター RepRap RAMPS 1.4
- 出版社/メーカー: smartDIYs
- メディア: その他
- この商品を含むブログを見る
3Dプリンターの基本4(ステッピングモーター)
3Dプリンターの基本部品にステッピングモーターというものがあります。
一般の人にはあまりなじみのないものだと思いますので、ステッピングモーターとは
なんぞやって話からしたいと思います。
普通のモーターは電気を流すと一定方向に回転を続けます。
ステッピングモータはパルス信号と呼ばれる信号を受け取ると、そのパルス数に応じた分だけ回転するというものです。
そして、1パルスでどれだけ回転するかというのはモータの仕様に明記されています。
3Dプリンターの場合は1.8deg とか 200P/R(1回転するのに200パルス必要という意味 360度/200で1.8度)というものを使います。
大きさも42mm角のものがよく使われています。
このあたりも、どうとでもなるので、大型機で力がいればもっと大きなものを使えばいいわけです。
例えば上記モータに対して5000パルス出力したなら、5000/200で25回転するという事です。 そして速度はどうなってるかというと5000パルスを出すのにどれだけ時間をかけるかということで、ゆっくり5000パルスをだせば、ゆっくり回転し、速くパルスを出せば速く回転します。 ただしあまり速くパルスをだしたり、
モータの出力に対して負荷が大きすぎるとモーターが追従できなくなり脱調という現象になります。 (指示したパルス量より少ない移動量となる) 速度が速いとトルクも落ちますので、トルクの強いモーターにするか、負荷を軽くするかが、どれだけ速く脱調せずに動作できるかという設計の肝になります。
そして、arduinoはこのパルス信号を簡単に作る事ができるんです!
わかれば簡単なんだけど、ほんとによくできたシステムですよ。
それから、
MKprinterの特徴としてH_botという構成にしています。
これは、モータ2個を同時に回転して、回転方向の組み合わせにより、X方向、Y方向
に水平移動させるという機構を採用しています。
MKprinterの場合、Z軸は門型で支えて独立していますので、XY軸にはZ軸の重さはかかりません。 XY軸にかかるのは造形テーブルと、スライダーのすべり抵抗だけですので、負荷が軽い上に、常にモータ2軸で動作する事により、モータートルクは2倍になります。
なので、かなり高速で動作させることが可能です。
フィラメントを溶かす速度が関係しますのでMAX速度での印刷はできませんが、調整次第でかなり速く動作させることが可能です。
現在は市販のプリンターと同程度の速度ですが、実力はもっと上にあると思っています。
3Dプリンターの基本3(制御編)
今回は制御基板について説明したいと思います。
安価で売られている3Dプリンターで一番よく使われているのは
arduinoという8ビットのマイコンボードだと思われます。
MKprinterもこれを使っています。(MKprinterってのは自作機の名前です。
とりあえず、自作機っていってもキットを買って作ったものも自作機に含まれるので、
オリジナル性を強調する為に名前をつけてみました。)
arduinoプロジェクトという、reprapと同じくオープンソースなプロジェクトから
派生し、いろいろな種類のマイコンボードが出ています。
arduinoといっても、uno、mega、duoなどの動作電圧や、入出力、メモリの違いで
いろいろな種類が出ています、回路図なども公開されていることから、互換機も多数出ています。
3Dプリンター用に開発されたわけではなく、reprapプロジェクトの中で汎用マイコンボードのarduinoを選択したということですね。 中身がわかればこれまたarduinoではなくて、STM32などの32ビットマイコンなんかでもよいわけで、このあたりはいつか挑戦しようと
思っています。
またネットで中華製などを買うと、USB通信のチップの種類が違っていたりしますので、そのあたりは注意が必要です。 私の場合、unoを購入して普通に遊んだあと、3Dプリンタ用にmegaを購入したのですが、arduinoIDE(開発用のソフト)から認識せず困りました。 基板をよーく眺めて、unoと違うチップが使われている事がわかり、品番をネットで検索したら、CH341Gという通信用のチップだとわかりましたので、ドライバーをネットからダウンロードしてようやく通信ができました。
初めてaruduinoを使用する場合はunoなど安いものを買い、遊んでみると良いかもですね。 megaは、ramps1.4という拡張ボードが使えるのと、メモリ、入出力が多くなっています。
回路がわかればrampsはなくても良いのですが、配線が簡単で綺麗にできるので使用しました。
実際MKprinterに必要なのはステッピング用に出力が6×4で24、ヒーター用に2で合計26、入力が温度センサー2、原点センサー 4つで 合計6個でいいんですよ。
leonardoでも作れそうですね。
さて、ramps1.4という名称がいきなり出てきましたが、これは3Dプリンタように作られた拡張ボードで、センサーやステッピングモータ用のドライバーを簡単につなぐことができます。
A4988というのがステッピングモータ用のドライバーというもので、このあたりの
説明はまた次回にします。
【3Dプリンター基板セット】 RAMPS 1.4 互換キット Mega 2560 R3 + A4988 + RAMPS 1.4 Controller Reprap
- 出版社/メーカー: asshop
- メディア: その他
- この商品を含むブログを見る
3Dプリンターの基本2(熱溶融)
3Dプリンター(熱溶融式:今後は省略します)の基本として大事なところは以下の3点です。
制御的
1.フィラメントを溶かす。
2.溶けたフィラメントを積層する。
3.3Dデータのコントロール
ハード的
1.フィラメントの押し出し機構(エクストルーダ)
2.3軸ロボット機構
3.制御基板
ぶっちゃけフィラメントはある程度やわらかくて、押したらにゅるにゅる~と出て
積層しても崩れない材料だったらなんでもできるんです。
3Dデータから、3Dプリンターに加工データを送ると、溶けた材料が制御コードにしたがって、積層するだけなんです。
なので、ケーキのクリームだとか、セメントだとかを使っても押し出す量を一定にできればそれでもいいわけです。
3Dデータをウェハースのように何層もスライスしたデータを作り、XY軸がそのデータにそって動き、Z軸で高さ方向を変化させ、エクストルーダで速度にあわせて、押し出していくだけなんです。
難しいのはソフトウェアなんです。
でも幸いにしてreprapプロジェクトというイギリスの偉い先生が作ってくれたもののおかげで、3Dデータを輪切りにして、さらに3Dプリンター用の制御コードに変換してくれるプログラム(スライサーと呼ばれるソフト)や、その制御コードにそって、3Dプリンターを動かすプログラム(Marlinなど)が無料で手に入ります。
そして、制御ボードもarduinoというこれもオープンソースはマイコンボードを使う事で
簡単にできてしまいます。
主な使用部品は以下になります。(自作機仕様)
1.ステッピングモータ4軸(X軸、Y軸、Z軸、エクストルーダ)
2.制御ボード(arduino、ramps基板、モータードライバー基板(4個))
3.12V電源
4.エクストルーダ(材料押し出し部)
5.ホットエンド(フェラメントを溶かすところ)
6.ホットエンドノズル(溶けたフィラメントが出てくるところ)
0.3mm、0.4mmがポピュラー いろいろある
7.アルミフレーム(骨格と、スライド機構兼用)
8.ベアリング
(アルミフレームと組み合わせてスライド機構に利用)
(プーリの代用、Z軸の垂直調整に利用)
9.タイミングベルト(ステッピングモータの回転をXY軸動作に変える)
10.全ネジ(ステッピングモータの回転を垂直動作に変える)
11.カップリング(ステッピングモータと、全ネジをつなぐ)
12.ベース板(造形物が乗る場所)
13.フレーム接続部品(アルミフレームの補助部品や、ないものは
3Dプリンター初号機で製作)
以上の部品のなかで、大きく値段の差があるのが、モーター、電源、
エクストルーダー、ホットエンド、スライド機構です。
私は秋月の700円の品物を使っていますので、4個で2800円です。
ですが一般的に、3Dプリンター用として売られているものは2000~4000円もします。(調べれば大きな違いはありませんよ)
重要なのはスライド機構とZ軸機構です。
1層ずつ積み重ねていきますから、Z軸に対して水平が出ていなければ、左右で高さ
が違ってきますし、垂直が出ていなければ、できあがりが斜めになってしまいます。
そこで、市販品ではリニアレールや、リニアブッシュなど精度の出る部品を使っているのですが、これが高価でリニアレールなどを使えば、1軸で1万円とかするので、4軸使えば軸のみで4万となってしまいます。
アルミフレームは安いですが、ねじれや、たわみに強く、面精度もそれなりにあります
ので、3Dプリンターレベルでの精度であればまったく問題ないと考えます。
また、枠にもアルミを使うことで、取り付け位置を調整でき、直行度を調整しやすくしました。
電源は12Vで30Aほどの容量が必要(容量が少ないと、モーター作動時にホットエンドの温度が下がったり、モーターを動かす電力が足りないなどの不具合がでます)
なのですが、これもピンきりで高いものでは数万円~2000円くらいの幅があります。
ネットで探すといろいろ見つかりますが、安いものは出力は問題なくてもファンの
音がうるさかったりします。
自作機のプリンターで自慢が出来るところとすれば、直行度、垂直度、水平度の精度
が要求される部分を簡単に調整できるという事です。 しっかり調整できれば、必ず満足できる造形物が出来上がります。
初号機は、中古のリニアシャフトと、アルミ板で製作しましたが、とにかくXY軸さえ
しっかりできればなんでもいいんです。
あとは、モーターが何回転したら、何ミリ動くんだよとか、最大移動量だとか、基本的なパラメータを書き換えてあげるだけなんです。
この設計を応用すると、1m×1m×1mなんてサイズも5万円くらいでできる計算なのですが、置き場所と、お金がないので作っていません。
精度も心配ですが、このサイズだとノズル系3mmとかじゃないと時間がかかってしょうがないでしょうから、そう考えると全然問題ない気がしますけどね。