ガラクタ市

今日は半年に一度開催される、近所のホームセンター ハンズマンのガラクタ市です。

何年か前にはこの様な掘り出し物もありました。今回も期待しています。

ずっと前のガラクタ市

何年か前にゲットした激安アクリル板

以前は会社帰りに行っていましたが前回からは朝一番に行く事にしています。
自宅から近い菊陽店に、朝7時の開店前に行きます。
会社はフレックスなので9時に出社する事にしました。

開店10分前に到着したら既にかなりの行列ができていました。
菊陽店は細い道が駐車場を分断しています。行列はその道を超えてさらに続き、バイパス道路まで届きそうな勢いでした。

HANDSMANガラクタ市2016秋開店直前

開店3分前。

 

ちなみに前回はこんな感じでそこまで混雑していません。雨だったからでしょうか?

HANDSMANガラクタ市2016年春

前回(2016年4月7日)の開店3分前

開店直後。
あんなに乗ってエスカレーターが大丈夫だろうかとか考えてしまいました。

HANDSMANガラクタ市2016秋2

続々と人が吸い込まれていきます。

 

買い物を終えて会社に向かうところですが、まだ駐車場はいっぱいです。

HANDSMANガラクタ市2016秋3

駐車場満杯

 

今回買ったもの・・・

HANDSMANガラクタ市2016秋4

これだけ買いました。あんまり多くありませんが・・・

 

掘り出し物はこれ。引き出しレール一本30円。30本ぐらいあったので全部買い占めようかとも思ったのですが気が引けたので10本にしました。 一周回ってきたらもうありませんでした。

HANDSMANガラクタ市2016秋5

引き出しレール

 

換気扇のフード290円。工作室に換気扇を付けるつもりなのでその時使います。

HANDSMANガラクタ市2016秋6

換気扇のフード

ガラクタ市はいつも木曜に始まり翌週月曜あたりまでやっています。後になる程いい品物は減っていくのですが、それでも最初に無かった品が途中で現れる事もあるので2~3日はマメにチェックしようと思います。

FRISKのケース

電子工作界で話題のFRISKのケースサイズ変更、熊本ではまだ見かけないと昨日書きましたが、今日発見したので早速購入しました。

FRISKcase

FRISKケース新旧

長辺は同じですが短辺が約5mm、厚みが約0.4mm増えていました(ノギスでの実測)。
ちょっと前のMake:のブログでRaspberryPi ZEROがFRISKのケースにギリギリ納まらないという話題が載っていましたが、新規格では納まるんじゃないでしょうか。

でも旧規格の小型ケースは今後入手困難になるんでしょうね。

 

FRISKサイズのUSBジョイスティック

OpenStickLiteが使える様になったので、Laser加工機用に小型のジョイスティックを製作しました。

これまでLaser加工機のジョグ制御には、下の様なジョイスティックを使用していました。見覚えがある方もいらっしゃるかもしれませんが、MakerFaireではラジコンシミュレータのコントローラに使用しているものです。
今回、OpenStickLiteを使って場所を取らない小型のものを作ろうと思います。

LaserCutterController

これまでのLaser加工機のコントローラ。
ちょっと大きくて邪魔になる。

 

X-Y軸入力のスティックはジャンクのゲームコントローラーから外したものです。HardOFFで108円で買ってきたコントローラをバラしてストックしています。
これはX-Yのアナログ制御に加えスティック自体を押し込む事でボタンをON/OFFできます。今回入力デバイスはこれ一つだけで、
X-Y軸とボタン1個だけにしました。

JoysticksFromPS

PlayStation用コントローラから外したジョイスティック

 

簡単に回路を描いて・・・

LaserStickSchematic

Laser制御用ジョイスティック回路図

 

基板切削CNCで削って・・・ 

LaserStickPCB

LaserStick基板
(実は一部パターンをミスっており、この後手配線で修正しました)

 

FRISKのケースに入れました。
FRISKはケースサイズが変わるという話ですが熊本ではまだ従来サイズしか見かけません。今回使用したのも従来サイズです。

LaserStick2

フリスクケースに収納。

 

中身はこんな感じです。
PIC18F14K50はフリスクケースにピッタリ。
部品がとっても少ないです。

LaserStick3

水晶発振子周りのスペースが厳しくなってしまったので、水晶を少し浮かして取付け、更にショート防止のためカプトンテープで保護しました。

LaserStick4

斜めからみたところ

 

コンフィグはこれを書き込みました。

LaserStick Configuration

今回のOpenStickConfigLiteの設定。
入力信号はX-Y軸とボタン1個だけ。

 

またLaser加工機に取付ける為、3Dプリンタでホルダーを製作しました。

LaserStick with Holder

ホルダーと小型ジョイスティック

そして加工機に取り付け!!

LaserStick6

ホルダーと共に加工機に取付けた図。

PIC18F14K50採用で小型機器が作り易くなりました。
SOP版を使うともっと小型化できそうです。

 

動画にしてみました。 2016-10-25

 

OpenStick Lite ~その4~(β版アップ)

PIC18F14K50を使用したOpenStickのLite版、今のところ大きな問題はなさそうなので一旦リリースしようと思います。
本当はピン割り当てをドラッグ&ドロップで自由に変更可能にしようと思っていたのですが、GUIを作るのがなかなか面倒なので今後ボチボチやろうと思います。とりあえず現行版ではOpenStickConfigLiteから一旦テキストに書き出し、メモ帳などで変更後に再読み込みする事でピン割り当てを変更可能です。

