--/--/--  --:--    スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
最近、だいぶ使い勝手がよくなってきたので、
PCにUbuntu(Linuxディストリビューションの1つ)を入れて使っています。
まぁ理由はいろいろありますが、Windowsよりサクサク動くのと、
CompizFusionが便利なのが主な理由です。たぶん。
まぁ基本的にブラウザだったり、メッセンジャー、スカイプなどは
クロスプラットフォームなので問題ありませんが、
趣味で使うAVR StudioはLinuxでは動かないので、
Linux上でAVRを開発できるような別の環境を立ち上げました。
私はあまりLinuxは詳しくないので、
出来る限りGUIでやれるようにやってみました。
以下が自分なりに環境構築した時の方法です。

使用したのは現状で最新のUbuntu 10.10です。
使用するAVRライタは日頃から使用しているHIDaspx。
開発環境はEclipseというJAVAで動作する開発環境です。

(1)まず、システム→システム管理→Synapticパッケージ・マネージャ を起動。

(2)クイック検索に"avr"と入力し、検索に引っかかった中から以下のパッケージにチェックを入れる。
  "gcc-avr" , "avr-libc" , "binutils-avr" , (お好みで"avrdude")

(3)同じく検索に"libusb"と入力し、検索に引っかかる"libusb-dev"にチェックを入れる。
  (HIDaspxを使用する場合に必要。別のライタを使用する場合はlibusb-devはなくてもよい)

(4)適用を押してチェックしたパッケージをインストールする。

(5)ブラウザでEclipseのサイトへ飛び、Downloadsをクリック。
  項目の中から"Eclipse IDE for C/C++ Developers"をダウンロード。
  (Linux 32bitと64bitがあるが、自分のOSに合わせて落とせばよい。普通は32bit)

(6)ダウンロードできたら解凍して適当なディレクトリへ入れる。
  毎回そのディレクトリに移動するのは面倒なので、ショートカットを作っておくと楽。

(7)Eclipseを起動し、Help→Install New Software..をクリック。

(8)Work with:の欄に"http://avr-eclipse.sourceforge.net/updatesite/"を張り付けると、
  下の項目のところに"CDT Optional Features"が現れる。その項目の左にある▲をクリック。
  "AVR Eclipse Plugin"のほうだけチェックを入れてNext、そしてFinishでインストールする。
  これで開発環境のインストールは終わり。

(9)次に千秋ゼミさんのサイトへ飛び、(大変お世話になっております。)
  項目の中のHIDaspx→Downloadsの中の最新のHIDaspx関係ファイル とクリックし、
  hidspx(Linux/MacOS兼用-UTF8ソースコード)をダウンロード。

(10)ダウンロードできたら解凍し、適当なディレクトリに入れる。

(11)端末(Terminal)を起動し、先程のHIDaspxのファイル内のsrcディレクトリまで端末内で移動する。
  例: $ cd '/home/rain/hidspx-2010-0125/src'

(12)端末で、
  $ make
  $ sudo make install
  と入力しHIDaspxをインストールする。(パスもつないでくれる)

(13)あとは、Eclipseを起動し、File→New→C projectと選択し、
  新規Cプロジェクト作成ウィンドウが出るので、Project nameを入れて、
  Project typeはAVR Cross Target Application→Empty Project
  ToolchainsはAVR-GCC Toolchainを選択しNext。
  DebugとReleaseにチェックが入っているのでDebugのチェックを外してNext。
  使用するAVRの型番をMCU Typeで選び、動作周波数をMCU Frequencyに入力してFinish。
  これでプロジェクトが生成されるので。あとはみなさんのご自由にどうぞ。

(14)ビルドはCtrl+Bでできる。それかメニューの中のProject→Build All
  問題なければ下のProblemsには何も表示されず、
  ConsoleにはAVR Studioの下のコンソールと同じような文字が出るはず。
  HEXファイルは作成したプロジェクトのディレクトリ内の、
  Releaseディレクトリ内に生成される。

(15)書き込みは、また端末を開いてWindowsと同じように書き込めばOK。
  例:$ hidspx -r
    $ hidspx '/home/rain/AVR/test/Release/test.hex'


