工業用制御ユニットと産業用制御ユニットの構築

http://hackaday.com/より。

BUILDING AN INDUSTRIAL CONTROL UNIT WITH AN INDUSTRIAL CONTROL UNIT

おおもと。。
nicolacimmino/PLC-14500

ラダー式のリレーPLCだそうです。
おおもとのGitHubのページには回路図等々あり、多分オープンソース。。



どれくらいの規模のラダープログラムが書けるのでしょうか。。
スポンサーサイト

テーマ : 自作・改造
ジャンル : コンピュータ

OPENHANDはウレタンキャスティングで3Dプリントを組み合わせ

http://hackaday.com/より。
OPENHAND COMBINES 3D PRINTING WITH URETHANE CASTING

元ページ
YALE OPENHAND PROJECT

米 イェール大学大学のオープンハンドプロジェクトの一環で、手の部分の図面が公開されてる様子。

このプロジェクトを進めてるThe Yale GRAB LabOpenRobotHardwareとゆうこともしているようです。






HowToMakeまで。。





コレ作って、門型NCフレームのスピンドル部分につけると、擬似クレーンゲームがたのしめるかしらん??


テーマ : 自作・改造
ジャンル : コンピュータ

XMEGA32D4で秋月小型I2CキャラクタLCDモジュールを使ってみる。

秋月電子で売っているATXMEGA32D4を使って同じく秋月電子で売っている小型I2Cキャラクタ液晶に表示させてみました。

xmegalcd.jpg

Arduinoとその互換ボードを使えばそんなに難しくないと思われることですが、自己用のXMEGAのボードを作ってみたので。。

私はプログラマブルなものが苦手なので、色々とインターネット上を徘徊。

最初はAtmel提供のASFとゆうAPIやサービス群を使ってみたのですが、上手くいかず。
私の使い方が悪かったからだとは思いますが、、、。。

AVRFREAKSのフォーラム内のXMEGAについての記述、「No frills XMEGA sample code for newbies」内の一番下にとてもシンプルなI2C通信の記述を見つけました。

XMEGAについてのペリフェラルの使い方についての記述は英語や、ヨーロッパ諸国の言葉でですが結構な量がWeb上にあるのですが、I2Cについてはあまりなかったのでとてもありがたく思います。

このコードを見て思うのですが、とても簡潔に、また、他API等を使わず、コンパイル後のバイナリサイズもASFを使うよりも小さくなります。
ただ、ホントに通信をするだけ、なので、LCDモジュールへのコマンドの送り方は自分で考えなければなりません。
しかし、Arduinoやその互換ボードや、PIC等々での記述と解説は日本語のWeb上にもありがたい事に沢山有るので、参考にさせていただきました。

無償で提供されているAtmelStudioを使わさせて頂いてC言語を使って記述しているのですが、MCUの各種レジスタをパチパチとスイッチを入れるかのような感覚です。
アセンブリ言語を使うとより、その感覚が強くなるんだろうなぁと思います。

XMEGAのボード自体は基板CADのEagleで書き、中華基板屋さんに発注。
回路自体はMCUに電源ジャックと電源レギュレーター、リセットスイッチと書き込み用のISPをピンヘッダで、それと、16Mhzの水晶発振子が付いている極々シンプルな物です。
XMEGA自体内蔵のOSCを使っても、最大作動速度の32Mhzで作動させることができるので、用途にもよると思いますが外付けの水晶発振子は要らなかったのかも?とも思います。
また、32khzの発信器も内蔵しています。これは、内蔵リアルタイムカウンタ作動用なので、MCUの駆動用には使えないようです。

外付け水晶発振子なしで、ATMEGAの2倍の作動速度。
ただ問題が全くないわけではなく、、、購入にあたっては該当のエラッタシートをちゃんと読んでおくと良いです

XMEGAの書き込みにはAVRISPmkIIを使用しています。
一昔前から考えるとこうゆう組み込み系のMCUの開発環境を揃えるのに掛かるコストは極端に下がっているので入門?にはとても敷居が低くなりました。

ARMのCortexシリーズのように、高速で高機能なMCUが沢山出てきてますが、高速になればなるほどプログラムメモリにウエイトが掛かったり、また、32ビットとゆうことで、扱える命令長が格段に長くなったりと、高機能高性能なMCUはそれなりにメモリも多く必要だったりと、コスト的に掛かったりする場合もあるので、程々の機能(とはいえども、ATMEGAよりかなりの高機能)の載った扱いやすいと思われる8ビットのMCUもなかなかおもしろいのでは?と思います。

私自身そんなに大したプログラムが書けるはずもないので、この程度の価格帯で色々と使えそうかなぁ、、なんて思ったり。。^^;


あまり、NCには関係なさ気なMCUのですが、NCコントローラーからの出力にてトリガを引き、簡単な事をさせるのには結構便利なのでは?と思います。
また、NCマシン自体が電子制御なので、モータードライバ等の設定用のコントローラーとか、モーター電源電圧、電流の監視や、フィードバック制御用のエンコーダーパルスを分岐し、確実に動いているかの検証、2重3重の制御の保証用等々使い道は多々あります。。

もちろん、すべてがMCUだけでなんとかなるわけでもないので、平行してFPGA等のロジックも覚えなければ、、、、。。

テーマ : 自作・改造
ジャンル : コンピュータ

メモ。 AtmelStudio6とASFについての記述

