LoginSignup
10
14

More than 5 years have passed since last update.

USBデバイスをつくってみたい(3) LEDとブザーがついたデバイス完成編

Last updated at Posted at 2014-05-20

vine

ここまでのあらすじ

  • USBキーボードやマウスの仲間のHIDクラスという仕様のデバイスが作れるようになった
  • Mac側のドライバ/ソフトウエアはRubyで書けることがわかった

bootloader

mega328Pにして容量に余裕ができたのでブートローダを入れておくことにした。http://rayshobby.net/?p=7363 の中に入っていたbootloaderの元ネタの https://github.com/baerwolf/USBaspLoader

mega328Pの設定&ハードに合わせて調整。
https://github.com/takeru/USBaspLoader/commit/ef1ae4d1ad4cd44cba23328d18cc02d54c1fe74b

D6をプルダウンしたままリセットすると"USBasp"として振る舞うブートローダが起動する。この状態で本体部分への書き込みができる。書き込みはArduinoIDEから"USBasp"を選べばスケッチを書き込めるし、

avrdude -C /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf -c usbasp -p m328p -U flash:w:hidled.hex

とすればコマンドラインからavrdudeでも書き込める。
書き込んだらプルアップを外してリセットし直すと、書き込んたソフトウエアが動く。

これでちょこちょことfirmwareを改善していくのが楽になる。書き込み機(Arduinoを使っていた)がいらないので机がスッキリする。

ハードウエア

面倒なのでブレッドボードに組み込んで完成!

  • mega328p
  • 20MHz 22pF*2
  • 100Ω*2,1KΩ*1
  • 抵抗入りLED*5
  • トグルスイッチ*2
  • 圧電ブザー
  • 0.1uF
  • 配線

hidled.jpg

使いながらバージョンアップしていこう。

ソフトウエア

% ruby hidled_host.rb
usage:
  ruby hidled_host.rb -r
  ruby hidled_host.rb -s 1,0,1,0,0,0,0,0

コマンドラインから8byteを読み書きしてLEDのON/OFFを切り替えます。

まとめ

  • 自作USBデバイスをつくるのは思っているより簡単だ
  • ブレッドボードのやり直しが出来る安心感はすばらしい
  • Arduinoやその他の何かの再発明なきもするが気にしない
    • 全部入りの完成品をゴールだとすれば面白いのではないか
    • Arduino手に入れてもそこまで行けない人はいっぱいいる

TODO

  • ピンもメモリも余裕ありまくりなので全部入りのやつをつくる
    • 温度センサ
    • 明るさセンサー
    • 赤外線LED
    • 赤外線受信モジュール
    • コンデンサマイク
  • Windows / Linux
10
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
14