という感じです。
なんか最後の方がどんどんてきとうになってきてますがご愛嬌。
また気力があればスクリーンショットもつけたインストール方法メモでも書くかもしれません。
もちろんLinux初心者なので、何かミスあるかもしれません。
とりあえず自分の使う限りでは動いてますが・・・。
(もしミスあったらコメントでこっそり教えていただけると助かります。)
まぁぐぐればいろいろ出てくるので、
そこまで心配はいらないと思います。
UbuntuユーザのかたはぜひUbuntuでもAVR開発に勤しんでみてくださいね。
明けましておめでとうございます。
なんか更新状態がやばいですが、今年もどうぞ宜しくお願いします。

2011年になりましたね。
なんか去年はあっという間でした。
年齢が増加するごとにどんどん1年の体感速度が早くなる
というのを聞いたことがありますが、たぶんそうなのかもしれません・・・。

せっかく今年初の記事なので、少し目標でも書いておきますと、
来年度から(ちゃんと卒業できれば)会社で働くことになるので
まずは仕事に慣れて行くことを目標にしたいと思います。
どれぐらい時間かかるかわかりませんが・・・。
あとは、ここまで育ててくれた親に恩返しをして行きたいと思います。
これで一人暮らしになるので側で助けることはできませんが、
できることからおこないたいと思います。(まずは、家電の買い替えかな?)

さて、ちょっとした近況報告ですが、
卒業研究がなかなかにエクストリームな状態なので、なんとかしないとまずいです。
でもちゃんと間に合わせますよ、技術者ですから。
たぶん「納期を守る」が高専生活で一番染み付いたことだと思うこの頃。

あと、ちょっとしたきっかけがあったので、
アナログ回路もちゃんと勉強はじめました。
確かにやってみると奥が深いですね・・・。
まさか抵抗で音が変わるとは・・・くっ・・・。

あとは7年間使い続けていたデジカメをついに買い換えました。
そのうち届きそうです。
買い換えたのはPanaのDMC-FX700です。
今まで使っていたのがLUMIXだったので、結局またLUMIXにしました。
個人的には、薄さ・ズーム・解像度・出来れば動画も適に撮れれば
という点で選んだ感じです。
いろいろ出かけるのでまたそのデジカメでいろんな所へ
写真でも撮りに行きたいと思います。

なんだかんだでやっぱり締まらない内容になってしまいましたが、
どうぞ今年もよろしくお願いします。
ふと思い立ったので、今まで自分がロボカップジュニアに参加してきて、
思った点、学んだ点などを含め、ちょっとした心構えといいますか、
Tipsのようなものでも書いてみようかと思います。

・名刺を持って行こう
ロボカップジュニアはロボットコンテストの1つではありますが、
他の大会と違いコミュニケーションにも重点をおいたロボコンです。
参加する層を見てみれば、出場資格は19歳以下ということもあり、
小学生、中学生、高校生、そして高専生まで、様々な人が参加しています。
様々な年齢・様々な地域からいろんな人が参加しているのですから、
大会の合間に同じ競技に参加している人に挨拶に行ってみてはいかがでしょうか?
そこでコミュニケーションの役立つのが名刺です。
名刺といっても、チーム名とチームメンバー(チームの1人1人で作ったなら個人名)、
あとは問題がないならばメールアドレスが書いてあれば十分です。
見ず知らずの人とはなかなか話しかけづらいですが、
名刺交換という名義があれば話しかけやすいですからね。
あとは、名刺交換したら雑談するもよし、お互いのロボットについて語るもよし、
とてもいい経験になるのではないでしょうか?

・他のチームのロボットをよく見よう
ロボカップの大会に行くといろんなロボットが出場しています。
その中には自分が考えつかないようなロボットがいたりするものです。
そんな時はこのロボットはどんな動きをしているのだろうかとよく観察して見て下さい。
いいなと思う機構などがあったらそれを次のロボット製作で真似してみたりすると、
今自分が詰まっている問題解決の糸口となるかもしれません。
観察してもわからない時は、そのロボットのチームの人に聞いてみてください。
たぶん、みんなやさしいと思うので教えてくれると思います。
せっかく自分よりもすごい技術を使ったマシンがそこにあるんだから、
教わって活かさない手はないですよね。

