電子タバコを分解してみた

ども、Nullです。

巷で電子タバコが話題のようです。
これは、買ってくるしかないでしょう。

という事で買ってきました。

といっても、私はタバコを吸わない(というよりまだ吸えませんが、この先吸うつもりもありません)人間なんで、ここは

分 解

するしかないでしょう。

先っちょ(光るほう)のキャップが外れますので、そこからズルズルと引っ張り出してくると・・・

このように中身が出てきます。右に伸びているのがヒーターにつながっているものだと思います。ヒーター自体は本体の筒にがっちり接着されていて取ることが出来ず・・・


基板にはLED、コンデンサ、その裏にICと、気流センサ(コンデンサマイク)が乗っています。

マイクでノイズを拾うことで気圧センサとしているようです。さらに、一定時間ごとにノイズレベルの閾値を更新しているような感じがします。通常、吸う時にしか反応しませんが、しばらく息を吹いていると、とめた時に光りだします。その状態で光り続けているのかと思いきや、しばらくするとLEDが点滅して怒られます。これは通常時でも同じで、誤動作時の最後の砦のようです。

電源にはリチウムポリマのような・・・と書こうとしたんですが、取説にバッチリ「リチウムイオンポリマー電池」と書かれていましたw(分解目的で買ったものは、たいてい取説を読みません)
電圧からしてもリチウム系ということが分かります。

ただし製品自体が使い捨てなので、充電できるかどうかは不明。おそらく出来ると思いますが。もし出来るようなら、φ8mm、長さ50mmのLi-Po+その他微妙な部品たちが980円で買えてしまうことになります。


そしてこの電子タバコ、カートリッジをつけない状態で既に甘いんですよね。タバコって甘いの?吸わない人間には分かりません。やはり、価格相応の品質なんでしょうかね。

XBeeはじめました

ども、Nullです。


結構話題(?)のXBeeに手を出してみました。購入したのは、いわゆる普通のXBee


さて、XBeeを使うにはいろいろ設定があって、PC上の専用ソフトX-CTUから設定します。当然、そのためにXBeeをPCにつなぐ必要があります。SparkfunさんがXBeeをUSBでつなぐアダプタを出してて、スイッチサイエンスさんで扱っています。(Sparkfunさん以外でも同様なものを出しています。)
ただ、私が購入しようと思った時には在庫切れで購入できなかったので、半分仕方なく自作しました。
Eagleで描いたパターンはこんな感じ。

基本的な仕様は各所にあるXBeeのUSBアダプタと同様で、FTDI社のFT232RLを使っています。多少接続してないピンが有ったり無かったりしますが、今のところ不具合はありません。

これをOHPフィルムに印刷、露光、エッチングなどをやって基板を作ります。

ICが0.65mmピッチなので半田付けが非常に面倒ですが、めげずに半田付け。上の黄色い線はジャンパなので、それも繋ぎます。そして完成。

LEDはXBeeやFT232RLから出ているステータスの信号を全部引き出してます。各LEDの機能は左から、
Power、Tx、Rx、ON、Associate、RSSI
となっています。

早速基板を2枚作り、XBeeの設定〜ループバックテストをしてみました。

ちなみに裏はこうなってます

無事、成功です。(肝心のX-CTUのキャプチャがありませんが・・・)
これでXBeeを使う第一歩を踏み出せました。あとは、これを使うためにマイコンでプログラム書けば。それは、今製作中なのでまた後日。

PICkit3を買いました

ども、Nullです。

前回の更新から2ヶ月以上・・・
どうもお久しぶりです。


ということで、今更ですがPICkit3を買ってきました。
秋月電子で在庫を発見したものの、翌日には売り切れていたので仕方なくDigiKeyで購入。

さて、これが本体。

赤いです、カッコイイです。

そしてこのPICkit、なんでもPICに簡単にプログラムが書ける、とのことなので・・・

※くれぐれも真似をしないように

流石に、駄目です。
ということで、書き込みアダプタを作成します。PICkitからは書き込みに必要な信号のみが出ているので、それを適切なピンにもっていってやる、という事です。
PICkitの出力と、PICのピンとをにらめっこしてどこをつなげていくか考えます。また、Googleで「PICkit ZIF」あたりでググると参考になるページがたくさん出てきます。

そして作ったのがこれ。

基板に、PICkit接続用のコネクタと、ゼロプレッシャーソケットが乗っただけのシンプルなもの。PICkitとの接続は、こんな風にしています。

Lのピンヘッダを逆向きにして、高さを稼ぎます。PICkitへの接続は、この短辺だけで十分に接続できます。
そして裏側

ジャンパはできるだけ抑えた・・・つもり。
基板が汚いのは、最初配線図を反転させず出力して間違えたため。


