鯖江のご当地IchigoJam「MeganeJam」を入手。有機EL(OLED)ディスプレイを付けて「Meganeスカウター」にしてみました。
OLEDがかなり前に出ていて不格好ですが、このくらい距離を離さないと左眼のピントが合わず文字が読めません(^_^;)
メガネ基板の拡大図。中央の基板は、ボタン電池CR2032を2個並列につないだ電源シールドです。
右眼上のユニバーサルパターンでフォトトランジスタ回路を組んで、IN2にアナログ入力しています。
赤外線領域にピークがあるフォトトランジスタを使ったので、熱く燃えている人に向ければハイレベルな数値が出るはず(笑)
このメガネを装着して、「レベル1か…フッ、ゴミめ」とつぶやけば、キミも怪しい人サイヤ人だ!(^_^)
プログラム
起動すると、フォトトランジスタからのアナログ入力値(Rawデータ?)が表示されるので、測定したい対象に向けてボタンを押します。入力値から計算したLv(レベル)、AP(攻撃力)、DP(守備力)、MP(魔法力)、HP(体力)が表示されます。
表示数値は、アナログ入力値を元に適当に乱数で計算しています。
10 '*Megane Scouter 20 VIDEO 0:CLS:GSB @OLEDINIT 30 IF BTN() CONT 40 @LOOP 50 Z=ANA(2) 60 CLS:?Z:GSB @OLEDOUT 70 IF !BTN() GOTO @LOOP 80 CLS 90 Z=Z-100:IF Z<10 Z=10 100 L=Z/10:?"Lv ";L 110 X=L+RND(L/2):A=X*X+RND(Z*3):?"AP ";A 120 X=L+RND(L/2):D=X*X+RND(Z*3):?"DP ";D 130 X=L+RND(L/2):M=X*X+RND(Z*3):?"MP ";M 140 X=L+RND(L/2):H=X*X+RND(Z*3):?"HP ";H 150 GSB @OLEDOUT 160 WAIT 60 170 IF !BTN() CONT 180 RUN 190 @OLEDINIT 200 poke#780,#00,#40,#21,#00,#7F,#22,#00,#07,#AE,#D5,#80,#8D,#14,#20,#00,#DA,#12,#81,#CF,#D9,#F1,#DB,#40,#A4,#A6,#AF 210 forP=#788to#799:i=i2cw(60,#780,1,P,1) 220 next 230 poke #79a,#70,#b5,#40,#18,#07,#23,#1b,#02 240 poke #7a2,#c9,#18,#10,#24,#03,#78,#db,#00 250 poke #7aa,#d3,#18,#1d,#68,#0d,#60,#5d,#68 260 poke #7b2,#4d,#60,#20,#30,#08,#31,#01,#3c 270 poke #7ba,#f4,#d1,#70,#bd 280 @OLEDOUT 290 forP=0to7:i=usr(#79A,#907-P):i=i2cw(60,#781,1,#700,128):next:rtn