Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

https://vine.co/v/MHwL5a1YaH3

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

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

ソフトウエア

https://github.com/takeru/hidled

% 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
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away