Eagle と Modela を使って電子基板を作る その4


2014128_pcb_test

概要
Eagle は電子基板を作成する CAD ソフトです。
Modela は、Roland 社の切削加工機です。
今回は ファブラボ・メルボルンの手法 を部分的に適用してみました。
題材は、7セグ LED の Arduino シールドです。

EagleデータとArduinoスケッチは GitHub で公開しています。

Eagle 側の作業
(1) 回路図 (sch) とボード図 (brd) を作成するところは、ほぼ同じです。
配線を太くしたり、PADを大きくしたりします。
20141227_eagle_sch 20141227_eagle_brd

(2) fablab-mill-n-drill.ulp を使って、ミリング (配線パターンの外形線) とホール (穴) のデータを作成します。
なお、ホールのデータは、小さいので、目視しにくいです。
20141227_eagle_milling

(3) ミリングとホールをひとつにして、dxf 形式でファイルを出力する。
このとき、左右反転 (Mirror) します。

Dr.Engrave 側の作業

1. 配線のと穴の加工
(1) データの作成
配線と穴の dxf ファイルを import します。
残念ながら、大きさの情報は無視されてしまいますが。
bitmap から外形線を抽出するのに比べて、dxf では鮮明な外形線が保持されます。
グリッドを表示して、外形に合わせて、リサイズします。
2014128_engrave

(2) Modelra に 1/64 のエンドミルをつけます。
(3) 加工を指示します。

2. 外形の加工
(1) 配線と穴のデータから、配線と穴を削除して、外形のみにします。
(2) Modelra を 1/32 のエンドミルに変えます。
(3) 加工を指示します。
2014128_milling

穴あけ
(1) 基板を Modela からはずします。
(2) 机に基板を固定します。
(3) ミニドリルに 0.8mm のドリル歯をつけて、穴をあけます。
ピンヘッダには、少し小さいので、穴を大きくなるようにグルグリします。
2014128_dirill

基板の研磨
(1) 基板の縁を平ヤスリで削ります。
(2) 基板の銅箔面を荒い紙ヤスリで磨いて、表面のギザギザをとります。
(3) 銅箔面を研磨剤で磨いて、ハンダが乗りやすいように、表面を滑らかにします。
2014128_polish_2

ハンダ付け
(1) 部品をつけて、裏面をハンダ
付けします。
2014128_pcb_rear 2014128_pcb_front

動作確認
(1) Arduino に今回作った基板を載せます。
(2) Arduino にスケッチを書き込みます。
(3) 全てのセグメントが点灯すれば、OKです。

Arduino スケッチ
000 から 999 まで 0.1秒刻みでカウントアップする 10秒タイマーです。
スケッチには、各セグメントを1つづつ順番に点灯するモードも含まれています。


Eagle と Modela を使って電子基板を作る その3


概要
Eagle は電子基板を作成する CAD ソフトです。
Modela は、Roland 社の切削加工機です。
今回は、ファブラボ・メルボルンの手法を試してみました。
結果としては、うまくいきませんでしたが、少し前進したところもありました。

ファブラボ・メルボルンの手法
前回まで手法 は、Eagle を使って配線パターンを画像情報として作成して、Modela のソフトでベクタ情報に変換する方法です。
ファブラボ・メルボルンの手法は、Eagle を使って、直接 Modela の CAMデータを作成するやりかたです。
Dr.Engrave や fabmodule などは使用しません。
オリジナルの英文 の他に、日本語訳 もあるので、詳しくはそちらをご覧ください。

基本的な流れ
(1) Eagleで、回路図(sch)とボード図(brd)を作成します。
配線を太くしたり、PADを大きくしたりします。
(2) fablab-mill-n-drill.ulp を使って、ボード図(brd)からミリング(配線パターンの外形線)とホール(穴)のデータを作成する。
(3) fablab-mill-n-drill.cam を使って、Modela の制御コードを作成する。
Modela を新たな工作機器として認識させるために、eagle.def の修正が必要です。
(4) Modela に制御コードをUSBシリアル通信で渡す。

実際に出来たこと
(1) Eagleで、回路図(sch)とボード図(brd)を作成します。
今回の題材は、7セグLED SND2537 です。
20141227_eagle_sch 20141227_eagle_brd

(2) の fablab-mill-n-drill.ulp は、オリジナルのままでは、1/30 くらいの小さいデータが作成されます。これは、Eagleのバージョンの違いによるもので、下記に対処方法がありました。
EAGLE ulp generates wrong scale
20141227_eagle_milling

(3) (4) の操作を行いましたが、Modela は全く反応しなかったです。
生成した制御コードに誤りがあるのだと推測しています。
詳しい調査は、そのうちに。