・予備の部品は持って行こう
ちょっと大会の趣旨に戻って大切な点というと予備の部品です。
実際の大会では何が潜んでいるかわかりません。
突然マイコンが動かなくなったり(実話です)、
ロボット同士でぶつかってどこかが壊れてしまうことはよくあります。
大会に参加する前には何度も走らせて、どこが壊れそうかな?と
壊れやすそうな部分を探してみてください。
もし壊れそうな部分があったなら、予備の部品を作って行くといいでしょう。
備えあれば憂い無しということわざもありますし、当日もし壊れてしまっても
交換して対処できます。

・大会前に試験走行を行なおう
これは簡単そうで意外と難しいことです。
スケジュールをたてて、やっていかないといつの間にか大会というのはよくあります。
大会行きのバスの中で書いたプログラムなんて大抵はバグだらけ(実話)です。
まずはロボットをちゃんと完成させて、実際に動かしてみるのが大切です。
動かしているうちに、バグだったり問題だったりが見えてくると思います。
それを改善してまた動かしてみる。今度は別の問題が出てきたりするので、
また対処する。そういった試行錯誤が大事だと思います。
1発で完璧に動作するプログラムがかける人はまずいないと思いますから。

・大会で負けてもめげない、次につなげよう
確かに大会で負けるのは悔しいけれど、
その大会で学んだことを一度ノートなどにまとめてみてください。
そうすれば自ずと次のロボットのアイディアがまとまってくるはずです。
特に初出場の年はなかなかいい成績になるのは難しいかもしれませんが、
「全然ダメだったからもういいや」というように投げやりにならないで、
「来年こそは優勝するぞ!」という気持ちが大事です。


簡単に思いつく項目を書いてみました。
よかったらロボカップジュニアへ参加される皆さんはこれらを心掛けてみてください。
絶対に皆さんのプラスになるはずです。
2010/10/30  00:04    PSG ShieldでMIDIを再生
Make: Ogaki Meeting 01にて手に入れたPSG Shieldですが、
このまま死蔵したらもったいないので実際に動かしてみました。

PSG ShieldとはArduino用のシールドの1つで、
ヤマハの音源ICであるYMZ294を搭載したシールドです。
アンプの回路とスピーカも実装済みなので、
Arduinoとこのシールドだけで音を鳴らすことができます。
気になる方はこちらをどうぞ↓
shield.io - PSG Shield

さて、このPSG Shieldを手に入れたのはいいのですが、
残念ながらArduinoを持っていないので、
てきとうにArduinoの代わりとなる基板を作成し、動かしてみることにしました。
残念ながらYMZ294のデータシートは手に入りませんでしたが、
ネット上の情報によれば汎用バスに接続できるようになっているようなので、
死蔵していたATMEGA8515からバスを出して制御してみることにしました。

それでは実際に基板を作っていきましょう。
本当はユニバーサル基板で作ろうと思ったのですが、
Arduinoのコネクタのピッチが一部0.1inchではないので、
楽するためにArduino用ユニバーサル基板を買ってしまいました。
P1020306s.jpg
本来はオリジナルのシールドを作れるというものらしいですが、
別にシールド側ではなくArduino側をコレで作っても「大丈夫だ、問題ない」ということで。
適当にAVRと必要なIC関係を配置してUEWでさくっと配線していきます。
YMZ294はマルチプレクスバスでの接続となるので、
とりあえずMEGA8515のD7-0とYMZ294のD7-0を接続、
あとは!WRはそのまま接続し、YMZ294のA0はMEGA8515のA8に接続。
!CSもMEGA8515のアドレスバスを使って作ろうと思うのですが、
そのままでは論理が逆なので、ワンロジックのNOTを使い、A9をNOTして!CSに接続します。
あとは音源ICのリセット端子をAVRのIOからリセットできるようにしておきます。
ついでにPCと通信できるようにRS232のレベル変換ICものせておきます。

そんな感じで出来上がったのがこちら。裏面は汚いので省略で。
P1020312s.jpg

これを実際にPSG Shieldとあわせるとこのような感じに。
P1020322s.jpg
と言っても、シールドがかぶさるのでぜんぜん見えませんが・・・。

