2017年10月20日金曜日

Binary translation!(作り方)


こちら側から部品を搭載します。
反対側からハンダ付けします。






















背の低い部品からハンダ付けしていきます。

1.抵抗8本を基板のR1~R8にハンダ付けします。
  抵抗には取り付け向きがありません。
  しかし8つの抵抗の色の向きを揃えた方がカッコイイでしょう。

2.ダイオード8本を基板のD1~D8にハンダ付けします。
  ダイオードには取り付け向きがあります!
  部品の片側に黒線が引かれています、基板上のシルク印刷の部品絵にも線が書いてあります。
  線の向きを合わせてハンダ付けしてください。

3.クリスタルをQ1にハンダ付けします。
  クリスタルには取り付け向きがありません。
  しかし部品の上に文字が書いてあるので基板の文字と同じ向きに揃えた方がカッコイイでしょう。

4.ICソケットをIC1にハンダ付けします。
  基板上のシルク印刷の部品絵に切り欠きがあります、部品にも切り欠きがあります。
  切り欠きの向きを合わせてハンダ付けしてください。

5.赤色砲弾型LEDをLED1~LED8にハンダ付けします。
  LEDには取り付け向きがあります、足の長さで判別します。
  足の長い方が上(スイッチ側)にしてハンダ付けしてください。

6.コンデンサ1はC1に、コンデンサ2はC2とC3にハンダ付けします。
  コンデンサに取り付け向きはありません。
  コンデンサ1は部品の足の幅が広く、コンデンサ2は部品の足の幅が狭いです。
7.7セグメントLEDを7SEG1~7SEG5にハンダ付けします。
  基板上のシルク印刷の部品絵にピリオド(小数点)が描かれています、ピリオドの位置が同じになるように向きを合わせてハンダ付けしてください。

8.USBコネクタをCON1にハンダ付けします。
  USBコネクタには向きがありますが、1通りしか刺さる方向が無いので間違える事はないでしょう。

9.スイッチをS1~S8にハンダ付けします。
  機能的には向きはありませんが、外形的に向きがあります。
  向きを揃えてハンダ付けした方がカッコイイでしょう。

10.ICをICソケットに差し込む。
  ICには向きがあります、ICソケットの切り欠きとICの切り欠きを揃えて差し込んでください。
  ICにはプログラム書き込み済みです。
  「ICピンそろった」という工具で、ICの足を揃えてあるので比較的簡単に刺さると思います。
  くれぐれも、無理に力を入れて足を曲げないように注意してください。

お疲れ様でした、これで完成です。

Binary translation!(キット品に入っているもの)


基板       1枚

抵抗       8本 (8本とも同じものです)

ダイオード    8本 (8本とも同じものです)

クリスタル    1個

ICソケット    1個

赤色砲弾型LED   8個 (8個とも同じものです)

コンデンサ1   1個 (足の幅が広いコンデンサです)

コンデンサ2   2個 (足の幅が狭いコンデンサです)

7セグメントLED  5個 (5個とも同じものです)

USBコネクタ    1個

スイッチ     8個 (8個とも同じものです)

IC        1個


すいません、後日写真を掲載します。

2017年8月20日日曜日

n進数の話(試作機完成!)

そんなわけで試作機をアクリル板にラッピングワイヤーで作りました。

表面
アクリル基板の上に部品配置してアクリルの蓋をかぶせてみた!

裏面
線は足に巻いてあるだけ。
配線間違えしてても巻いた線を外すだけで修正可能!

横から
こんな感じ。

いよいよ電源繋いで動作確認するよ!

2017年7月13日木曜日

n進数の話(試作機作る!)

前回は、段ボールに基板図のプリントアウトを張って部品を搭載してみました。

今回は実際に配線して電気を流し動作確認までしようと思います!

今回は「実際の大きさ」で「実際の配置」をして動作確認してみたかったので
蛇の目基板は使わないことにします。
とは言え、段ボール基板だと燃えると嫌なのでアクリルで作ろうかと思います。

まず基板図から「基板形状」と「穴」の部分だけ抽出してレーザー加工機を使い
アクリルで基板を作ってみました。





















ピンボケですいません…、透明アクリルの撮影は難しい。

これに部品を差し込んで、配線します。
どうやって配線するかって?
「ラッピングワイヤー」で配線します!

まず下記のような「長足丸ピンソケット」を使います。















アクリル基板に長足丸ピンソケットを差し込みます。



















こんな感じ、またピンボケ。

このようにアクリルに長足ピンソケットを差し込んでいき、ソケット部分に部品を差し込んでいきます。

細い足の部品にラッピングワイヤーは難しいです。
足の短い部品もラッピングワイヤーは難しいです。
そんな事から全ての部品を長足ピンにしてラッピングワイヤーします。

次は全穴に長足ピンソケット刺して、長足ピンソケットに全部品搭載して、ラッピングワイヤーで配線するまで一気に進める予定です!

2017年6月30日金曜日

n進数の話(変換機作る?)

2進数、私は指折り数える事が出来ますが友人は「無理」と。
まぁそうでしょう、いきなりは難しいでしょうね。
しかも16進数だったりすると足の指まで使わないと数えられません!
これは私でも無理です。

そこで「2進10進16進変換器を作っみようかなー」なんて考え始めました。

お得意の「Arduinoのシールド」で作ればいいかな?
と思ったのですが、Arduinoは高いのでプレゼントしたくありません。
でもArduinoの開発環境の手軽さで作りたい……。

そんな事からArduinoで作ってCPU(ATMEGA328P)を引っこ抜いて
実装する方法でプレゼントを作る事にしました。

1.仕様を考えよう!
 たしか2進数を10進数にしたいって言ってたような…
 脳内で考えましたw
 スイッチを8個(8bitまで計算できるように)。
 確認用のLEDを8個(明示的にどのbitが立ってるか見せる為)。
 7セグメントLEDを3個(255まで表示する為)。
 更に7セグメントLEDを2個(16進数の0xFFまで表示する為)。
CPUはATMEGA328Pで。
 あとは適当にLED用の抵抗とかCPU用のコンデンサかな。
 電源は…USB給電で良いかなー。
2.回路を考えよう!
 みんなのラボにはEagleの安いライセンスがあります。
 私はEagleでイキナリ部品を並べます。
 そして配線をします。
 最初はCPUとスイッチとLEDと7セグ。
 次に必要に応じたて抗やコンデンサ。
 できました!
3.基板図を引こう!
 いい具合に部品を配置します。
 この時点で基板の外寸が決まります。
 次に配線です。
 私は配線が大好きです、だってパズルみたいじゃないですか!
 配線が出来たら仲間(みんなのラボのメンバー)に見てもらいます。
 #仲間がいるって良い事ですよ!
4.試作します
 実寸大の基板図をプリンタで刷ります(表と裏を別々に)。
 段ボール紙に印刷したものを貼ります(表裏ずれないように)。
 段ボールにリード部品用の足穴開けます(キリとかで)。
 段ボールに部品を乗せてみます(部品どうしがぶつからないか)。
できました!

抵抗とコンデンサは未実装だけど、なんとなく部品同士の干渉はナシ!


















でも…違う角度から見るとスイッチの裏にLEDが隠れちゃってるな。

こういう部分は実際に組み上げてみないと気が付かない部分ですね。

今日は疲れた、続きはまた今度にします。

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.上記の事を応用すれば何進数でも対応可能だよね!