マイコン工作実験日記

Microcontroller を用いての工作、実験記録

会場販売します

2012-11-30 00:14:50 | Weblog
今週末のMaker Faire Tokyoですが、わたしはCommercial Makerとして出展します。今回から個人だろうが法人だろうが、会場にて販売をおこなう者はCommercial Makerという扱いになっています。




わたしが販売するのは今回製作したプリント基板と、それに関わる物品となります。基本的にわたしが使った残り物なので、WCA-009をのぞき、数がとっても限られています。WCA-009については、学生証を提示してくれた方には学割価格で提供します。通常価格がほぼ仕入れ値なので、赤字サービスです。

品物価格備考
WCA-0099,300円学割価格8,000円
BlueSAM-Mini基板300円限定3枚
基本パーツセット1,200円限定2セット


もちろん、基板には回路図が含まれます。使用しているアンプは0.5mmピッチのQFNパッケージなので、ハンダ付けに慣れた方でないと、実装は難しいかと思います。

基本パーツセットは、秋葉では入手しにくいと思われるパーツをメインに、手持ちのものをまとめたものです。内容は以下のとおりとなります。

部品名概要
BlueSAM-Mini PCBプリント基板
TS472QTマイク・アンプ
TPA6132A2ヘッドフォン・アンプ
MCP1826S333.3V LDO
3.5mmジャックヘッドフォン用
4芯RJジャック受話器用
2回路スライド・スイッチ極性反転用
1.27mmピッチ5x2ピンヘッダSWDコネクタ
2mmピッチ2ピンコネクタLiPo電池用
ミニUSB BコネクタUSB充電用
28ピンDIPソケットLPC1114FN28用

足りない部品は、別途調達していただく必要があります。コンデンサや抵抗は全く含まれていません。手抜きしたのでUSBコネクタは充電専用となっており、動作のためにはLoPo電池が必要です。部品調達も電子工作の楽しみの一部だということで、ご容赦願います。

なお、WCA-009については、iWRAP5をインストールして販売することにします。さきぼど10枚分のライセンスキーをフィンランドのBluegiga社に依頼したところ、3分でキーが送られてきました。仕事早すぎ!!

プリント基板化

2012-11-28 22:47:18 | Weblog
Maker Faire Tokyoを週末に控え、大慌てでBlueHAND-Miniのプリント基板版に取り組んでいます。Fusion PCBで作った基板は先週のうちには届くだろうと思っていたのですが、感謝祭の影響で郵便物の配達に遅延が生じてしまいました。それでもどうにか月曜に届いたので、なんとかなりそうです。



基本的にはユニバーサル基板で組んだものと同じサイズで同様の構成ですが、以下のような違いがあります。
  • ヘッドフォンアンプTPA6132A2とその出力用の3.5mmジャックを追加。
  • WCA-009の下にはシリアル通信用のヘッダピンを用意。ジャンパでマイコンからのシリアルを切り離せば、パソコンからWT32の設定をすることができる。
  • SWDのヘッダとして1.27mmピッチのARM標準10ピン構成を使用。
20ピン構成のJTAGコネクタは場所をとられて困るので、今回は10ピン配列を使用。問題はピンヘッダーの入手性が悪いこと。秋月に1列のものがありますが、並べて2列にすると幅が広くなってしまい使えません。幸いなことにaitendoに2列40ピンの在庫があったので、それを使うことができました。



受話器のマイク極性反転用スイッチとして、2mmピッチのものを使うパターンにしたのですが、気がつくと手持ちのものは2.5mm。そのためまだマイクアンプの動作確認がとれていません。



裏側にはリポ電池をおいて、電池動作とすることにしました。右上にあるのは着信音鳴動用の圧電サウンダです。ミスって、ジャンパを1本飛ばすことに。。

muxモード

2012-11-25 11:33:00 | WT32/BM20
WT32の大きな特徴は、SPPだけでなくA2DPやHFPのようなオーディオ関連プロファイルをサポートするとともに、これらを同時に接続できることにあります。BlueHANDでは通話にはHFPを使っていますが、以前の記事にも書いたようにLPC1114FN28ではデバック用に使えるポートが無いので、SPPを使ってHFPを始めとする他のプロファイルの動作状況を外部からモニタできるようにしてみます。接続イメージはこのようになります。



スマホ/携帯とはHFP/A2DP/AVRCPで接続する一方で、PCとはSPPでBluetooth接続します。HFPの動作によって生じたイベントメッセージをマイコンでひろって、それをSPPで送信してやればPCから他のプロファイルの動作をモニタリングできることになります。しかしながら、WT32にもシリアルポートはひとつしかありません。送信するデータをどちらのリンクに送るか、あるいは受信したデータがどちらのリンクから来たものかを区別できないと、複数の接続を使い分けることができません。このような要求に対応するために用意されているのがmuxモードです。

