モトコ記録

モトコンポといいつつカレコがメインの整備記録

スポンサーサイト

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

AnetA8:3Dプリンターwifi化02

gcodeファイルの自動ダウンロード

FlashAir+AnetA8でwifiファイル転送が可能になりましたが
LAN接続するのに電源を入れに行かなきゃダメってのがネックでした

FlashAirのLuaスクリプトを使えば
起動後に何々するとかできるらしいんで
もうちょっとだけ悪足掻きます


激!手探り



マイコンでC言語はちょこっと触りましたがLuaは初見
スクリプトってどこに書くの?メモ帳でいいの?
保存するときの文字コードは?

なんにも知らないのでflashair-developersに行って
FlashAirでLuaを実行するから始めます

サンプルはお約束のHello出力
こんだけでもかなりの時間がとられましたが
「FlashAir起動後にファイル作成」 が確認できました





HTTPで画像ダウンロード



次のサンプルは HTTPを利用したファイルのダウンロード

「flashair-developersのロゴ画像を取得」
自分の希望にかなり近いですが
web経由じゃなくてローカルでのやりとりが目標





FTPでアップロード



サンプルは FTPを使ったファイルのアップロード

指定フォルダ内のファイルを調べて
FTPでFlashAir外の指定フォルダに送信されます
これのダウンロード版があれば完璧!

しかし「FlashAir FTP ダウンロード」でググるも
出てくるのは"FTPでアップロード"ばかり
データや画像を上げるのが本来の用途だから仕方ないのか

このサンプルをイジくってみたものの
FTPで共有フォルダのファイルリスト取得が(自分には)出来なくて断念
コマンドがgetとputの2つしかないんですもん



妥協



試行錯誤した結果、理想を追求するのはやめて
超単純に指定フォルダから指定ファイルを落とす、に限定します





ftp関数を使ってFlashAir起動後に指定ファイルをダウンロード



result = fa.ftp("get", "ftp://〇〇〇〇〇〇〇〇/001.gcode", "001.gcode")
if result ~= nil then
print("Success! File downloaded.\n")
else
print("Failure! File failed to download...\n")
end

先に学んだ/HTTPGetFile.luaの焼き直し
〇〇〇〇〇〇〇〇は共有フォルダのアドレスです
ファイル名が決め打ちの001.gcodeしか落とさない等
問題は山積みですがまずは目的を果たしましょう

これを適当なファイル名で保存して
LUA_RUN_SCRIPTパラメータを組み合わせて使います





共有フォルダ作成



自宅LAN内のLinkStationに共有フォルダを作成して
ftpが使えるようにチェックをいれて完了

ここに出力したいgcodeファイルを入れておくと
FlashAirが起動したときに自動でダウンロードされます





テストファイル



送信テスト用にスケッチアップでデータ作成
テキトーな丸と四角をstlへ変換して保存します





stlからgcodeへ変換



作成したstlファイルをcura14で読み込んで
maru.stl を 001.gcodeに、
kaku.stl を 002.gcode に変換して保存

001.gcodeはFlashAirが読み込む共有フォルダに配置します
002.stlは作業フォルダに保留






自動ダウンロードテスト



AnetA8にFlashAirを挿して電源ON
空だったフォルダに001.gcodeが現れてます
自動実行はサンプルで確認できてたからちょっと余裕






001.gcode(maru.stl)出力



ファイルが壊されることもなく無事に出力できました
次はPCのエクスプローラーから
002.gcodeをFlashAirにコピーします





普通のファイルコピー



操作はAnetA8:3Dプリンターwifi化と同様

エクスプローラー経由の送受信は
PC側もFlashAir側もフォルダ・ファイル名は自由ですが
001.gcodeと並べて解り易くするのに002.gcodeにしました






出力終了



自動実行後のファイル受け取りも問題ないようです

多少?の課題を残しつつも
PCでモデリングしてgcode変換してフォルダに保存しておけば
プリンターの電源を入れるだけでコピーされるので
前回の不満点は解消されました





まとめといいわけ

・スクリプトで指定したファイルしかダウンロードしない

この場合は"001.gcode"しか落とさない です

gcodeファイルは保存時に001と打つだけだから
ファイル名そのものの手間は問題ナシ

gcodeは使い終わりにいつも破棄するので
作業毎に上書き保存するのも問題ナシ

1mm小さく、持った、削ったの細かい修正で
同じファイル名だと少し紛らわしいかも

・起動後のファイルコピー終了が不明

AnetA8「PRINT FILE」からフォルダを覗いたときに
ファイルがなくてもダウンロード終了後に
リセットなしで自動的に表示されました


・ファイルが存在しないときは空ファイルを吐き出す

共有フォルダに"001.gcode"が無かったときは
0Kbの空ファイルがFlashAir側に保存されます
AnetA8に読み込ませても何も起こりません


NASがあるならwebサーバーを使えば?

ヘタクソが設定するとセキュリティ面で心配が残るのでやめました


FlashAir IoT Hubを使えば?

PCとAnetA8の距離が2~3mそこらなんで
外のサーバーに預けるのが大げさな感じがしちゃってます
クラウドサービスも同じ

プロフィール

一三六

Author:一三六
北海道富良野地方在住の
道産子モトコンパーです
指が不自由な人だったりします
Mail: maru***@hotmail.co.jp
(*** を 247 にして下さい)

・BikeList
カレコ(不動)
ディオコ(全バラ)
スカッシュ(不調)
ディブラッシ(半組み)
FZR1000(未整備)
シティカブリオレ(不動)

カテゴリ


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