2016年03月20日

Felicaの非保護領域に任意のデータを書き込んでみる(VB.net)

おサイフケータイには、自由に読み書きできるFelicaのエリアが、16バイト×24ブロック(384バイト)あります。
felicalib.dllには書き込む手段も提供されているようなので試してみました。
ちなみに、modFelicaLib.vb のコメントを手直しするとこんな感じです。

'【関 数 名】felica_write_without_encryption
'【第1引数】[in] f felicaハンドル (felica構造体のポインタを指定する)
'【第2引数】[in] servicecode サービスコード
'【第3引数】[in] addr ブロック番号
'【第4引数】[in] *buf データ(16バイト)のポインタ
'【戻 り 値】エラーコード



ちょっとアプリをこしらえて、、、サービスコード70C9に試してみると、、、

felica_np_rw_sc.png


無事に書き込めました。

write_result.png


・・・384バイトかぁ・・・アイコン入れるとか・・・
posted by MON at 00:12| Comment(2) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年03月17日

Felicaで既知のサービスコードとブロック番号に書かれている文字列を読み取る(VB.net)



Felicaでちょっと遊んでいるのですが、とあるカードには、とあるサービスコードのとあるブロック番号に
とある文字列が書き込まれていて、それを読みだすといろいろ便利なことが出来そうです。
ということで、ここのページで公開されている「CFelicaLib.vb」に機能を追加しました。

    '=============================================
    '【関 数 名】read_string
    '【第1引数】[in]  Integer  サービスコード
    '【第2引数】[in]  Byte  ブロック番号
    '【戻 り 値】[out] String   文字列
    '---------------------------------------------
    ' 既知のサービスコードとブロック番号から文字列を読み取る
    '=============================================
    Public Function read_string(ByVal serviceCode As Integer, ByVal address As Byte) As String
        Try
            '------------
            ' エラー処理
            '------------
            If f_ptr = IntPtr.Zero Then
                Return ""
            End If

            '----------
            ' 変数定義
            '----------
            Dim rStr As String
            Dim buf(15) As UInt8

            '-------------------------
            ' 変数bufのアドレスを取得
            '-------------------------
            Dim gch As GCHandle = GCHandle.Alloc(buf, GCHandleType.Pinned)
            Dim b As IntPtr = gch.AddrOfPinnedObject().ToInt32

            '-------------
            ' 指定したサービス、アドレスから読み取り
            '-------------
            felica_read_without_encryption02(f_ptr, serviceCode, 0, address, b)
            rStr = System.Text.Encoding.ASCII.GetString(buf) 'HexToAsc(buf)

            '--------------
            ' メモリの解放
            '--------------
            gch.Free()

            '------------
            ' 結果を返す
            '------------
            Return rStr
        Catch ex As Exception
            MessageBox.Show(ex.Message, "read_str()")
            Return ""
        End Try
    End Function
 

作者の白執事様に感謝します。
posted by MON at 21:26| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年03月14日

プロクソン フライスマシン No.16000の修理

bfw36.jpg

最初は、モーター焼けかと思ってテスタで当たってみましたが正常でした。
トランスもAC38Vが出ていて問題なし、基板も焼損は見あたりませんでした。
スイッチを当たってみると、どちらも導通なしで、恐る恐るミノムシクリップで
バイパスしてみると、ブルンッと反応してれました。

秋葉で適当なスイッチを調達しても良かったのですが、プロクソンは良心的で
パーツの品番で取り寄せが可能です。
(フライスモーター No.20160 の、スイッチ 20160-18)
近所のホームセンターに依頼して、納期 約20日、価格は375円でした。

手持ちのドリルスタンド No.28606 + マイクロクロステーブル No.27100 が
何故かガタついてるので、リプレイスしたいのですけど………
置く場所がないな\(^o^)/
posted by MON at 23:23| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年02月28日

近似色を選ぶ方法に関する実験

ブログに収まりきらなかったので↓のページにまとめました。
http://nomulabo.com/sam/color_reduction.html
posted by MON at 23:50| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年02月23日

ステッピングモーターコントローラの製作

stepper_1.jpg

PIC16F88を使用して、ステッピングモーターコントローラを作りました。
ボリュームで速さと回転方向を指定します。
また、外部からパルス信号を入力しても、任意のステップ数で制御できるようにしました。
ソースはEX_STEP.Cを改造したもので、割と簡単に制御できました。
posted by MON at 00:24| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年02月02日

サーボモーターの軸の延長

servo_shaft_extension.jpg