ファイル類

今回アップしたのは次のファイルです。一番上のバイナリセットがあればまずは動作させる事ができます。例によってソースは汚いので改造したりする際の参考程度にお考え下さい。

その他、書き込みツール(MybootOS)や書込みに必要なドライバ(MCHP-USB)はスタンダード版から変わっておらずOpenStickのページからダウンロードできます。
 バイナリセットには次のファイルが含まれています。
  • Bootloader18F14K50.hex・・・・・・・・・・・・・・・・・PIC18F14K50用ブートローダ
  • OpenStickLite.hex・・・・・・・・・・・・・・・・・・・・・・・OpenStickLiteファーム
  • Bootloader18F14K50+OpenStickLite.hex・・・ブートローダ+ファーム
  • OpenStickConfigLite.exe・・・・・・・・・・・・・・・・・Lite版コンフィグツール
基本的な事はPIC18F2550/2553を用いたOpenStickスタンダード版と同じです。
以下、主な違いを書きます。

回路

マイコンをPIC18F14K50に変更したので当然ながら回路も変わっています。
前回の投稿に書いた通りLEDはなくしてしまいました。
MCLR端子もリセットではなくIOポートとして使います。これにより入力ピンとして使えるのは13本です。ブートモードに入るにはMCLR 端子をLに下げた状態で電源を投入します。
水晶は12MHzです(スタンダード版は20MHzだったので要注意)。
PIC18F14K50にもウィークプルアップ機能があり、これを使える端子をデジタルピンとして使用する場合は内臓プルアップをONにするので回路上のプルアップは省いています。
秋月電子のAE-PIC18F14K50がほぼ同じ回路なのでこちらを使っても簡単に作れそうです。

ピンの用途

各端子は表の機能に割り当てています。IN4~6,IN9~13はアナログ入力可能端子、その他はデジタル専用端子です。 Wpup欄はウィークプルアップ機能がある端子を示します。

ピン用途

各端子の用途

 

ブートローダ

PIC18F4550用を改造しました。「Bootloader18F14K50.hex」をPICライターで書込みます。
このときだけはPICライター(PICkit3等)が必要です(いずれArduinoによる書込みも試したいと思っています)。
ブートローダが書込めればその後のファームやコンフィグデータは直接USBで書き込む事ができます。また「Bootloader18F14K50+OpenStickLite.hex」はブートローダとファームを一本にまとめたファイルなので、これを使えばファームを書く手間が省けます。

ブートローダを書き込みモードにするにはMODEボタンを押しながら電源を投入します。
スタンダード版では書き込みモードになるとLEDが点滅していましたがLiteではLEDがありません。しかし書込みツールMybootOSの左上に「PIC detected in BOOT mode」と表示される事で書き込みモードに入ったと判ります。

メモリーマップ

コンフィグデータの位置を変更しました。
スタンダード版は0×4000が先頭でしたがPIC18F14K50はFLASHメモリが0x3FFFまでしか無いので0x3C00を先頭にしています。

OpenStickLiteメモリーマップ

コンフィグ先頭を0x3c00に変更した。

MybootOS

ファームやコンフィグの書換えにはスタンダード版と同じMybootOSを使用します。
ファームを書き込む時、「Code Offset」には0×0800番地を指定します(これはスタンダード版と同じです。)。
コンフィグデータを書きこむ場合は「Code Offset」は0×3000番地を指定します。コンフィグデータの先頭は0x3c00じゃないかと疑問に思われるかもしれませんが、実はこの「Code Offset」とは書込み前に行われる消去動作の先頭番地を示すものなのです。 実際の書込み番地はIntelHEX形式のファイルに含まれています。今回、コンフィグの先頭が0x3c00なのでその手前の0×3000からFLASH最終番地までを消去します。なおファームは0×3000未満に収まっているので壊す事もありません。
・・・という事はIntelHEXに含まれる書込み番地を見て必要なところだけ消去する機能があればいいんですよね(またいずれ)。

MybootOS_Lite

MybootOSで接続。

 

コンフィグツール

Lite版のコンフィグツールはスタンダード版と見分けをつきやすくするため色を黄色にしました。

OpenStickConfigLite

スタンダードと見分けがつく様に色を変えました。
いずれ一本化したいのですが。

入力端子の任意割り当てに対応するため内部構造を大きく変更しています。
任意割り当てを行うGUIはまだできていませんが「SAVE」ボタンで一旦設定を保存し、それをテキストエディタで変更して「LOAD」で読み込ませるとピン割り当てを変更できます。
設定ファイルには下記の端子割り当てを追加しており、’=’の右の数字が入力端子番号で、これを書き換えます。LOAD時のルールチェックは厳密にできていないので書き換える際は注意してください。

#Pin asign
PIN:ANALOG(X) =4
PIN:ANALOG(Y) =5
PIN:ANALOG(Slider) =6
PIN:HatSwitch(UP) =10
PIN:HatSwitch(RIGHT) =11
PIN:HatSwitch(DOWN) =12
PIN:HatSwitch(LEFT) =13
PIN:BUTTON(1) =1
PIN:BUTTON(2) =2
PIN:BUTTON(3) =3
PIN:BUTTON(4) =7
PIN:BUTTON(5) =8
PIN:BUTTON(6) =9

 

また自動ピン配置も残すため「AutoAsgn」ボタンを追加しました。
(「ShowPin」ボタンと機能の差があまりなくなっており、いずれこのあたりは整理したいと思います)