手のひらサイズの3500円のコンピュータRaspberry Piをポチった。週末はこれで遊ぶ予定。
昨日、洞窟物語なんて書いたから、洞窟物語がやりたくなって前やった時のデータをリセットして再スタートしてしまった・・・。前はあんなに苦労したのに、さくさく進む。
洞窟物語で有名な開発室Pixelが新作「ケロブラスター」のリリースを発表。発売日は2014年5月11日とのこと。ちょっと楽しみです。
最近は、短文投稿サイトwのようなちょろっとした季節の話題などしか書いていないので、たまにはなにか実のあることを書かねばいかんでしょう。そういうことで、最近いじり始めたarduino microの立ち上げのところをちょっとだけ書いておきます。
いままでarduino unoという、まあ標準的というか入門的なものをつかっていたのですが、仕事で使う装置の制御として組み込むにはちょっと大きいかなと思いましてより小型のarduino microというものを(とりあえず私費で)購入してみました。unoからmicroに乗り換えるにあたって少々ごたごたがありました。なにか解決事例などないものかとネット検索してみましたが、でてくるのはunoの話ばかりでmicroの情報はありませんでした。結局自力で解決してしまったので、その解決法をここにメモをしておきます。
とりあえず、arduinoのプログラムに使う統合環境(IDE)のバージョンが古いとmicroのプログラムは出来ません。いま使っているIDEがmicroに対応しているかどうかはIDEの「ツール」メニュー内の「マイコンボード」で一覧をだしたときにArduino microと言う項目があればOKで、なければArduinoの公式サイトから新しいバージョンのものをダウンロード&インストールしてください。
あとはArduino microをPCにUSB接続するとデバイスが見つかったと言われるので、Arduino IDEをインストールしたフォルダ(c:\program files\arduino)の中にあるdriverフォルダを指定すればあとは勝手にやってくれます。うまく行ったかどうかは、デバイスマネージャー内のポートという項目の中に、Arduino micro(COMx)のような表示があればバッチリです。COMxのxはシステムによって違います。Unoも同様でして、このポート番号xをIDEの方でArduinoを指定する際に使うのですが、これがすごいクセモノでした。
ここまでできてしまえば、あとは実際にテストするだけなんです。ですから、IDEの「ファイル」メニュー→「スケッチの例」→「01.Basic」→「Brink」を選びます。Brinkは言わずもがなで、Arduinoのデジタルポート13番に実装されているLEDを点滅させるというまさにHellow world!的なスケッチ(arduinoではプログラムのことをスケッチと呼ぶ)なんです。このBrinkを呼び出して、書き込みボタンを押せばコンパイルされてArduinoにアップロードされるはずなんです。しかし、そうならなかった。
どうもコンパイルはできて実際に書く段階になると、WindowsがUSBデバイスを抜き差しするときに発するピンポン音を2回だすし、メッセージは書き込んでいます、進捗を示すバーは終了直前まで進んで止まってしまうという現象に見舞われた。Arduinoが切り離されているのかと見れば、デバイスマネージャーにはきちんとCOM8ポート(自分の場合)を介してつながっていると表示されている。ここで「arduino micro 書き込めない」などと単語を変えながら他の人が同じ問題を報告していないか探したのですがこの問題どころかArduino microそのものの情報もないという状況でした。結局、他人に頼れないなら自力でということでいろいろやってみました。
わかったことを書いていきます。まず、Arduino microの特徴として公式に宣伝されているようにArduino microはUSB接続をソフトウエア的にエミュレートしているんです。UnoはUSB通信用のICをARMマイコンとは独立して持っている。ここでどうやってプログラムしているかというと、ソフトウエアリセットなり、基板上のリセットボタンなりを押すと、しばらくの間書き込み動作に入れるモードになるようです。そして書き込み動作が終了すると再度マイコンはUSBをつかったシリアル通信のエミュレートに戻るようです。デバイスの抜き差し音が2回するのはこの動作に関係してのようです。今回の書き込めない問題の原因はここにありました。
デバイスマネージャーを開きながらArduinoのリセットボタンを押すと、Arduino Boot なんちゃらがCOM7で立ち上がって、その後COM7がなくなり、Arduino microがCOM8として再表示されていました。つまり、リセット直後のプログラム書き込みを待つ時はCOM7、実際に動作している時はCOM8とポート番号を使い分けていたのです。それなのに、IDEでは動作時の8番をArduinoのCOMポートとしていたから制御が迷子になっていたのです。
結局、デバイスマネージャーからArdino micro→右クリック→「プロパティ」→「詳細設定」とすすんでCOMポートの割り当てを7番に変更して、IDEのボードのポートも7番にすることで無事に書き込みできるようになりました。
まとめると、書き込みが終了しない問題に遭遇した場合、Arduinoがデバイスマネージャーで見られるCOMポート番号と違う番号で書き込み待ちをしている可能性がある。そのようなときはデバイスマネージャーを開いたままArduinoのリセットボタンをおすと、もう1つのCOMポート番号が見える時がある。その番号をIDE上でボード指定に使うとうまく書き込める。
IObit Uninstaller・・・どこからか紛れ込む怪しい広告までばっさり消せるアンインストーラー
OpenOfficeのフォントに納得がいかないとき
Windowsのシステムフォントの設定ごと変えていいのならそれをやる。
7の場合
画面右クリ→個人設定→ウインドウの色→デザインの詳細設定とすすみ
指定する部分に「メニュー」や「メッセージボックス」を選択してフォントに「MS UIゴチック」などを選ぶ。
電気回路を組むことがあるのですが、ユニバーサル基板を使いたくないならエッチングで作るはめになります。この時、感光基板に頼らず適当にやろうとすると穴の位置にポンチでくぼみをつけて、油性ペンで溶かしたくない部分にマスクパターンを書きます。この油性ペンですがなんでもいいというわけではないんです。いろいろ試したり調べたりした結果、マッキー青が最強、ついでマッキー赤、マッキー黒となります。どうやら黒よりも青のインクの方がエッチング液に対して侵されないようで結果が良好になります。ただし、マッキー青なんて売ってないんだよぅ。
何色でもコツは塗る、乾燥させる、重ね塗りする、乾燥させるを繰り返して厚い皮膜を作ること、エッチング液に入れる前にはよく乾燥させることを守るとそれなりになります。乾燥はドライヤーを使うと便利です。
PCが頻繁に電源が落ちてしまうという問題に最終決着が付きました。結局のところ、電源ユニットの不調でした。
CPUの温度をモニタしていても、暴走するほど熱くなっているとも思えなかったし、メモリーもハードディスクもツールを使ってチェックした限り問題を起こしそうになかったから変だよな~とは思っていました。
エイデンにいってATX規格の電源ユニットを買ってきてバラック的にマザーボードに接続したら問題が現れなくなったんですよ。それでラッキーと思っていたら電源ユニットが大きくて、自分のケースに入らないと。microATXにしてはちょっとスリムだよなーと思っていたのですが、幅がなかったんですね。急遽エイデンにいって、ケースを買ってきて、おひっこし。
ついでにマザーボードにUSB3.0の拡張ボードをさしました。
外見がごっつくなったんですが、中身は変わっていないという変な感じがします。
半年くらいまえから、CPUクーラーのファンから異音がしていました。ケースのふたを開けてみるとどうもファンの回転軸がぶれていて回転に緩急がついています。そんな状態ですから当然”冷えません”。しばらく使っているとぶつっと止まってしまいます。仕事にならないので、ケースのふたを開けっ放しにして小型の卓上扇風機でも冷却するというエアフローを無視した応急処置をしていました。これで、数ヶ月は持ったのですが、いよいよダメになってきてしまったので、CPUクーラーを買ってきて交換しました。
結構ながいことつかっていたAKI-PICライタが書き込みできなくなってしまいました。Ver.3.5の頃にかってVer.4.0に更新したものなんですが、PC上のAKI programmerからは認識されるのにいざ書き込もうとするとPICが見つからないと警告がでます。あとAKI-PICライタ上の4066とver.4.0用のボードが暖かく(熱く)なっています。
いろいろごちゃごちゃやった結果4066が犯人と推定。74HC4066を購入して差し替えたら、何もなかったように復旧しました。ネットで色々探してみるとAKI-PICの上の4066を交換している人が結構いた。ここが弱点なのかい。
ちょっとした覚書
Interface社のGPIBボードでKEITHLEYのデジボル model 2000を制御をする。
GPIBSETCONFIGのデリミタ設定は「CRLF+EOI」や「EOI」でOK
送信データの最後には明示的には何もつけない(ボードに任せるの意味)。
データの尻にCHR$(13)+CHR$(10)をつけるとエラーになる。