シャフトにピンバイスで2.5mmの下穴をあけて、
Dサブコネクタで使われる取り付けスペーサーを挿入しました。
受け側がナットなので、さらなる延長も容易です。
posted by MON at 22:21| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年01月28日

よだれかけに一工夫

スタイがくるくる回ってしまって、お洋服が汚れてしまうので
ダイソーで買ったレース付きカバンテープとマジックテープを縫い付けて
胴回りで止められるように改造しました。

abu_magic_tape.jpg

なかなか良い感じで満足です。こうあるべき。
posted by MON at 00:20| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年01月06日

喫茶店に特小を設置してきた。

昨年末に都内某喫茶店で無線機のセットアップをしてきました。

この店舗は客席と厨房が離れているため、店員がオーダーを取った後に
厨房と客席を往復していたのですが、無線機を使ってその手間を無くしたいとのことでした。

距離は最大でも50m程度なので特定小電力トランシーバーでOK。
厨房側はACアダプタが使え、将来の拡張が可能なIC-4188Dをチョイス。
オーダーを確実に聞き取れるように、外部スピーカー(3W x 2)を設置しました。
また、そのためのインターフェースボックスを制作&ハンドマイクのコネクタを加工しました。

tokusho_chubo.JPG
(もちろん、ガムテープは仮止めですよ!)

客席側は同じアイコムのIC-4100にしました。

tokusho_kyaku.JPG

オーナーには大変喜んでいただきました。
休日に買い出しやら加工をした甲斐がありました。

tokusho_junbi.JPG
 
posted by MON at 23:04| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年01月04日

「しいたけ成長」の倍率に関する考察

正月にやっていた、大人のピタゴラスイッチで「しいたけ成長」という
椎茸が伸びている様子を、鏡を使って確かめるコーナーがありました。

倍率が気になったのですが、検索しても解説サイトが見つからなかったのでエクセルを使って計算してみました。

しいたけ成長計算.PNG

レーザーポインタの反射光と廊下で作られる大三角形の鉛直線の長さ(H)は、
廊下の長さをL、反射光の角度をθとすると

H = L × tanθ

となります。
θは、鏡の足から木片までの距離を D 、木片と鏡で与えられる高さ(縦)を T、
レーザーポインタの角度を p とすると

θ = p - 2 × arctan(T/D)

鏡の角度.jpg

鏡とレーザーの角度の関係.PNG

となります。
椎茸の成長(s)は天秤により20倍されているので、Tはもとの高さをTmとすると
T = Tm - 20 × s
となります。

よって、D = 30[mm], Tm = 25[mm], p = 80[deg], L = 50[m] とすると
椎茸が 0.01mm 成長すると高さが 39.5cm 変わることになり、
倍率は39478倍となります。

うーん、合ってるのかなぁ。。。。
posted by MON at 22:19| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年12月27日

SW-125S(LCD)に以前作ったBERカウンタを収めた。

一時期、品切れになっていた、タカチの「プラスチックケース SW-125S(LCD)[P-09834]」が
秋月電子に再入荷していたので、以前作ったBERカウンタを収めました。

lcd_case.jpg

満足。
posted by MON at 01:45| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年12月24日

缶コーヒー温め装置の製作

缶コーヒーウォーマーを作ってみました。

・フォトリフレクタ搭載で、缶コーヒーを置くとスイッチON。
・サーミスタで温度を監視し、設定温度まで上昇したらスイッチOFF。
・温め時の消費電力は57.7W。15分ほどで適温に到達します。
・マイコン不使用でプログラミング不要です。

 

 

詳しくは↓
http://nomulabo.com/can_warmer/
posted by MON at 00:42| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年11月10日

インフルエンザワクチンは意味がないのか?

インフルエンザの予防接種は意味ないよ!WHO(世界保健機関)も認めてる!
そんな話を耳にしたので、マジかよと思ってソースを当たってみました。

すると、該当ページhttp://www.who.int/influenza/vaccines/en/)の一文目に

who_recommends_influenza_vaccine.png

Vaccination is the most effective way to prevent infection and severe outcomes caused by influenza viruses.
ワクチン接種は、感染およびインフルエンザウイルスによって引き起こされる重篤な結果を防止するための最も効果的な方法です。

と、いきなり書かれてました………

なんだよ、めっちゃ推奨してるやん。

また、ここのページhttp://www.who.int/mediacentre/factsheets/fs211/en/)にも
Key factsに

Influenza vaccination is the most effective way to prevent infection.
インフルエンザワクチンは最も効果的な予防策です。

