キーボード修理

イメージ
前回 調子が悪くなったと書きましたが、部品が手配できて時間が取れたので直しました。 茶軸のスイッチを購入 Cherryの茶軸は 10個で1,399- ということで購入。 本当は1個で充分なんだけど、仕方なく残りは予備部品として保管。 作業手順 キーボードの裏側ネジを3箇所外します。 左右と中央の丸シールの下。 左右はパッドを貼っているので、少しめくって外します。 (あとで綺麗に戻るので心配なしです) ケーブルが出ている方は、スッと外れ、手前(下側)は、内部に爪が有るので、ピックやカード、マイナスドライバなどで少し隙間を開けるようにして広げれば外れます。 自分は親指の爪で空きました。 今回は「E」が調子悪いので、該当のピン2箇所をハンダ吸いで綺麗に取り除いて、裏側から引き抜いて完了。 基板にしっかりとどのキーかがプリントされているので分かりやすいですねぇ 入手した新品の茶軸を差し込んでハンダ付けします。 この時点で動作確認が可能になるので、直したキーとその周辺が正しく入力できるのをチェック。 問題なく、無事に動作しました。 最後にカバーを取り付けて完了! 残ったのは9個の茶軸…。 今回の費用 Cherryの茶軸10個セット :1,399- キーキャップ引き抜き工具 : 475-  ちなみに10個セットには、簡易引き抜きがついてきますが、ちゃんとしたもののほうが楽に作業できます。(昔買ったのに、どこかに行ってしまったので再購入)  ということで、1900円ほどで完治しました。  手間賃考えると買ったほうが安いかも(笑)

Sketch の書き込みができた on Ubuntu

Arduinoでトラブルが続いていた

現在、Ubuntu(12.04-32bit)+ruby 1.8.7 + Arduino Mega2560という組み合わせで、開発を進めているのだけれども、先の記録にもあるように、予想以上に苦労している。

今回、Arduino IDEからMEGA2560へのsketchの書き込みが、エラーで出来なかったものを、工夫することで書き込みができることが分かったので、まとめておこうと思う。

まずは設定

普通にArduino IDEを起動して、書き込みを行うと図のようにエラーが発生する。
例では、スケッチの例にあるStandardFirmataを読み込んで、Arduino Megaに書き込もうとしている所。

すると、
avrdude: stk500v2_RecieveMessage(): timeout
なんてエラーが延々と出て書き込みが終了しない。

こんなエラー情報では、何もわからないので、詳細な情報を得られるようにしておく。

「ファイル」->「環境設定」->「より詳細な情報を表示する」の「書き込み」にチェックを入れておく。
コンパイルの情報を見たければ、チェックを入れればいいのだけれど、今回はコンパイルまで終了し、書き込みに失敗しているので、書き込みだけでOK。

具体的な手順

この状態で、コンパイル&書き込みを行うと、さっきより格段に細かい情報が得られるのが分かるはず。

これが右の図。
すると、どんなデータを書き込もうとした。上手くいったとか失敗したとか…。

この状態が最低限必須。

この状態で先に進んでも良いのだけれど、詳細なLOGを見ているうちに、どんどんエラーが増えていくし、エラーをたくさん見ても意味が無いので、起動方法を変更する。

コンソール(Terminal)から、手動で起動してやると、あとの処理が楽になる。
$ arduino もしくは $ /usr/bin/arduino
か、異なるバージョンを入れてたりするなら、そのディレクトリで
$ ./arduino
で起動するはず。

ここまで来たら、書き込みたいsketchを開いて、書き込みを実行する。
すると当然のことながら、先と同じエラーが発生する。

ここで慌てずに、コンソール(端末)で中断(control+C)を実行する。

$ arduino
コンパイル後のスケッチのサイズ:15,196バイト(最大容量258,048バイト)
/usr/share/arduino/hardware/tools/avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -v -v -v -patmega2560 -cwiring -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/build4946465769096413677.tmp/StandardFirmata.cpp.hex:i 
avrdude: Version 5.11.1, compiled on Oct 30 2011 at 10:41:10
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch
         System wide configuration file is "/usr/share/arduino/hardware/tools/avrdude.conf"
         User configuration file is "/home/satoshi/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping
         Using Port                    : /dev/ttyACM0
         Using Programmer              : wiring
         Overriding Baud Rate          : 115200
avrdude: wiring_open(): releasing DTR/RTS
avrdude: wiring_open(): asserting DTR/RTS
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
^C

この時点で、コンパイルは終了しているので、書き込みだけ上手く出来れば良いわけで、この画面に表示されているコマンドをそのまま実行してやる。(上の赤い部分)
$ /usr/share/arduino/hardware/tools/avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -v -v -v -patmega2560 -cwiring -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/build4946465769096413677.tmp/StandardFirmata.cpp.hex:i 
勝手に改行とかせずに、表示されている行をそのままコピーして貼り付け実行してやればOK。
すると、細かい表示をしながらも、プログレスバーが表示されて、無事書き込みが終了する。

これでエラーが起きること無く、書き込みが完了し、動作させることができる。

結局IDE側(java)の処理の問題のようだ。
単純にforkしてやれば良いような気がするのだけれど…。何か変な処理をしているんだろうな〜と勝手に推測しているんだけれど…。

これで、母艦のMacで書き込んだり、Windowsで書き込んだりせず、Ubuntu上から気持よくは無いけど、とりあえず書き込みができます。

追記


  • 「ARDUINO 1.0.4」 が 2013.03.11
  • 「ARDUINO 1.5.2 BETA」 が 2013.02.06

にリリースされていましたので、パッケージ管理でなくてもいいやって人は、使えます。

コメント

このブログの人気の投稿

WPS Officeで日本語入力ができない

VirtualBoxでUSBから起動

Ubuntu24.04 でGUIが死んだ