2017年10月21日土曜日

Binary translation!(どうやって作ったか)

この商品のCPUはATMEGA328と言うICを使っています。
このCPUはArduinoUNOに使われているICです。

最初はArduinoUNOのシールドで作ろうと考えていました。
しかし「何か作るたびにArduinoを買う」という事が「もったいない」と思いました。
そこで今回は「Arduinoで開発」して「必要な部分だけ移植」する設計にしました。
試作はArduinoとブレッドボードで、製品はオリジナル基板で。
そんな思いから作られた商品となっております。

1.作りたいものに必要な部品を買ってきました。
 #スイッチ8個、LED8個、7セグメントLED5個

2.ブレッドボードに回路を組んでArduinoと接続してプログラムを書きました。
 #スイッチには逆流防止用にダイオードを付加しました
 #LED用には電流制限用に抵抗を付加しました
 #どちらの部品もラボにあった物を使いました

3.Arduinoで作ったプログラムが入ったCPUをブレッドボードに移植し、動作に必要な部品類を付加して動作確認をしました。
 #5V電源供給と16MHzクリスタルを付加しました

4.製品用に部品の配置(レイアウト)を考えました。
 #なんとなく部品を並べてみただけ

5.レイアウトを元にCADソフトで基板図を書きました。
  #アクリルで基板形状を作り部品搭載確認しました

6.基板屋さんに基板を作ってもらいました。
  近所の町工場で試作として5枚を、3日くらいで作ってくれました。

7.できあがった基板に部品をハンダ付けして動作確認、バッチリ動きました!

おおまかな流れとしてはこんな感じです。

もちろん失敗や苦悩なんかも沢山ありましたよ。

「なぜこの商品を作ったか」や「試作機がどんなだったか」は、下記ブログを御確認下さい。
n進数の話

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進数以上も対応できますね!