と載っていますし、Preventionの項目にも

The most effective way to prevent the disease and/or severe outcomes from the illness is vaccination.
感染およびインフルエンザウイルスによって引き起こされる重篤な結果を防止するための最も効果的な方法はワクチン接種です。

と書かれていますね。
せっかくなので続く文章も訳してみますと

Safe and effective vaccines are available and have been used for more than 60 years.
安全で効果的なワクチンが60年以上使われています。

Among healthy adults, influenza vaccine can provide reasonable protection.
健康な大人なら、インフルエンザワクチンは有意な防護を提供します。

However among the elderly, influenza vaccine may be less effective in preventing illness but may reduce severity of disease and incidence of complications and deaths.
年配者は予防効果は少ないですが、合併症や死亡の発生率を軽減するでしょう。

だそうです。

ちなみに、今年おすすめの混合も発表されていて、A/California、A/Switzerland、B/Phuketだそうです。

ただ、製薬業界との癒着については言及がないので、陰謀論は Plausible ですね!
 
 

posted by MON at 00:01| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年10月22日

トップバリュ 特選 丸大豆しょうゆ の 注ぎぐち比較

sc1.JPG

左が、イオンの TOPVALU 特選 丸大豆 しょうゆの注ぎ口で
右は、キッコーマンの いつでも新鮮しぼりたて生しょうゆの注ぎ口です。
トップバリュの容器は注ぎ終わったときに醤油がたれて、キャップ周りが汚くなってしまいます。
対してキッコーマンの方は注ぎ口の形状が工夫されていて、醤油が垂れづらくなっています。
また、一滴づつ醤油を垂らすことが可能です。

この吐出容器の形状は株式会社 吉野工業所との共同出願による特許を取得しているようです。
http://www.ekouhou.net/%E5%90%90%E5%87%BA%E5%AE%B9%E5%99%A8/disp-A,2012-192975.html

