まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

2015年04月

Arduino Zero ProのシリアルはSerial5

 前回のTinyBASIC、Arduino Zero Proではうんともすんとも動かなかった。が、操作するハードウェアはシリアルポートだけなのでそこが違うのではないかと調べてみたら、ProgrammingPortからみえるシリアルポートはSerial5という名前だった。

Arduino Zeroボードの概要(内容説明)
Topic: Arduino Zero and the serial monitor (Read 141 times)

そこで、tinyBASIC.inoの先頭に

#define Serial Serial5

を追加。これで動作確認できた。が、キー入力を受け付けないことがある。本体をリセットしてもダメ。
切り分けのため、Serialに戻してArduino Zero Proのpin1、pin2経由で通信してみる。

2015zeroproserial


 つまりArduino Zero ProのUSBポートを迂回してみたのだが、問題なし。ということはUSB経由のシリアル通信に問題がありそう。

確認環境:
Arduino Zero Pro ProgrammingPortを使用

WIndows7(64bit)+Arduino IDE 1.7.2 TeraTerm → OKだがいったん接続を切るとダメ
MacOSX10.10+Arduino IDE 1.7.2 SerialTools → 入力を受け付けない いったん接続を切ると表示もダメ
MacOSX10.10+Arduino IDE 1.7.2 GNU screen → OKだがいったん接続を切るとダメ

ダメになったら、USBケーブルを繋ぎ直してもマイコンボードのリセットボタンを押しても元に戻らない。Arduino IDE 1.7.2で再度書き込みをするとポートがリセットされるのか接続できるようになることがある。(SerialToolsではダメ)

この間もずっとホスト(PC)側からは/dev/tty.usbmodemXXXとして見えているのだが……

こういった状況。なおUSB Native Portは未検証。WIndowsではUSB Native Port経由だと端末を接続した状態ではプログラム書き込みに失敗する。






Arduino Zero ProArduino Zero Pro

スイッチサイエンス
売り上げランキング : 110714

Amazonで詳しく見る
by G-Tools

Arduino Dueで豊四季タイニーBASICを動かす

 最近TINY BASICが流行っているようなのでちょっとやってみる。

 鈴木哲哉氏が開発したTINY BASICを使わせてもらいます。
命名-豊四季タイニーBASIC(電脳伝説 Vintagechips)

 以下からTTB_Arduino.zipをダウンロードする。
豊四季タイニーBASICのリファレンスを公開(電脳伝説 Vintagechips)

 開発環境はArduino IDE 1.7.2を使用。Arduino.orgの方からダウンロード。
New Arduino IDE 1.7.2

以下、動作環境はMacOSX 10.10 Arduino IDE 1.7.2

 まずはArduino Leonardoで動作確認。先ほどのTTB_Arduino.zipを展開し、Arduino IDE 1.7.2で展開したフォルダ内のTinyBASIC.inoを開く。
 マイコンとシリアルポートを指定し、書き込み。シリアル通信で確認。特に問題なし。

 次にArduino MEGA 2560を指定して動作確認。これもOK。

 さて、Arduino Zero Pro / Arduino Due だが、これらを指定してコンパイルすると以下のエラーが出た。

In file included from TinyBASIC.ino:23:0:
ttbasic.h: In function 'unsigned char* iexe()':
ttbasic.h:1107:36: error: cast from 'unsigned char*' to 'short int' loses precision [-fpermissive]
index = (short)lstk[lstki - 1];
^
ttbasic.h:1113:36: error: cast from 'unsigned char*' to 'short int' loses precision [-fpermissive]
vstep = (short)lstk[lstki - 2];
^
ttbasic.h:1116:34: error: cast from 'unsigned char*' to 'short int' loses precision [-fpermissive]
vto = (short)lstk[lstki - 3];
^

 該当する箇所(一部)はこのようになっている。indexはポインタなので、AVR系ではshortでもARM系では違う模様。
     index = *cip;
 ...
     index = (short)lstk[lstki - 1];

次の様に書き換えた。これでコンパイルしたらエラーなし。
     index = (uintptr_t)lstk[lstki - 1];

ついでにsetup()のシリアルポートを準備する所で
while(!Serial);
を追加した。

