スポンサードリンク

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

STM32のIDE

久しぶりにマイコンを触ってみようかと思って環境のバージョンアップをいろいろとしていました。

 そんな中、知らない間にSTM32に使えるIDEであるAtolic社のTruestudioがフリー版での32kBのコード制約がなくなっていることに気づきました。これまでいろいろなIDEを試しているのですが、現在使用しているSystem workbentchが必ずしも使いやすいわけではないのでちょっと試してみました。

 インストールして数分しか試していないですが、残念ながらちょっと私には使えないかなという感想を持ちました。
 そこでついでなので、このTruestudioを含め忘備録的に私なりにおすすめのIDEを紹介したいと思います。個人の独断と偏見に基づいていますので、あくまでご参考ということで。。。

STM32フリー開発環境 おすすめランキング('17.5版)


1位 System workbentch for STM32

 個人的には比較的使いにくいかなと思いますが、いまのところこれが一番だと思います。決め手はSTM32のHALライブラリに標準で対応しつつ、制約のない完全フリーな環境でだからです。

 CubeMXのプロジェクトを読むだけであれば他のIDEでもできると思うのですが、CubeMXを使用せずHALドライバを使用することが容易にできるという点が素敵です。
 ちなみに他のIDEを使用してもこんな感じに設定すればできるのですが、面倒です。。

2位 TrueStudio

 数分しか使っていないですが、第2位です。Standard peripheral libraryだけでなく、HALドライバにデフォルトで対応していれば乗り換えていました。
 注目ポイントは何と言っても一部日本語対応済みなところです。英語が全くできない管理人にとってこれが最大のGoodポイントです。
 ちなみにIDEとしての出来だけであれば3位のEm::blocks(EmBitz)の方が個人的には好きですね。

3位 EmBitz

 EmBitzという名前になる前のバージョンであるEm::blocksを使用していました。いまだにEclipseの使い方に慣れない管理人としてはEm::Blocksの方が使いやすかったかなと思っています。ただ残念なことにこれもHALドライバに対応していませんでした。
 以前少しだけEmBitzという名前になってから触ったのですが、デバッグする際に必要なSVDファイルというのが入手難だったような気がします。

4位 CoIDE

 管理人が最初に触ったSTM32用のIDEです。使い勝手としてはよかったと思います。ただ、使っていると中国に情報が送られる適な但し書きがあったため使用を停止しました。別にWindowsだって米国に情報を送っているので同じなんですけどね。

全く個人的な感想ですが、ご参考になれば幸いです。
スポンサーサイト

新たな指紋センサ

2015年の12月ごろにZFM-60という指紋センサを購入しました。

一応今でも売っているみたいです。

AliExpress.com Product - Optical Fingerprint Reader Sensor Module sensors All-in-one For Arduino Locks Free Shipping & Drop Shipping
この時は無事に動きいたので本サイトで使い方を紹介し、パスワード管理器に組み込みました
その後、このパスワード管理器を自分で使っているのですが、なかなか使いやすいと思っています。
 この調子だともしかして売れるんじゃ?と思っているのですが、まぁそれはそれとして別の指紋センサを用いた道具を思いつきました。

そこで再度指紋センサを探した結果、見つけたのがこれです。
AliExpress.com Product - R307 Optical fingerprint reader module sensor以前の半額ぐらいになっています。
メーカーは違うようですが、以前作ったプログラムが改造せずにそのまま動きました。かつて動いた時と比較して見ると

ZFM-60

151206_ZFM-60_1.jpg 151210_ZFM-60.jpg

R307

170510_r307_front.jpg 170510_r307_ledcolor.jpg

パッと見て、少し小さくなってLEDが緑から青に変わっています。ちなみにZFM-20というAdafruitさんで販売していたものは赤色ですね。いろいろあるもんです。


約2年前に作成したものを今見てみるとプログラムもZFM固有の名称になっていますし、何より本サイトの記述がかなりひどいです。
というわけでCNCがひと段落したので、次は指紋センサのアップデートに取り組んでみようと思います。

クランプ

 以前、中華CNCの3Dデータを作成した際にクランプが合わなかったという記事を書きました。
170502_old_clamp.jpg 
もう一度取り付けてみるとこんな感じです。ちょっと暗くてわかりにくくて申し訳ありません。要するにハンドル部分が干渉して使えないということです。

 その後いくつかの部品を切削で作ったのですが、簡単に脱着ができるクランプがほしいと探し続けていました。

 そんな中、いつもの通りAliexpressを見ていると以下のようなよさげなクランプがあったので、サイズもよくわからないままポッチってしまいました。

CNC Quick Clamp
 およそ待つこと1か月、到着したので早速取り付けてみました。170502_original_clamp.jpg
 うっ! まだでかい。。
ベース部分を小さくすると何とかなるかなと思いベース部分だけ木で作ってみました。170502_modified_clamp.jpg 
だめだ、、、ちょっと高さが低くなりましたが、ゴムと土台までの距離が小さくなったため、クランプできる高さが小さくなってしまいました。

 ということで簡単な脱着はあきらめてこれまで通り170502_ordinary_clamp.jpg 
こんな感じでクランプしようと思います。
残念。

Fusion360のCAMポスト処理

 これまでいろいろな3DデータをFusion360を用いて作成してきました。もちろんGコードの作成もFusion360のCAM機能で作成していました。

 しかしこの場合一つ注意点があります。gコードインタプリンタとしてgrblを使用している場合だけかもしれませんが、Fusion360の出力するGコードでは最初と最後に原点へ移動するコードが自動で付加されており、原点をきちんと理解していないと予想外の動きをすることになります。

例えば冒頭部分だと
%
(1001)
(T1  D=1.5 CR=0 - ZMIN=-6.5 - flat end mill)
G90 G94
G17
G21
G28 G91 Z0   ( <- Here!! )
G90
 ここでZ=0の位置に移動します。その後次の加工位置に移動するのですが、その間に何かあるとぶつかってしまいます。

 これまでは面倒なので最初と最後のコードを手で除いて対応していました。しかしいつまでも手でコードの編集をすると、忘れることもあるので抜本的な対策をとることにしました。

解決策

 いろいろと調べていると結局最初と最後に挿入されているG28(リファレンス点復帰)で始まるコードが出力されないようにすればいいだけなので、対策は簡単でした。
 ポスト処理を行う際の下のウィンドウに表示されている"useG28"をオフにするだけです。
170430_UseG28.png

たったこれだけで出力ファイルの最初と最後に入っているリファレンス点復帰をなくすことができます。

さらにもう一歩

 上記の方法では最初と最後の移動が削除されてしまいますが、さらに一歩進んで任意の位置に動かすことができます。
 詳しくは Autodesk CAM Post Processor Documentationを読めばいいのですが、簡単に言うと上記ポスト処理ウィンドウのコンフィグを開き、

if (properties.useG28) {
    // retract to safe plane
    retracted = true;
    writeBlock(gFormat.format(28), gAbsIncModal.format(91), "Z" + xyzFormat.format(0)); // retract
    writeBlock(gAbsIncModal.format(90));
    zOutput.reset();
}

となっている部分の内容を編集します。2個所ぐらいあると思います。
フォーマット自体はjavascriptなので、眺めていると何となく使い方がわかると思います。

 このスクリプトを使いこなせればいろいろと応用が広がりそうな気がします。ちょっと私には手が出ませんが。。。

リミットスイッチをつけよう(4)

 前回、購入した中華CNCにリミットスイッチを取り付けるために、こんな中継基板を作成して接続したと紹介しました。
170417_relay_schematic.png  170417_relay_board.jpg

 しかし実際にこの中継基板を取り付けて動かしてみたところ、リミットスイッチが入ると動作が停止するのですが、ホーミング動作がうまくいきません。具体的には一度リミットスイッチに接触すると少し戻って待機状態になるはずがリミットスイッチに接触してシャットダウンしている感じです。

 ちょっと原因が分からず悩んでいたのですが、リミットスイッチが入ると同時に中華ArduinoのLEDも消えていることに気づきました。明らかにArduinoが動作停止しています。

 原因を調べること半日、ようやくわかりました。

 管理人の購入した中華CNCではG-CodeインタープリタとしてGRBLを使用していますが、この場合例えばx軸のリミットスイッチは +/-方向ともに同一のArduinoのピンに接続されています。具体的に回路を描いてみると
170425_Path1.png 

 こんな感じでMechanical Endstopが2個並列に接続されることになっています。この場合一方のスイッチが押されるとこんな感じで電流のパスが形成されています。
170425_Path2.png 

 あれれ、、、5VとGNDがダイレクト接続されています。そりゃぁArduinoの電源も落ちます。というよりよくどこも壊れなかったな。。。

 というわけで中継基板を改造してみました
170425_relay_schematic_rev.png 170426_Relay2.jpg

こうすることで一方のスイッチが押されたとしても
170425_Path3.png 

こんな感じで問題なくそれぞれ動きます。またスイッチが押された方のLEDも問題なく点灯します。
ホーミングも無事に動いているようです。

ノイズで誤作動する場合も多いようですが、今のところ問題なさそうです。
いや~。よかったよかった。

パラメータ類の調整が終わったら本サイトにまとめ記事を作ろうかなと思います。
検索フォーム
RSSリンクの表示
リンク
スポンサードリンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。