味は……論じるほどの舌を持ち合わせていませんが、キッコーマンの方が美味しい気がします(^^

sc2.JPG

posted by MON at 01:02| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年08月25日

node.jsから無線機をコントロールしてみる。



node.jsとnode-serialportを使って無線機を操作してみました。
ブラウザから無線機を操作したときは、他のブラウザ上でも周波数やモードが変更されます。
無線機を直接操作した場合は、ブラウザに無線機の状態が反映されます。

以下のツールたちを利用しました。
jQuery.knob + node.js + socket.io + node-serialport + IC-706MK2G
posted by MON at 00:38| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年08月21日

tesseract-OCRで遊んでみる

測定器などの画面表示から測定データを記録したい場合、目で見て紙に書いても良いのですが、
WEBカメラでキャプチャしてOCRをかければ自動化出来そうです。
実際にやってみました。

tesseract-ocr.JPG

画像関係は、何故かVBよりもC#の方がサンプルが豊富です。
キャプチャに関しては下記サイトのプログラムをベースにしました。
http://shokai.org/blog/archives/1546

左にプレビューを表示させて、真ん中にキャプチャします。
これを、右クリックと左クリックで2点の座標を指定し、
右側にトリミングして
http://dobon.net/vb/dotnet/graphics/triming.html
明るさ、ガンマを調整して
http://dobon.net/vb/dotnet/graphics/setgamma.html
OCRにかけます。

OCRは「Tesseract ocr」という画像認識ライブラリを
C#からも扱えるようにしたラッパがあったので、下記サイトを参考に使いました。
http://whoopsidaisies.hatenablog.com/entry/2013/12/16/174819

7セグメント用の学習データは、githubに公開されていました。
https://github.com/arturaugusto/display_ocr

これを
public string tessdataLanguage = "letsgodigital";
といった感じで学習データに指定してOCRをかけたところ、無事に読み取ってくれました。

OCRの読み取りモードは、Tesseract.PageSegModeで指定していて
Auto や SingleWord, SingleLine 等がありましたが、SingleLineが一番成績が良いようでした。
posted by MON at 00:47| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年06月21日

秋月の300円ウェブカメラ

dx-670.jpg

秋月で300円で売っているDX-670ですが、Windows8.1 32bitで使えました。

「SG90 PTZ」には分解してマウントしました。
posted by MON at 22:03| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年06月13日

無限豆苗の夢、潰える

豆苗を食べた。
再生栽培しよう。
水耕栽培は水を1日2回替えなきゃならんから面倒だな。

プランターに植えれば解決!
無限豆苗出来るかも!


枯れてしまった&虫がわいた。

tomyo.JPG

大葉は元気です。
posted by MON at 12:51| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年06月08日

サーボモーターで遊びはじめた。



最近、サーボモーターの制御をする機会があったので、作成したコードとスキルを生かすべく
SG90マイクロサーボを使ったパン/チルトおもちゃを作ってみました。

日本で買うとモーターが一つ400円、キットが458円の計1258円ですが、
AliExpressで買ったら送料込み4.53USDでした。注文から到着まで12日かかりました。
マウントとサーボをつなぐ部品(ホーン)は付属していました。

動画は秋月の100円ジョイスティックとPIC12F683 2個を使って操作しています。
意外にキビキビ動いていますが、調子こいて遊んでいると中のギアが粉砕してしまうので要注意です。

servo_gear_broken.JPG
posted by MON at 00:23| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年05月12日

充電しながらUSBデバイスが使えるホストケーブルを作る

ca3.jpg

Si02BFというWindowsタブレットを購入したのですが、充電端子がマイクロUSB端子と共用で、充電しながらUSB機器を使用することは、そのままでは出来ません。
Miix2 8で利用できるらしい三つ叉のUSB OTGケーブルは数百円で売っていたのですが、いろいろ調べてみると、使用できない場合も多いらしく、
使用できたとしても充電が非常に遅かったり、変換に変換を重ねる必要があったりする場合があるらしく面倒そうです。
http://siosalt.sub.jp/blog/?p=905

さらに調べると、こんな記事を見つけました。
http://news.mynavi.jp/column/androidnow/084/
この記事によれば、USBのIDピンを124kΩでGNDに落とせば(高速)充電しながらUSB機器を使えるようです。

簡単そうなので、作ってみることにしました。
普通のUSB OTGケーブルはホストとして動作するように、IDピンがGNDに落ちているようです。(オープン時はクライアント動作で充電)
と言うわけで、マイクロUSBの延長ケーブル(MBE-05 130円@千石)を購入しました。
このケーブルは 緑:VBUS, 茶:D-, 青:D+, 赤:GND, 白:ID となっていました。

これをユニバーサル基板でホスト用のUSB Aメスケーブル&充電用マイクロUSBメスケーブルに分岐させました。

ca2.jpg

124kΩはE12系列の 56kと68kをシリアルで作成。電源状態が分かるようにVBUSにLEDを付けました。
シールドはハンダが乗らなかったので、スズメッキ線で縛り上げて固定。
IDピンにスライドスイッチを設け、(充電器を忘れた場合にも使えるよう)普通のUSBホストケーブルにもなれるようにしました。
また、ハーフピッチ基板を使用してコンパクトにまとめました。

実際に使用してみると、見事、1.2〜1.3Aで充電され、同時にUSB機器を使用することが出来ました。
posted by MON at 23:23| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年05月01日

GP232(シリアル−GPIB変換アダプタ)製作メモ

今更ながら、GP232(シリアル−GPIB変換アダプタ)を作ったのでメモ

gp232.JPG

部品は数年前に購入済で下記のような値段だったかと。

コネクタ 200円
PIC16F876 450円
TLP558 350円
TLP555 200円
+こまごまで計1500円くらい。

アンフェノールコネクタを基板に直付けするために、
コネクタの内側にユニバーサル基板を3枚重ねてセメダインで固定。
ピッチがユニバーサル基板と異なるので12ピンと11ピンは外側に曲げた。

製作には5時間くらいかかった。
ファーム書き込みのため、28pin PIC用のアダプタを作った。

pic28pin.JPG

PICKIT2は終息したみたいですが、PICkit 2 Programmer は下記URLからダウンロード出来ました。
http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=pg164120

ファームウェアはトラ技のHP(2005年2月号)にありますが、作者のHPに最新(最終?)版があります。
http://www.activecell.jp/gp232/eg4GP232.htm
http://www.activecell.jp/gp232/files/CD-R1.40.zip
eg.CardOpenではなくegDef.CardOpenを使えば、後は同じように操作できます。

作者の木下様に感謝します。

海外では下記のような例があるようです。
http://www.webalice.it/hotwater/USBpicplot.htm
http://www.webalice.it/hotwater/PicPlot.htm
http://rxcontrol.free.fr/PicGPIB/
http://www.thebackshed.com/forum/forum_posts.asp?TID=5438
http://www.radioradar.net/print.html?content_id=7037
posted by MON at 20:35| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
【今是昨非】http://nomulabo.com/