修正後のソース:
https://gist.github.com/houmei/a078fb52f5309846b3d2


 Arduino Dueで、マイコンをArduino Due(Programming Port)に指定して書き込み。動作OK。

 しかし、コンパイルと書き込みはできてもArduino Zero Proは何も応答しなかった。これはあとで。

 おまけ:複数のマイコンボードを接続して調べた今回は、このような電源スイッチ付のUSBハブが便利だった。
2015HUB





ELECOM USBハブ USB2.0対応 個別スイッチ付 バスパワー シール付 4ポート ブラック U2H-YS4BBKELECOM USBハブ USB2.0対応 個別スイッチ付 バスパワー シール付 4ポート ブラック U2H-YS4BBK

エレコム 2010-12-09
売り上げランキング : 10111

Amazonで詳しく見る
by G-Tools

レーザーカッター テスト

 220Vの変換器は添付されていたが、付属ACケーブルのプラグが大陸仕様。マルチ変換プラグというのを購入した。
2015laser21



 さて、これで試運転できそう。レーザーカッター本体のACインレットにACケーブルを差し込む。本体ACアウトレットは2つあり、パネルの電源スイッチと連動している。これに排気ファンとポンプの電源を接続すればよい。

 レーザー光はこの鏡で反射し、右側にある可動するヘッドで下方向に曲げられ、対象物に当たる。
2015laser22



 確認のため紙を巻いてテスト用ボタンを1秒押す。出力10%でこのくらい。
2015laser23


 あまりにも出力を絞るとレーザーが励起しないのか紙が焦げない。7%以上に設定すると本体からの音が変わり紙が焦げる。左から7%,8%設定の結果。
2015laser24


 これで本体の動作確認OK。次は制御ソフトをインストールしてやってみる。


No brand 【バルク】全世界対応マルチ変換プラグA型(海外電化製品を日本で利用)A,BF,SE,C,B3,O,BNo brand 【バルク】全世界対応マルチ変換プラグA型(海外電化製品を日本で利用)A,BF,SE,C,B3,O,B

ノーブランド
売り上げランキング : 2122

Amazonで詳しく見る
by G-Tools


レーザーカッター 検品

 LANCARD.COMさんよりレーザーカッターを貸していただくことになりました。ありがとうございます。
前回、調査したのはこのためでした。

 ということで早速検品。三代目プリウスのトランクルームにぴったり入るくらいの段ボール箱に入ってた。

2015laser1

 備品はこの本体内に収納されていた。排気用ファン、排気用ダクト、220VのACケーブル、100V→220V変換器、ポンプ、蛍光灯、マニュアルとCD-ROM、USBドングルの入った布ケース。
 縦横に動くレーザー加工の先端は紐で動かないよう固定されていた。輸送時なのか蛍光灯の端が潰れていたが特に動作には問題はなさそう。

 排気ダクトとシロッコファン。レーザー加工すると素材が燃えて煙が出るのでそれを本体内から排出させる。ちょっとうるさい。
2015laser3


 100V→220V変換器とポンプ。変換器は実測で216Vだった。ポンプ用のパイプは加工機本体背面に束ねてある。水タンク(ポリバケツかなんか)が別途必要。
2015laser4


 背面カバー中央は+ネジで留めてある。これを開けると炭酸ガスレーザー管が見える。
2015laser7


 レーザーの先端。ここから右側の鏡に反射して加工機内部のヘッドへとレーザー光が行く。
2015laser8


 操作パネル。

2015laser2

注意書:

1. Examine whether the water of water pump circulates or not before opening the machine
ウォーターポンプにより水が循環しているかどうかを機械を開ける前に調べよ
2. Make sure the line links well with ground
しっかりとアースをとれ
3. Don’t let the water ice up to avoid cracking the laser tube
レーザー管を割らないよう水を凍らせるな
4. Keep level while engraving
加工中は水平にしとけ
5. The non-professionals are forbidden to adjust route of light.
素人は光軸をいじるな


操作パネルも+ネジで固定されている。これを開けると電源、コントロール基板が見える。

2015laser5

2015laser6

 本体、排気ファン、ポンプと制御用のPCの電源のために個別スイッチ付のACタップが要るかな。
内部の電源の所を追ってみると220V入力を100Vに落としてコントロール基板の電源にしているような気がする。まあ中はいじらずに素直につないでみるか。と思ってたら100V→220V変換器と本体をつなぐケーブルがないのでここを何とかしないといけない。

