2017年6月9日金曜日

n進数の話(続き)

今度は違う人から質問が来ました。
その人は「16進数」が知りたいらしいです。

「いやいや2進数と同じでしょ!」と思うのですが、わからない気持ちも理解でします。

前回のBLOGにも書いたように
10進数は「じゅう」って言ったら負け。
2進数は「に」って言ったら負け。
同じように考えれば16進数は「じゅうろく」って言ったら負けなだけなのです。

その人曰く
 人間界には0~9の10個の数字しか存在しない。
 2進数の場合0と1を使えば良い。
 8進数の場合0~7を使えば良い。
 ところが16進数の場合0~9では表現できない!
 0~15だと、既に2桁になってるし!
 ってかAとかBとか英文字でてきて意味わかんないし!
との事。

Aは一文字、つまり一桁ですよね。
B、C、D、E、Fも一桁ですよね。
16進数の場合0~F迄で16個の数字を表現します。
0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
16個あるでしょ?

Fの次は?
Gではありません。
16個目の次は桁上がりです。
つまり10です。

下記、左が10進数で右が16進数の数字です。
0=0  1=1  2=2  3=3  4=4  5=5
6=6  7=7  8=8  9=9 10=A 11=B
12=C 13=D 14=E 15=F 16=10
16の所で桁上がりして10になりました。
念の為、もう少し途中経過を書きますね。
43=2B
94=5E
ですね。

こんなのどうやって計算するの!?

落ち着いて下さい、簡単です。

まず16進数を10進数に直す方法を書きます。
例として16進数の5Eを10進数にしてみましょう。
まず上の桁が5ですね、つまり16が5個集まっているのですよ。
まず16進数の50を10進数に直すと「16×5」で80です。
あとは下の桁のEですが…これは数えるしかないですね。
9、A、B、C、D、E = 9、10、11、12、13、14
16進数のEは10進数の14ですね。
さっきの80(50の10進数)と、今の14(Eの10進数)を足すと94です。
なので16進数の5Eを10進数に直すと94という事です。

A~Fを英文字として認識するのではなく、9以上の一桁の「数字」として認識すれば良いのですよ。
応用すると「20進数の場合は0~J迄を使えば良い」感じですね。

わかりましたか?
これで10進数以上も対応できますね!

2017年4月21日金曜日

n進数の話

友人から「2進数」について質問されました。
そこで私が「2進数」を説明するために考えた事をココに書いておきます。
学術的に正しい説明かどうかは知りません。
ただ友人に理解してもらえるように書いたつもりです。

まず「2進数」とは何か?
 10進数って1桁が0~9までの10個の数字があるよね。
 10個の数字があるから10進数って言うのだと思うん。
 同じ考え方をすると2進数は1桁が0と1しかありません。
 2個の数字しかないから2進数って言うのだと思うん。

ゲームをしよう!
 10進数ゲーム!
  ルール:「じゅう」って言ったら負けね
   0(ぜろ)
   1(いち)
   2(に)
   3(さん)
   4(よん)
   5(ご)
   6(ろく)
   7(なな)
   8(はち)
   9(きゅう)
  その次は?「じゅう」って言ったら負けだよ?
   なので10の事は「いち、ぜろ」って言えばいい。
   「いち」と「ぜろ」の2つを言ったよね?
   つまり、それが2桁なんだ。
 では同じように2進数ゲームをやってみよう!
  ルール:「に」って言ったら負けね
   0(ぜろ)
   1(いち)
  その次は「2」を何て言えば良いの?
  そもそも違うよね?2は使わないんだから。
  10進数の場合、10は2桁ですよね。
  2進数の場合、2は2桁なんですよ。
  なので0、1の次は10なんです。
  10進数で「じゅう」って呼ばれる一桁は存在しません。
  2進数でも「に」って呼ばれる一桁は存在しないんですよ。
  では話を戻して
   0(ぜろ)、1(いち)の次は10「いち、ぜろ」ですね。
  せっかくなので、もっと先まで数えてみましょう。
  0(ぜろ)、1(いち)、
  10(いち、ぜろ)、11(いち、いち)、
  100(いち、ぜろ、ぜろ)、
  え?もぉ100なの?
  そうですよ、10の次は11、これはわかるでしょ?
  11の次は12、、、いや2は使っちゃダメだって。
  んじゃ繰り上がりして21、、、いや2入ってるし(笑)
  そしたら桁上がりするしかなでしょ、と言う事で100。
  すぐ桁上がりしちゃうので、もう少し数えてみよう!
   0、1、
   10、11、
   100、101、
   110、111、
   1000、1001、
   1010、1011、
   1100、1101、
   1110、1111、
   10000、、、、、
  わかった?これが2進数ね。