動作確認はバッチリ。
今までは秋月PICライターで書き込みをしていて、たとえば16F877Aだと40秒程度かかっていたのですが、PICkitは一瞬。本当に一瞬で、書き込めているか不安になるくらい。
書き込みは、MPLABのほか、PICkit 3 Programmer(まだベータ版)からでも書き込めます。ベータ版ゆえ、まだ動作が不安定かな?

今回はDIPパッケージ用に書き込みアダプタを製作しましたが、ICSP(In Circuit Serial Programming)なのでいちいちPICを外すことなく、時には外せないチップのPICも書き込みができるので、非常に便利です。

一風変わったキーホルダー

ども、Nullです。

少しばかり更新が滞ってました。
ちょっとづつでも更新しないと。

ってなわけで、小ネタをうp。

遠目で見ると、怪しい黒いキーホルダーにしか見えません。
でも、よーく見てみると、MicrochipさんのPIC、16F873Aがくっついてます。

諸事情(詳しくは聞かないで!w)により書き込めなくなったPICの足ををそぎ落として、穴を開けたら完成、というなんとも言えないキーホルダーとなっています。
8ピンの小さなものや、40ピンの大きなものまでいろいろな大きさのものがありますが、この28ピンってのがスリムでいい感じに思います。
ほかのICや、窓付きマイコン、果てはBGAなどの大きなICで作ってみるのも面白いかもしれません。

そしてこの怪しいキーホルダーをつけておくだけで、変態度が若干アップすること間違いなし!

動画コメントレス

ども、Nullです。

WMFMつくってみた動画へのたくさんのコメント、ありがとうございます。さて、その中で気になったコメントへのレスをしていきたいと思います。

>てってってー
 てってっててー

>これBT搭載じゃないか?
 コレは搭載してないですね。

>ブルーツゥースより安上がりでは有る
>blue tooth高いもんなあ
 だけど実はBluetoothアダプタも持ってたりする。

>Walkmanの電池が切れそう
>電池w
>充電w
 点滅してるけど、点滅しだしてからの持ち方が異常w