レーザーカッター 予習編

 ホビー用レーザーカッター(激光彫刻机)の情報収集。

このようなグレードの物について。
CO2レーザー40Wで20cm×30cmの板について加工できる。
Free Shipping CO2 Laser Engraver Machine JK-K3020 Cutting Printer 220V 40W Laser Cutter Engraving Printing(Ali Express)
Gowe® Laser Engraving Machine,laser Cutting Machine, Co2 Laser Engraver,40w, 200*300mm, USB Port

トレーニング動画あり。
Hobby 40W CO2 LASER ENGRAVING CUTTING MACHINE ENGRAVER, Support and Ship from USA - See more at: http://www.automationtechnologiesinc.com/products-page/laser-engraving/40w-co2-laser-machine-software-training#sthash.zNQjqM25.dpuf

 この動画がわかりやすかった。


国内のblog記事。皆さん苦労されているようです。
レーザーカッター(その2)(みんなのラボ)
【模型】 激光生活 #3-1  中華レーザーソフト実践 その1(思ひ出はぶだう色)


・220Vで動作
・WindowsXP機以降が必要。ソフトはUSBドングルで提供
・排気ダクトが必要
・冷却用ポンプが必要
・レーザー光経路の調整が必要なこともある
・絶対に加工中のレーザー光は直視するな

絶対に加工中のレーザー光は直視してはいけません




Arduinoの分裂とIDE

 Arduinoの開発元がArduino LLCとArduino Srlに分裂し、それぞれからArduino IDEが出るようになった。
Arduino戦争:グループ分裂、そして新製品の登場(Make:Japan)

Arduino LLC http://arduino.cc/
 最新のArduino IDEは1.6.3
Arduino Srl http://arduino.org/
 最新のArduino IDEは1.7.0 (Java7が必要) Version 7 Update 75


 現在のArduino Zero ProはArduino Srlから出ている。Arduino LLC側はCOMING SOONとなっている。よって、Arduino IDE 1.7.0はArduino Zero Proをサポートしているが、Arduino IDE 1.6.3ではサポートしていない。
 Arduino IDE 1.7.0は名前に空白をふくむフォルダに入れて使っていると、Arduino Zero Proへの書き込み時に次のエラーが出る。(MacOSX 10.10で確認)

/Applications/Arduino Folder/Arduino1.7.0.app/Contents/Java/hardware/tools/gcc-arm-none-eabi-4.8.3-2014q1/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld: warning: section `.bss' type changed to PROGBITS

スケッチが プログラムストレージ領域の 10,764バイト (4%) を使用しています。最大は 262,144バイト です。
usage: dirname path
/Applications/Arduino Folder/Arduino1.7.0.app/Contents/Java/hardware/tools/OpenOCD-0.9.0-dev-arduino/bin/openocd: line 3: /Applications/Arduino: No such file or directory
 /Applications/Arduino Folder/ というサブフォルダを作って放り込んでいたのだが、これを/Applications/ArduinoFolder/ に修正したらエラーは出ず正常に転送できる。おそらく後から追加されたOpenOCD関連が対応していないと思われる。

 さて、Arduino LLCとArduino Srlから出る製品の違いでそれぞれのArduino IDEの対応状況も違ってくるのではという心配がある。Arduino LLCからはArduino TreArduino Zero が、Arduino SrlからはArduino Yun Mini、Leonardo ETHが出る予定となっている。これらによってArduino IDEを分けなければならないのはちょっと困る。

 Arduino UNOやLeonardoについてはArduino IDE 1.0.6で充分……なのだけどArduino SrlからはArduino IDE 1.0.6.2が出ている。これはArduino Srlから出ている9軸モーションシールドに合わせたライブラリと自前のシグネチャ、USBのVID/PIDに修正したもの。

 ということで、私自身の対応は
UNO/Leonardo系を使う時:Arduino IDE 1.0.6
Aruino Zero ProやDueを使う時:Arduino IDE 1.7.0の系列

にしようと思う。



Arduino Zero Pro
Arduino Zero Pro
スイッチサイエンス
売り上げランキング :


Amazonで詳しく見る
by G-Tools

記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