muxモードではWT32とやりとりする通信のフォーマットが、無手順ではなく、独自のフレーム形式に変わります。各フレームには送信先/送信元のリンク番号が入っていますので、これで複数の通信路を区別して送受信をおこなうことができるようになります。この例では、異なるプロファイルを使っていますが、別々のデバイスと複数のSPP接続を張るような使い方も可能です。フレーム形式とはいっても、HDLCのようにビットインサートが必要なわけでもなく、PPPの非同期HDLCのようなエスケープ処理の必要もないフラグ・バイトとLength prefixがついただけのとても簡単な形式なので、簡単にエンコード/デコードすることができます。

このLPC1114FN28を使ったユニットはBlueHAND-Miniという名前にしましたので、Mac OS Xからペアリングをおこなうと、その名前のついた TTYデバイスが作成され、これを使って接続することができます。screenコマンドを使うのであれば、....



接続後、スマホとBlueHAND-Miniをつなげてみると、screenコマンドの画面ではつぎのようにWT32の出力するイベントをモニタすることができるようになりました。もちろん、LPC1114からのデバック・メッセージを出力させることも可能です。



ワイヤレスで動きがモニタできるので、とっても便利になりました。

boundio meetup

2012-11-21 12:23:49 | Weblog
昨日、boundio meetupなるイベントに参加してきました。KDDI Web コミュニケーションが提供する電話サービスAPIである boundioを使ったアイデアやサービスについて紹介したり、話し合ったりする集いです。わたしは初めての参加でしたが、アルコールが入ったこともあって、とても楽しく過ごせました。



boundioについては名前は聞いたことはあったし、jksoftさんのブログ記事を通じてAPIの概要について知ってはいたものの、使ったこともありませんでした。ところが、先週jksoftさんが参加するチームがMA8に出品したおーいおまえ ねむっTELで優秀賞を獲得したというニュースを知って、改めて boundio のサイトを見に行ったところmeetupイベントがあるということを先週末に知りました。

すっかりjksoftさんの作品に触発されたわたしは、日曜の夜にboundioのデベロッパーアカウントを取得して、イベントへ参加申し込むことにしました。ネタとして製作中のBlueHANDを持ち込んで、boundioから発呼した合成音声で用意された通話音声を、着信して聞くことができるということをデモしてきました。Boundio APIは、Mac OS上からcurlコマンドを叩いて起動しているだけで、webサービス連携も何もないデモだったのですが、チョットしたアレンジを加えたので、デモを見た人にはそれなりに喜んでもらえたようです。

どういうデモであったのかの詳しい説明については今回は意図的に紹介しないことにします。せっかく思いついたネタなので、来月のMaker Faire Tokyoの会場でもデモしてみようかと計画中。ただし、あまり頻繁にデモするとboundioサービスの利用料がかかってしまうので、お知り合い中心にデモしようかと思います。ブログで読んだと言ってもらえれば、デモします。

同時進行

2012-11-20 00:35:40 | Weblog
LPC1114FN28を使ったBlueHANDの製作を進めていますが、電話機を流用したSAM3S版の方の製作も並行して進めています。



こちらも同じくStrawberry LinuxのI2C液晶を載せましたが、こちらではバックライト無し版を使っています。電話機の受け台側にはLEDが入っていますので、PWMで生成した着信音を鳴らす際には、同じPWM波形でLEDを点灯させるようにしてみました。




着信時にはもちろん発信者番号を表示させる予定ですが、そちらはまだ作業途中。SAM3SにはRTC機能が備わっていますので、待ち受け画面には上の写真のようにカレンダー/時刻を表示させることができます。まだ日時設定機能を作っていないので、電源投入後の初期値からカウントしているため2007年の表示になっています。画面左上に1桁だけある数字(上の例では4)は、信号強度を示すアンテナ本数代わりの数字です。LCDアイコンではアンテナ本数の違いを表現することができないので、苦肉の策としてこんな手段をとってみました。

着信音を用意する

2012-11-18 17:30:44 | Weblog
11月も半ばを過ぎてMaker Faire Tokyoまでの残り日数も少なくなってきました。キーパッドからの入力はできるようになったので、着信音を用意することにしました。着信音についてはWT32で生成させることもできるのですが、今回のプロジェクトでは出力が受話器のスピーカなので、鳴らしたところで気がつきません。スピーカとアンプを追加して、受話器と同時に鳴らすというのもひとつの方策ですが、今回はマイコン側に圧電スピーカを用意してあるので、マイコンのPWMを使って着信音を鳴らすことにします。