指折り数える事も可能だよ!
手の指、両手で10本あるよね?(ない人ごめんなさい)
 まず10進数。数が増えるごとに指を折ってみよう。
 両手を開き、手のひらを自分に向けてください。
  0は両手を開いてます。
  1は右手の親指を折りましょう。
  2は右手の親指と人差し指を折りましょう。
  3は右手の親指と人差し指と中指を折りましょう。
  4は右の親、人指し、中、薬
  5は右の親、人指し、中、薬、小
  6は右の親、人指し、中、薬、小、左手の小
  7は右の親、人指し、中、薬、小、左の小、薬
  8は右の親、人指し、中、薬、小、左の小、薬、中
  9は右の親、人指し、中、薬、小、左の小、薬、中、人
  10は両手の指、全部折るよね。
 次は2進数、とりあえず片手だけで十分かも。
 右利きだと思うので、右手を例に書きます。
 まず右手を開き、手のひらを自分に向けてください。
 指を伸ばしている状態を0、指を曲げている状態を1とします。
  右手の指5本伸ばしている状態は「00000」ですよね?
  つまり0は「00000」です。
  1は「00001」です、つまり親指だけ折り曲げですね。
  2は「00010」です、つまり人差し指だけ折り曲げです。
  3は「00011」です、親と人を折り曲げです。
  4は「00100」です、中だけ折り曲げです。
  5は「00101」です、親と中です。
  6は「00110」です、人と中です。
  7は「00111」です、親と人と中です。
  8は「01000」です、薬です。
  9は「01001」です、親と薬です。
  10は「01010」です、人と薬です。
  11は「01011」です、親と人と薬です。
   :
   :
  31は「11111」です、親人中薬小の全指を折ります。
 つまり2進数の場合、片手で0~31まで数えられるんですよ!

とりあえず、こんな感じ。
難しいですか?
後日もう少しわかりやすいように絵か写真を入れるかも。

P.S.上記の事を応用すれば何進数でも対応可能だよね!

2017年2月23日木曜日

VECTREXのおはなし

「みんなのラボ」には関係ない、WAKAの個人的な話です。
#自分用のメモ&今後同じ事に遭遇する人の為の記録です

WAKAは「VECTREX」ってゲーム機を持っています。
1982年くらいに出たらしいベクトルスキャンモニタ付きのゲーム機ですね。
#いわゆる「高速船」ってやつです
VECTREXには1つのゲームが入っています。
しかし1つだけなので飽きてしまって最近は全く遊んでいませんでした。





















そう言えばVECTREXにはカートリッジらしきものを差し込む穴がありますね。
「何かカートリッジが出てて別のゲームができるのかな?」と思い、ちょっと調べてみました。









なんと、沢山のゲームが売られていたではありませんか!
ん?ゲーム以外にも変なものが出てるぞ??
BASICインタプリタのカートリッジ?

はい、買いました。











どんな物か?詳細は下記ページを見てください。

最初はカートリッジを差しても何の変化も無く元々入っているゲームが立ち上がるばかり。
「もしかして壊れてる?」とも思いました。
しかし何度も何度も抜き差しして、電源の入れ直しをしていたら、、、動きました!
長年カートリッジを差していなかったのでコネクタ部分が汚れていたのかもですね。