そしてプログラムですが、今回はこのPSG Shield用に公開されている、
PSGShield_DEMO_A_V132のプログラムを移植しました。
PSG.cppはArduinoのためにIOを叩いて制御しているので、
出力関係を全てバス制御での出力に書き換えました。
今回アドレスバスのA8とA9を接続しましたが、
アドレス0x025Fまでが内部で使用しているため、
出力先のアドレスは0x0260以上でないとA8,9にアドレスが出力されないので注意です。
今回は無難に0x8200と0x8300のアドレスにアクセスするように書きました。
あとはメインプログラムも適当に移植してあげれば完成です。
ATMEGA8515はRAMが512Bしかないため、
音程のテーブルは全てROM上配列にしないと入りきらないので、
そこも注意が必要だと思います。

最後にshield.ioで説明している通り、シリアルMIDIドライバをインストールして
MIDIをシリアルから出力すればこのボードからMIDIが再生できるようになるはずです。
移植作業で済んだのでだいぶ簡単に遊ぶことができたのでよかったです。
(あるミスで2日間動作せず悩み続けていたのは内緒)
プログラムは勝手に移植したものなので上げませんが、
shield.ioの方にArduino用のプログラムが上がっているので
読んでみるとおもしろいと思います。

今回、実際にこのボードはうちの文化祭で展示していました。
展示の時にはFFやDQ、カービィやゼルダのMIDIなどを再生していましたが、
「懐かしい曲が!」って言ってくれる人が何人かいたのでよかったです。

Arduino持っている方はデモプログラムを書き込めばすぐに遊べるので、
よければ入手して遊んでみてください。
たまには音がなる回路もいいものですね。
暇があれば、もう少しこのボードを拡張してみたいと思います。
AVR
2010/10/20  03:13    MOM01行ってきました
もう気付けば半月以上も前の話になってしまいましたが、
Make: Ogaki Meeting 01に行ってきました。

今までずっと東京で行われていたMake:でしたが、
今回は初の東海での開催となりました。
写真はいつもどおり別のページにおいてあります↓
MOM01_2010_9_25

出展数はやはり東京よりも少なめでしたが、
MTMでは見たことがない新しい展示も数多く見ることができ、
とてもいい経験になりました。
自分としては、展示をいろいろ見れたのに加え、
いつにも増していろいろな方と話せたかなと思います。
意外に高専のグループだったりで出展している方もいたので、
またそのうち自分も何か出展してみたくなりました。
ネタと時間がないのであれですが・・・。

今回MOMにて、koiseyaさんからPSGShieldという
Arduino用の音源シールドを譲って(売って)頂いたので、
文化祭で展示できればいいなと思い、ちょっといじってみました。
しかし、自分はArduino持っていないので
(自作Arduinoは一応あるけれど、小型なためシールドが刺さらない)
死蔵状態のATMEGA8515をひっぱりだしてきて、
バスでPSGShieldを叩いてみました。
Arduino用のシールドを(わざわざ)自作ハードで使うという謎の試み。
これについては次回の記事で詳しく書きます。たぶん。


最近忙しくてやばいです。
今週末には文化祭があるので、クラス展示の回路に、部活展示の回路。
部活展示の方には、自分が好き勝手やった、
XMEGA&秋月300円液晶と
PSGShiledを自作回路で叩いてみた物を展示予定です。
あとは卒研が中間発表が近づいててやばかったり、
ジャンケンで負け続けて中間発表の仕切るのの代表になんかなってしまったり、
あとは急ぎのやばい案件があったりと、
忙しい時に限ってどんどんタスクが降りかかってくる始末。
クラス企画の準備してる中、漫画なんか読んで暇している人に
卒研の発表委員の仕切り代表とか当たればいいのにと恨んでみたり。
偉い人は言いました、暇人は何もできないから暇人であると・・・。
確かにその通りなのかもしれません。
だけど、誰でもできそうな卒研代表ぐらいはせめて・・・。
全ては運がなかった自分がいけないんですけどね。
怒りの矛先が結局自分にあって、どんどん自滅していく毎日。
世の中、なんでこんなに偏っているんだろうと悲しむこの頃です。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。