検索して見つけた効果音サンプルのベル音をダウンロード/変換して用意した8000Hz, 8bitのPCMデータを使って、圧電スピーカを鳴らしてみたものの、なんだかくぐもった音になってしまいます。PWMポートに直接圧電スピーカをつなげているだけで矩形波出力になってしまっているのが原因でしょうか。この方式ではデータサイズもネックです。8bitでも1秒近い長さだとデータ量が8KBになってしまいます。SAM3S4であれば何の問題もありませんが、フラッシュ容量が32KBしかないLPC1114では、容量の1/4をベル音データに取られてしまうのは、ちょっとツライところ。そこで、方針変更して周波数と時間を指定して生成する電子音を鳴らすことにしました。

とはいえシャレた音データを自分で作るのも大変なので、いろいろと探しまわったところarms22さんのこの記事を発見。CTU内線着信音というのも、洒落ていてイイ!  苦労して用意されたデータのようですが、周波数そのものは3種類しかないんですね。ありがたく使わせていただきました。綺麗に鳴って大満足です。

LPC800

2012-11-14 14:34:39 | Weblog
YourTubeにてLPC800関連の動画を閲覧。



ついに8ピンも出ましたか。来るべきものが来たという感じ。これで、もうわたしはPICとかAVRを使うことは決して無いだろうと確信するに至りました。


DCCを使って作業中

2012-11-13 22:39:10 | Weblog
普段使うSAM3にはUSBデバイス機能があるので、仮想シリアルポートを使ってデバックメッセージを出力することでソフトの開発作業を進めています。LPC1114にはUSBはありませんし、シリアルポートはWT32をつなぐのに使用してしまいます。そこで今回は、CrossWorksのデバッガのデバックターミナル機能を使って動作確認。Cortex-M3のDCC(Debug Communication Channel)経由でメッセージを出力しています。




シリアルポートを使って、WT32にコマンド送れることを確認。DCCは便利ではありますが、JTAGでつながないといけないので、あくまでも開発途中にしか使えません。単独で動いている様子も確認できるようにしたいので、そのうちにBluetooth経由でデバックメッセージ拾えるようにしたいと思っています。

SB1602BW

2012-11-09 22:20:17 | Weblog
前回紹介したキーパッドをちゃんと取り付け。キーパッドは裏面がシールになっており、箱や基板へ貼付けることができます。できるだけ平らな方が好ましいので、片面のB基板に貼付けました。



キーパッドまで付けると、やはり表示器が欲しくなります。そこでStrawberry LinuxのSB1602BWを付けることにしました。この液晶なら横16文字表示できますので、電話番号を表示することができます。キーパッドと比べると大きさが不釣り合いなのと、基板から頭が出てしまうのが残念なところです。



この液晶にはアイコンがいくつか用意されているので、これらを状態表示に使うことができます。現在のところ、次のように使うつもりです。

アンテナ携帯側が圏内であることを示す。
オフフック通話あるいはダイアル中であることを示す。
HFP接続があることを示す。
電池電池残量


アンテナ・アイコンは残念なことに複数のアンテナ本数を示すことができないので、信号強度までは表現できません。電池残量は、携帯側の残量を示すこともできますが、電池駆動にすれば自局側の残量を示した方が良いでしょう。後ほど、どちらにするか決めることにします。LCDの左側に青色LEDをひとつ載せてあります。これはBluetoothの接続状態表示に使うこととします。






キーパッドの基板とマイコンの本体基板を、どうやって重ねようか思案した結果、次の方法をとりました。
  • キーパッドとLCDが載る上側の基板は片面基板なので、表面実装用のピンヘッダを使用。
  • 下側基板との接続には、連結フレームを使って高さを稼ぎました。
  • 連結フレームひとつだけでは基板を固定できないので、20mmのスペーサーを4角に配置することとしました。


マイコン基板側に圧電スピーカを追加して、組み立てると立方体に近い感じでまとまりました。格好だけは整ったので、ソフトの方にとりかかることとします。







キーパッドをつなげる

2012-11-06 22:41:58 | Weblog
LPC1114FN28を使ったHFPボードに電話機キーパッドをつなげてみました。




こちらのボードにはフックスイッチをつけるつもりはないので、キーパッドのいずれかのキーを押すことで着信応答することにしようかと思います。ボードは2階建てにして上層の基板にキーパッドを貼付ける予定。




使用したキーパッドは3x4のマトリックス構成です。eBayにて購入。4x4の構成のものもあったのですが、幅が広くなってしまいます。このキーパッドだとちょうど横幅がB基板とほぼ同じなのです。操作性を考えると発信と切断用にオンフックとオフフックボタンがついた3x5構成のものが欲しかったのですが、なぜかそういうものが見当たりません。電話というよりは、暗証番号入力用途に使われることが多いのでしょうかね。Nokiaなどの携帯の修理用パーツとして、ボタンだけとか受け側基板だけとかは何種類もあるようなんですが。以前SparkFunで扱っていたものの取り置きが残っているのですが、こちらはキー数が多くて使いきれないし丈が長過ぎるので、今回も見送り。