カテゴリー別アーカイブ: Tips

テクニックなど、汎用的なことについて触れていきます

LEDマトリックスに絵を描く

LEDマトリックスの1つ1つのLEDをペンでONOFFする方法を紹介。

dot-matrix01
出典: http://www.elecfreaks.com/7138.html

 

LEDのONOFFを光センサーを使って行います。手に持っているものはフォトトランジスタです。
フォトトランジスタは光を受けるとコレクタエミッタ間の電流の量が変わります。
実はこのLEDマトリックス光っていないように見えるところもすごく高速にそれも順番に光っています。そしてこのフォトトランジスタもLEDを制御しているのと同じマイコンにつながっています。なので、どのLEDが今ちゃっかり点灯しているのか知っています。
左から1列目左から2列目、、、とLEDを付けた時に2列目の時にフォトトランジスタを流れる電流が変わればフォトトランジスタが2列目のLEDの上にあるということになります。
同じように行でもやれば左から何個目、上から何個目のところにフォトトランジスタがあるのかわかるという仕組みです。

古くからある仕組みで、ブラウン管でも使われていました。インベーダーゲームのキャラクターデザインもブラウン管を使って同じようにやっていたとか。

今回紹介したものは回路もプログラムも公開されています。
http://www.elecfreaks.com/7138.html

 

コインサイズ。1200baudの音声モデム!

基板上でデータをやりとりするにはUSARTやI2Cなどありますが、ケーブルでつなげない時にどうやって通信するかという問題があります。今回は音データでデジタル通信する簡単なモデムを作った製作紹介です。

3-1024x768
出典:unsigned.io

 

このモデムはFSKという周波数が高いか低いかで0と1を送る通信方式で、特に電話などでも送れる音声帯域を使うのでAudioFSKから AFSKと呼ばれているものです。
CPUとしてAtmega328pが使われています
音がやりとりできればいいので例えば、電話越しに通信することも出来ますし、元サイトにはアマチュア無線を使った送受信が紹介されています
4-1024x768

この基板はコインサイズと小さいですが、LINE-IN LINE-OUTが実装されていて、そのままマイクやスピーカー端子につなぐことが出来ます。
送信・受信がLEDになっているのもいいですね。

「無線でデジタル通信したかった!」という方はこれを作ればすぐ出来ますね。ただ、それ以上にこれを作った方は「ぜひデジタル通信がどうなってるか知ってほしい」ということで回路もプログラムも公開した上で、プログラムを非常に見やすく作ってくれています。
勉強用にも素晴らしいですね。

元サイトはこちら
http://unsigned.io/?p=77

また、回路図やプログラムはGithub上に上がっています
https://github.com/markqvist/MicroModem/tree/ax25

 

マイコン使わずにトグルボタンをどう作るか

マイコンを使わずに、普通のプッシュスイッチで押すたびにON,OFF,ON,,,となるようなトグル回路はどうやって作ればいいでしょうか。今回はその一例を紹介します。

NOTを2個使うとこんな風に作れます。

switchtoggle-inverter
出典: vagrearg

OUTPUTがLowの時を考えてみましょう。U1の4とU1の1、そしてUcはLowですね。
ただ、U1の反転の影響でU1の2とU1の3がhighになります。そしてC1には電荷が溜まってUcもhighになります。
ここで、S1を入れるとどうなるでしょうか。
U1の1がC1の影響でhighになり、逆にU1の2と3はlowに、U1の4はhighになります。
すると、C1に溜まっていた電荷は全て吸収されてUcはlowになり、電荷はたまらなくなります。
ここでS1を入れると今度はU1がlowにつながり、、、、ということで戻ります。

このNOT回路を2つ直列につないでループさせる回路はよく登場します。状態を保てるからです。
Low-High-LowでもHigh-Low-Highでも回路として成り立ちますからね。一瞬でもLowをHighにしたりすると一気に回路の状態を変えられます。

ちなみにこんな風につなぐと発振回路になります。
RC_osc
出典: http://www.alles.or.jp/~thisida/mycpu126.html

今回紹介したトグル回路はチャタリングのことも考えられています。
http://www.vagrearg.org/content/switchtoggle
でより詳しくみることが出来ます

 

家庭用プリンターで回路作成

kickstarter家庭用プリンターで回路作成するプロジェクトが出てました.

専用のインクを使うことで印刷したところが通電し,簡単&正確に回路が作れるようです

printled
出典:https://www.kickstarter.com/projects/1597902824/agic-print-printing-circuit-boards-with-home-print

回路を作ることができるペンとかもありますし,今後ははんだを直接扱うことが少なくなってくるかもしれませんね

動画はこちら

ArduinoとRaspberryPiをI2Cでつなぐ

ArduinoとRaspberryPiを繋ぐ方法としてはUARTもありますが、Arduinoは5V RaspberryPiは3.3Vでレベル変換が必要となります。
http://blog.retep.org/2014/02/15/connecting-an-arduino-to-a-raspberry-pi-using-i2c/
では2つのデバイスをレベル変換無しで簡易的に接続する方法を紹介しています。
方法としてはI2Cがベストとのこと。
UART(RS232Cなど)ではlow-highの電圧で通信するのに対してI2Cではpulldown-highzで通信します。I2Cでは通信線にあらかじめかかっている電圧をそのままにしたりGNDにつないじゃったりして通信するので、お互いの電圧が違っても問題ありません。もちろん相手の入力限界より高い電圧がかからないように、かつ、相手がちゃんと0と1を認識できるレベルで通信する必要があります。
今回の場合は3.3Vでうまく動いたようですね。
サイトではArduinoとRaspberryPiをそれぞれI2Cで通信されるC言語のプログラムが公開されています。非常に参考になりますね。