>ちょw両方もってるwww
 結婚しm(ry

>電気科がんばれ
>これは電子科だろうw
 いえ、電気電子工学科です(キリッ

>FM飛ばす方はボタン電池とかにすればいいのに・・・
 結構消費する=電池交換が面倒なわけです。
 それに、Walkmanがせっかく電源供給してくれてるのに、使わない手はないですよね。

>Null=0
>0さん
 Nullは何もはいってないのです。空です。
 0さえも入ってないのです。

>うp主さんなら、ウォークマンを作ったほうが楽じゃね?
 無理\(^o^)/

>おれiPhoneだし
 調べてみたところ、Dockコネクタも3.3V出力があるようです。
 僅かながら小型化して搭載できるみたいですね。

>電波法関連
 電波暗室(またそれに代わるもの)が身近にない&測定機器も無い状況なので、はっきり「合法」「違法」とは言えないです・・・。ただ、そこまで強烈な電波が出ているようには見えないです。(アンテナがあれだし。)

>たくさんのお褒めの言葉
 すみません、本当にありがとうございます。

10/04/16 3時現在のコメントへのレスでした。

Walkman専用FMトランスミッタ詳細

ども、Nullです。

このはてなダイアリーって編集にHTMLが使えるらしいのですが、ついmixiの癖でHTMLを使わない書き方をしてしまいます。まぁこの辺は慣れでしょうかね。

ということで、Walkman専用FMトランスミッタをつくってみた、の詳細です。かなり長くなることが予想されるので覚悟しておいてくださいw
Walkman専用FMトランスミッタ、って結構長いですよね、ってことで、以下プロジェクト名のWMFMを使って行きたいと思います。カテゴリにも設定しておきますね。


― 作った経緯
何事にも理由があります。
第一に、車で音楽が聞きたい、って事。
カーステは付いているけど、今時カセット(笑)と、FM/AMという時代を感じるスペックです。
こんな時代ですから、CD/PC→カセットなんて発想はないし、カセット変換も面倒だなぁ、ましてやカーステ購入とか・・・、と思った末のFMトランスミッタ。
Walkmanに付いていればよかったんだけれど、生憎付いてないし、普通にFMトランスミッタ買っても面白くないじゃない、とは思ってました。

そして調べてみるものの、iPod用は山ほどあるのに、Walkman用ってのは数えるほどしかない。第一、1つしかないシガーソケットを占領するのはケシカラン!と思ったり。まだ充電できるので良いものの、3.5mmプラグ搭載の、ただ飛ばすだけ、ってのはどうも気に食わなくて。
しかも、線がだら〜ん、ってなってる状態ってあまり好きではなかったりするので、この条件だけで製品が限られてしまいます。(iPodも含めて。)
そうすると、LAT-FMWS01ってのが一番コンセプト的にあってることになるらしい。

ただ、デカいよね。
あとちょっと高いし。

という理由だけで、自作に走る。結果、今に至るわけです。
自作するからには、妥協は出来ない。初期の段階で、
・周波数変更は絶対出来るようにする
・余計なものはつけない
・どうせなら超小型化
の3つ目標を設定しました。


― 外身
よし、自作することは決定した。
問題はどこまでコンパクトにするか、できるか、だ。
マイクのときに使った録音用ケーブルが使えればなぁ・・・、と思い、まずはどんなモジュールがあるか探しました。
どーっかで超小型のFM〜があった気がするんだk・・・って、受信側でしたかそうでしたか。
でも、受信があるなら送信もあるはず、さらに探してみると、今回使用した新潟精密さんのNS73Mを発見しました。
このサイズなら、録音ケーブルに入りそう。そう確信して部品の発注をかけて製作に一歩前進。

このとき一番気がかりだったのが、ピンヘッダの高さ。秋月で売ってるローハイトピンヘッダ+基板厚でぴったりの高さになったのは、奇跡としかいえないと思う。
またありがたいことに、NS73Mの使用例自体は少ないながらも有用な情報ばかりで、本当に助かりました。


― 回路
ぶっちゃけ、NS73Mのデータシート通りです。
そのほか、使った部品のデータシートを参照しながら組めば完成します。
どーしても回路図がほしい!って方は、やっつけ回路図でよければどうぞ。

あと、パーツリスト。

部品 数量 備考
録音用ケーブル WMC-NWR1 1 ピン数注意(後述)
ハーフピッチ(1.27mm)基板 1
FMトランスミッタモジュール NS73M 1 秋月でセットになってる
水晶発振子 32.768kHz 1
PIC12F629T-I/SN 1
ポイントレギュレータ TAR5SB33 1 3.3V
ピンソケット ローハイト4pin 1 秋月のコレをカット
チップ抵抗 1kΩ 3 1608サイズ
抵抗 10kΩ 1
チップ積セラ 0.1uF 1 2012サイズ
チップ積セラ 1uF 1 1608サイズ
チップ積セラ 10uF 1 3216サイズ
ポリウレタン線 φ0.26 適当 配線用
やる気 MAX
根気 MAX

あとは無理やり押し込んで完成となります。
録音用ケーブルのピンに関してですが、最近はどこのお店でも特定ピンしか埋まっていない物しか置いてないようです。
この場合何が問題になるかというと、肝心のラインアウトが取れない、という事です。したがって、全ピン埋まっているものを発見したら、即確保しましょう。そして私に譲ってくださいw
肝心のアンテナは、外周に沿ってひと巻きしているだけです。これだけでもカーステで拾えるほどの電波は出ているようです。


― 拡張基板
動画の最後の拡張基板を使うことで、
・87.6MHz〜89.8MHz、256段階に周波数が変更できる
・接続が解除されるまでその周波数で運用(仮適用)
・設定を保存して、次回接続時もその周波数で運用
・設定をリセットしてデフォルト(89.6MHz)で運用
ができるようになります。
一度設定してしまえば、拡張基板をつけておく必要はありません。

基板のファンクションはこちら。

SET(1度押し):UP/DOWNで変更した周波数を適用
SET(長押し):設定をPIC内のEEPROMに保存
SET(押したまま挿す):周波数をリセット(89.6MHz)
UP/DOWN:周波数を上げる/下げる

UP/DOWNの長押しによる上がりすぎ/下がりすぎとチャタリングを防ぐため、1度入力されると数百msのインターバルが入ります。逆に、大幅に周波数を変えたいときにはネックになったりします。


― ソフトウェア
正直見られたくない部分w
PICは小型化のために外部クロックを使用せず、内臓クロックを使用しました。そこまで精度が必要な制御をしていないので無問題です。
NS73MはI2Cと3-wireのどちらかでコマンドを送信することが出来ます。3-wireの方が適当にプログラムを組んでも動きそうだったので、今回はこちらでプログラムを組みました。I2CでやればPICのピンが1ピン余るので、LEDやら追加できて面白いと思います。
・(参考)3-wireでのコマンド送信概要(Ax:アドレス Dx:データ)

モジュールを使う際には、電源投入時にNS73Mの内部レジスタに適当な値を書き込む必要があります。
PIC(C言語)の扱いもネ申レベルではないので、高度なテクは使えません。
おそらく参考にならないでしょうけど、内部でやってることを簡単に。

1.レジスタに書き込む値の下処理
レジスタへの値の書き込みは、
[A3][A2][A1][A0] [D7][D6][D5][D4][D3][D2][D1][D0]
のようになっています。I2Cの場合にはこれを左から順に送ってあげればよいのですが、3-wireの場合には
[A0][A1][A2][A3] [D0][D1][D2][D3][D4][D5][D6][D7]
と、それぞれ逆順になってしまいます。
だったら、最初から用意する値をこのフォーマットに当てはめて送ってあげればよいのです。ただ、ビット列の0/1で時間方向に連続でHigh/Lowを出す簡単なやり方を知らないので、下処理として、先ほどのビット列を10進に変換します。
ex.レジスタR1
元:0001 10110100
逆:1000 00101101
10進:2093

このように書き込み対象の全レジスタ分の下処理をして、使う順番に配列dat[0]〜dat[14]に放り込む。

2.書き込み
先ほどの概略図どおりに出力できるよう、こんなプログラムで処理をさせています。

for(i=0;i<15;i++){
	x=4096;
	while(!(x==1)){
		x=x/2;
		if(dat[i]>=x){
		output_high(DA);
		dat[i]=dat[i]-x;
		}else{
		output_low(DA);
		}
		delay_us(10);
		output_high(CK);
		delay_us(10);
		output_low(CK);
		delay_us(10);
	}
	output_low(DA);
	delay_us(10);
	output_high(LA);
	delay_us(10);
	output_low(LA);
	delay_ms(10);
}

要は、2進を10進に変換する逆をやっている感じです。ただ、10進を2進に変換するやり方ではありません。

通常2進→10進は11010(5bit)の場合
1*16 + 1*8 + 0*4 + 1*2 + 0*1 = 26
となります。x=26としてこれの逆をしようとすると、
26から16は引けるか→Yes(1) x=10
10から8は引けるか→Yes(1) x=2
2から4は引けるか→No(0) x=2
2から2は引けるか→Yes(1) x=0
0から1は引けるか→No(0) x=0
となり、こんなやり方をしても1/0をYes/Noで出力できます。当たり前ですがこれは処理で出しているので、間に他のどんな処理でもさせることが出来ます(この場合はCK出力)。
一つのレジスタが終わると、最後にLA出力をして次のレジスタに進みます。これはdat[i]をforで回しています。

3.周波数変更
周波数変更のブロックも似たようなことをやっています。

緑で網掛けしてあるのが、周波数変更に必要なレジスタ値です。2つに分かれているのが分かると思います。
このレジスタ値はP値と呼ばれていて、計算法は、
(f+0.304)/0.008192
を2進表記したもので、f=89.6MHzであれば、
10101011011111
となります。これを上のように分けると、
R3[D7-D0]:11011111
R4[D5-D0]:101010
と、こんな感じになります。周波数を変更するにはこれらを弄ればよいのですが、都合よく下位8bitがレジスタR3に並んでいます。
R4にまで手を出せば、もっと広範囲に周波数が変更できますが、そこまで変更することも無いだろう、それに面倒だし*1、ということでR3のみを変更することにしました。なので8bit=256段階の変更が出来る、という仕様になっています。

このP値も、先ほどのようにしてNS73Mに送っています。P値生データは0-255の8bitデータですから、このままEEPROMに書くことが出来ます。起動時にEEPROMから読み出して、レジスタに書き込みます。

俺も作りたい!っていう変態さん用に、HEXファイルだけ置いておきますね。


― 目標達成?
最初の目標はあっさりと達成してしまいました。
ただ、いま目標を作ってみると、動作確認用に青LEDが欲しかったなぁ、と。こういうデバイスには青が一番似合うと思いません?
あと充電機能が欲しい。あれだけ線が線がといっても、電池が切れては意味が無いわけで、これも着脱式のケーブルで充電が出来るようにしたかったですね。ピンソケットに無理やり5ピン目を入れられれば、充電も夢ではなくなります。ってか、出来ます。


予想通り長々と書いてしまいました。見てくれれば幸いです。

あと、動画のタグに「販売するべき」とか、コメントにもそういうこと書いてあるんだけど・・・、本当に欲しい人居ます?実は2つあったりするので、コメントとか書いてくれると考えるかも。

*1:ちなみに、R4の変更までにとどまっていれば、ひょっとしたらR4の変更にも手を出したかもしれません。しかし、別のレジスタに、バンド設定というものもあり、それらも弄るとなると結構大掛かりになりそうだったので諦めました。

何作ったの?

ども、Nullです。

放置が続いておりましたが、ようやく更新です。


まず、お前何作ったの?って方用に作品紹介。

Walkman専用マイク (sm9389849)

Walkman専用FMトランスミッタ (sm10326940)

(先ほどアップしました。)

今のところ、この2つを「つくってみた動画」としてアップしています。
こんな具合に、自作のWalkmanアクセサリーなんかつくってます。

そのほか趣味で色々怪しい工作をしている人間です。

今後、ここで動画にしたやつの詳細や動画にするまでも無いどうでもいい物のことを書いていこうと思います。