英語読みたくない病なので、全く使い方が解りません!
日本語で検索したらツイッターにちょっと載ってました。
うーん、この人とは違う挙動だなー、、、。

現時点での挙動を以下に書きます。
1.Vectrex32カートリッジをロゴ面を上に差し込む。
2.Vectrexの電源を入れる。
3.Vectrex本体のロゴが出る。
4A.ほとんどの場合、内臓ゲームが立ち上がる。
4B.たまに「Vectrex32 1.14 @GCE 2016」が表示される。
5B.そのまま固まるか、「WAITING」って出て固まる。
運良くカートリッジ起動できても即固まって何もできない!

Vectrex本体を持っている友人がいるので、カートリッジの起動確認をしてもらおう、、、。
もし起動したら本体(たぶんコネクタ部分)がヘタってるんだろうなー、、、。

P.S.
Vectrex32にUSBケーブルを差してもWindowsからは何も認識されない。
Vectrex32にUSBケーブルを差し、Vectrex32をVectrexに差し
Vectrex本体の電源を入れるとWindowsから見える!
「CDC + MSD Demo」ってのが見える、現状ドライバとか何入れるか不明。

今日はココまで!

Vectrexや高速船、Vectrex32をお持ちの方、お友達になってくださーい!

2016年12月22日木曜日

仲間が増えました!

ちょっと前の話なのですが「デジゲ―博」というイベントに出店しました。
このイベントをきっかけに、2人もメンバーが増えちゃいました!

まず1人目「NAVEちゃん」
この方は「デジゲ―博」で「みんなのラボ」ブースの隣の隣にブースを出されていました。
出店者には、事前に出店者同士の情報が見れるページが公開さていました。
そのページを見てラボを知り、メールを送ってきてくれたそうです。
すぐにラボの見学に来て、そのままメンバーになりました。
デジゲ―博」当日は「みんなのラボ」のメンバーと共に店の運営を営みました。





NAVEちゃん
なぜか歯ブラシ銜えてる
新商品を製作中!






そして2人目「ICHIさん」
この方は「デジゲー博」に見学(お客様)としていらっしゃいました。
みんなのラボ」のブースに来て「興味があるのですが、、、」と。
「近日見学に来ませんか?」とお誘いしました。
数日後ラボの見学に来て、そのままメンバーになりました。
#残念ながらマダ似顔絵はできていません


お知らせ
みんなのラボ」のメンバー募集を一時中止としました。
理由は「部屋の大きさ的に考えて、現状のメンバーでいっぱい」だからです。
あと見学者が来る時は「いつもより念入りに片付けておく」とか「いつもより沢山お菓子を用意する」とか通常よりも準備が大変なので見学もお断りするかもしれません。
申し訳ありませんが、ご理解お願いします。

レジ作ってるよ!その2

どんな機能を入れれば良いか?
今回は「先に機能の洗い出してる時間が無い」と判断。

なので「後から機能追加できるような設計にすれば良い!」と決定。
#いや、私の心の中で勝手に決議してるだけです

まず昨日のおさらい!
マイコンボードと、それぞれのデバイスでの動作確認は終了している。
 Maruduino(マルツ製Arduino互換機)と下記デバイスね!
  バーコードリーダーからの読み込み
  キーボードからの読み込み
  LCD3WIREへの文字表示
  メモリ液晶ブレークアウト基板へのドット描画
  ロール紙プリンタでの印字

LCD3WIRE用にデバック表示プログラムを組みました。
#単にエラーの種類とエラーの理由を表示するだけの簡単なもの









次にメモリ液晶にも文字を表示させようと思いましたが、、、
メモリ液晶は400×240ドットの高精度液晶ですが、フォントが無い!
仕方が無いのでVECTORフォントのデータを作る事にしました。
それでも前準備は必要です、とにかくラインを引くプログラムを作りました。
次はついにフォントの頂点データです!
0~9とA~Z、、、4時間くらいかかりました、でも完成!
メモリ液晶の任意の位置に文字が出せるようになりました。
しかも頂点データからラインで文字を描くので拡大縮小機能も付けました!
#文字の回転、今回は不要と考え省きました