ひとまず GitHub に下記を公開しておきます。
– fablab-mill-n-drill.ulp (修正したもの)
– fablab-mill-n-drill.cam (オリジナル)
– eagle.def

前進したこと
(1) fablab-mill-n-drill.ulp により、配線パターンの外形線のベクタ情報が得られるようになった。
(2) 配線パターンを bitmap 形式の他に、dxf 形式で出力できるようになった。
fabmodule は、dxf 形式を受け付けることはできませんが。
Dr.Engrave は、受け付けることはできます。
次は、Dr.Engrave を使った基板作成を試してみます。

Arduino スケッチ
000 から 999 まで 0.1秒刻みでカウントアップする 10秒タイマーです。
スケッチには、各セグメントを1つづつ順番に点灯するモードも含まれています。

参考
Making Printed Circuit Boards with the Fab Lab
FabLabでプリント基板を作る方法
EAGLE ulp generates wrong scale


Android 5.0.1


20141218android501

Nexus 5 に Android 5.0.1 が落ちてきました。
Android Wear 向けには、機能追加があるようですが、Android Phone 向けはバグ対策のようです。

参考
Android 5.0.1(LRX22C)がNexus 5にも配信開始、まずはSprint版から
Android WearのAndroid 5.0.1アップデートが配信開始、変更内容の詳細、デモ動画、OTAファイルのリンクもあり


ドコモ 画像認識 API


20141206_docomo_app_image_recognition

Docomo Developer Support Siteにて、開発者向けにいろいろなAPIが公開されています。
画像認識API は、画像を送信すると、それを認識して、該当するアマゾンの商品情報を返信してくれます。
画像認識APIを使ったサンプルアプリを作ってみました。
20141206_docomo_site_image_recognition

機能
(1) フォトギャラリーから写真を選択します。
あるいは、カメラで写真を撮ります。
(2) 画像認識API を使って、写真に合致する商品を検索します。
(3) 該当した商品を一覧で表示します。
(4) 一覧の項目にタッチすると、その商品のアマゾンのWEBページを表示します。

補足
KitKat から、フォトギャラリーのコールバックからファイルのパス名を取出す方法が変わったようです。
下記を参考にしました。
KitKat でギャラリーから画像取得

ソースコード
Github で公開してます。


Docomo Developer Support Site


Docomo Developer Support Siteにて、開発者向けにいろいろなAPIが公開されています。
画像認識API が新しく追加になったということで、試してみました。
画像認識API は、画像を送信すると、それを認識して、該当するアマゾンの商品情報を返信してくれます。
20141206_docomo_site_image_recognition

まずは、アカウントを取得する。
20141206_docomo_site_account

次に、アプリケーションを登録して、利用するAPIを申請する。
すぐに、承認のメールが来ます。
20141206_docomo_site_apps

画像認識APIのページから、Android 用の SDK をダウンロードします。
20141206_docomo_site_sdk

SDK の中にあるサンプルコードを試します。
サンプルコードの targetSdkVersion が 10 とちょっと古めで、私の環境では動かないかったですが。
プロジェクトのプロパティと AndroidManifest.xml を直すと、ちゃんと動きました。

テスト画像は、アマゾンに掲載されているAndrod本のカバー写真を使用しました。
ちゃんと Android Studioではじめる 簡単Androidアプリ開発 と認識されています。
20141206_docomo_test_image 20141206_docomo_app_sdk


PocketDuino AlcoholMeter


20141201_pocketduino_board_alcohol

PocketDuino と アルコールセンサボード を Android から制御します。
PocketDuino Tutorial を参考にしました。

ソースは Github で公開しています。

機能
アルコールセンサに息を吹きかけます。
測定値をメーターに表示します。
メーターは、自動車のスピード計のような UI にしました。
20141201_pocketduino_screenshot_alcohol

補足
スピード計のような UI は、Canvas#drawArc (円弧) を3つ使っています。
Canvas#clipPath を使うと、もっとシンプルに出来るかも。


PocketDuino LED


20141201_pocketduino_board_led

PocketDuino に内蔵されている LED を Android から制御します。
Physicaloid Library Sample Projects を参考にしました。

ソースは Github で公開しています。

機能
Android の画面のボタンをタッチすると、 PocketDuino の LED が点灯/消灯します。
PocketDuino から LED の状態が送信され、Android に表示します。
20141201_pocketduino_screenshot_led

課題
Android に PocketDuino を差したときに、自動的に動作するようにしたいのですが、そのときに Strart ボタンを押さないと、動作しません。
Physicaloid#open を呼ぶと、UsbManager#requestPermission が発行されますが、そのコールバックを処理していないようです。
コールバックを処理するようにしたいのですが、うまくいきませんでした。