http://wiki.jelectronique.com/doku.php?id=avr_studio_6

上手くxmegaが使えることができればいいなぁ。。

とりあえず、ピン配置変えてXMEGA32D4でPWMまでやってみた。でけた。
秋月にあるXMEGA32D4にはUSBが無いので、CDCはできなかったけどOrz。

ちゃんと、公開されてるエラッタ見てから買ったほうが良いかも、、。。


続きを読む

テーマ : 自作・改造
ジャンル : コンピュータ

ATMega168Pでモータードライバを、、。

ATmega168Pを使って残ってたPololuのA4983ステッピングモータードライバキャリアをドライブさせてみました。



元々、ReprapWiki内にあるeasy stepperとゆうものがあり、その動画を見たので作りたくなってしまいました。^^;

元の物はTiny10?を使ってるみたいですが、プログラム中に内部変数を表示したかったのと、たまたまATMega168Pが手元にあったので、コレを使用。

どう考えても、オーバースペックだと思われますが、まぁ、、ねぇ。。

液晶表示はI2C接続のキャラクタLCDモジュールの16x2の物。秋月で入手可能です。

で、内容は、とゆうと、ボリュームを使って電源電圧から分圧。
可変できるので、その電圧をマイコンの10bitADコンバータにて、数値に変換。
ちょこっと計算をして、その数値を8bitのタイマカウンタに放り込むと、ボリューム一つで2つの回転方向のパルスが出ます。。

キャラクタLCDには、AD変換で出てきた数値と回転方向が表示されてるはずです。


今回、モーター側の電源は秋月に売ってる9V2A程度のスイッチング電源を使用しました。

私は通常24Vの電源を使ってるのですが、9Vの電源だと電流の押し込みが足らないのか低い回転数でギクシャク。。
あまり高回転までは回ってません。
他動画で結構な回転数で回してますが、その高回転部分はほぼトルクは無く、実用範囲外です。
もちろん負荷を掛けたら止まります。。たぶん。。


自作/小型NCフレームに使用されるステッピングモータードライバの多くはパルス列制御といって、パルスの立ち上がり(立ち下がり?)エッジを拾って1エッジにつき、モータードライバの1励磁を進めます。

回転方向は、Dir(Direction)信号の1bitの信号で、0か1かで判断をしています。
5Vの信号なら、Dir信号が5Vか0Vかで、判断をしています。
実際の所は、電圧にしきい値があり、電源電圧の何割かとゆうしきい値を超えていれば完全に5Vや0Vでなくとも、作動させることは可能です。
その場合、確実に動くような電圧とします。しきい値ギリギリの電圧では危なくって。。。

と、ゆうことは、こんなマイコンでのコントローラーを使わずとも、単なる押し釦スイッチを使用すれば、ステッピングモータードライバICを使用したステッピングモーターの駆動は理屈的にはできるはず、です。

ただ、1/16マイクロステップなんかに設定した場合、1回転200ステップのモーターだと、3200回押さないと1回転しません。。コレは大変。。

ですの、で、生のAVRを使わずとも、Arduinoとかmbedとかでパルス発生器を作ってしまったほうが、、、とは思います。。


もちろんこの回路、大したことはしてませんし、LCDパネルを取り外しても使えます。
また、たまたま手持ちの小さなモータードライバを載せて直接モーターを回してますが、Step/Dirの信号を出力しているので、パルス列制御なモータードライバなら、多分動くと思われます。

自己で作られたNCフレームとかの仮組み時のステッパモーターを駆動させたい、とかゆう用途には結構便利なのかもしれません。


Arduinoのチュートリアルで、ステッパモーターを回す場合、トランジスタアレイの類を使いますが、モータードライバICを使うと案外簡単に。。

最近、なぜだかArduinoクローンやReprap等々を作るときに使う電子部品や基板、そしてモータードライバの類も、とてもお値打ちに入手が可能となりました。

ただ、注意しなければならないのは、聞くところによるとよく見ないとハンダブリッジやはんだボールが基板上にあったり
するらしいので、中華物を使うときは使用前に注意深く検品することをおすすめします。

今はどうかわかりませんが、中華NCインターフェース基板等々で、明らかに回路がオカシイ物も普通に販売されていたので、そのへんまでちゃんと見ることが出来ないと、、、、とは思います。

少々前にFTDIのUSBシリアルのドライバが更新された時に、偽物USBシリアルなどが、、。。。



簡易なパルス発生器?で、ステッパモーターを使って何かを構築中にわざわざPCを使わずとも、、ってゆう用途ですかね。
正確なパルス数を出すのなら、GRBLとかのArduinoを使ったNCコントローラーを使うなり、PC NCコントローラを使うなりしなければなりませんね。





テーマ : 自作・改造
ジャンル : コンピュータ

ライセンス
アクセスカウンター
プロフィール

あきらひとし。

Author:あきらひとし。
木工用CNCルーターフレームと、ステッピングモータードライバを作ってみました。
たぶん記事は一般的な人には殆ど必要のない事ばかりなの、かも。

モーターは回るだけでも楽しい。制御(速度、トルク、位置)できるともっと楽しい!

メールフォーム

名前:
メール:
件名:
本文:

リンク
最新記事
カテゴリ
スポンサードリンク
スポンサードリンク 
スポンサードリンク
オンラインカウンター
現在の閲覧者数:
検索フォーム
RSSリンクの表示
最新トラックバック
最新コメント
月別アーカイブ