#アクリルが汚くてスイマセン

今日はここまで。
画面に何か表示できるとモチベーションがすごく上がる!

2016年12月20日火曜日

レジを作ってるよ!

みんなのラボは、様々なイベントに参加しています。

コミックマーケット(コミケ)だったり
ニコニコ技術部(ニコ技)イベントだったり
MakerFaireだったり
その他にも多数参加しています。

そんなイベント時に使う、ポータブルなレジを作ろうと思いました。

どんなものを作ろうか?
マイコンボード:やっぱりArduinoで作るのが良いかなー。
#今回はArduino互換機、マルツさんのMaruduinoを使います(単に手元にあったから&本物より安いから)
何が売れたかの入力部分:キーボードかなー?
表示部分:LCD3WIREとかメモリ液晶ブレークアウト基板とか自社製品のDEMOを兼ねられたらいいなー。

まずはこんな漠然とした感じで。

ArduinoとLCD3WIREメモリ液晶ブレークアウト基板は手元にあるとして、、、。
キーボードはどうしようかな?

ちょっと探したら「ArduinoにPS2規格(プレイステーションじゃないよ!)のキーボードを繋いで読み取る方法」が公開されているじゃないですか!
さっそくPS2キーボードのコネクタを買ってきて、Arduinoとキーボードと繋ぎサンプルプログラムを動かしてみると、、、
キーコードきた、完璧だ!
これそのまま使おう。


そう言えばジャンクのPS2規格バーコードリーダーを、以前ラボのメンバーから頂いた事を思い出しました。













これも使えたりしないかな?
繋いでバーコードを読ませたら、キーボードで入力したかのように文字列が返ってくるじゃないですか。
これはイケる!
これも使おう。

バーコードは普通のプリンタで刷って、テープで商品に貼るの?
ちょっとダサいな、、、
ラボのメンバーに相談、なんとラベルプリンタ持ってる人がいるじゃないですか!
#ブラザーのラベルプリンタ(いま手元に無く型番不明)
借りました、バーコード刷ってみました、バーコードリーダーで読み込んでみました。
読み込める、完璧じゃないか!

しかもPS2接続のテンキーもオマケで頂きました。













商品にバーコードを貼って、メンテナンス用にチョットだけキーを使う。
必要最小限のキーがそろっている。
コンパクトで嬉しい!


ここまでくると、レジらしいロール紙プリンタも付けたいな!
これは私が以前買って持っていました。
ナダ電子のプリンタでArduinoのシールド型になっています。
これは前に印刷実験したことがあるから大丈夫!
これも使おう。

なんか豪勢な組み合わせになってきたけど大丈夫かな?
しかもコミケまで10日くらいしかないんだけど、、、

頑張って作る!

2016年11月25日金曜日

印刷機が来た!

みんなのラボに印刷機が来ました!

普通「印刷機」と聞くと「紙にインクを乗せる機械」と思い浮かべますよね。
今回入手した印刷機のメーカーは「サンハヤト」です!

なんとなく解りましたか?
まだ解りませんか?

型番は「SR-250]と言うモデルです。
型番でググるとオートバイが出てきますね。

型番とメーカー名の両方を入れてググりましょう!
#メーカーの商品ページはコチラ


我々はこの機械を使って基板にペースト半田を塗ろうと考えています!
#機材自体の写真はメーカーのページをご確認ください

SR-252(フレーム)に、基板製造依頼と同時に注文したメタルマスクを貼り付けます。






上がフレーム





下がメタルマスク
















とりあえず養生テープで貼ってみた


















本体にフレーム(メタルマスク)をセット!
位置あわせが難しい、、、


















ピッタリあいました!










すばらしい!
ペーストハンダ塗りに使えそうだ!!


今日はココまで。
実際に塗るのはまた今度。
お楽しみに!