szty's diary

電子工作、プログラミングなど

電子工作

AVRで赤外線リモコン送信機を作る

送信機にはAVR(ATtiny2313)、受信機にはArduino Unoを使用した。 受信機はArduinoに接続した赤外線リモコン受信モジュールからシリアル通信でPCに信号を表示する形にした。 最終的にモニタのリモコンの信号を読み取って送信機に組み込むことができた。

AVRでシリアル通信をする

AVR(ATtiny2313)のUSARTを使って文字列を送信した。 PCにRS232Cポートが無いので、「Pololu USB AVRプログラマ v2」をUSB-シリアル変換器として使った。

AVRでタイマ割り込みを使う

AVR(ATtiny2313)のタイマ割り込みを使ってLチカした。 PB0~PB3のLEDが約250ms毎に点滅する。

AVRでPWMを使う

AVR(ATtiny2313)の高速PWMを使い、約38kHzの波形をオシロスコープで観察した。 PD5 (OC0B)から波形が出力される。

AVRでタイマを使う

AVR(ATtiny2313)のタイマ/カウンタ0を使った。 タイマ/カウンタ0の動作モードには 標準 CTC (Clear Timer on Compare Match) がある。 これらの動作モードの時、タイマ/カウンタ0は 0xFF OCR0A (0x00~0xFF) までの値をカウントすることができる。 各モード…

AVRでスイッチを使う

AVR(ATtiny2313)を使ってスイッチ入力をした。 一度PA0のスイッチを押すとPB0~PB3のLEDが点灯し、もう一度スイッチを押すと消灯する。

AVRでLEDを点滅させる

AVR(ATtiny2313)を使ってLチカした。 PB0~PB3のLEDが約0.5s毎に点滅する。

ArduinoでLEDを点滅させる

Arduinoとスイッチを使ってLチカした。 スイッチを押している間点灯し、離している間消灯する。

FPGAでTD4(4bit CPU)を作る

Verilog HDLでTD4を作成し、シミュレータで動作確認をしてからFPGA(Artix-7)に実装した。 TD4上でラーメンタイマプログラムを実行することができた。