aokcub::Blog

/PIC|dsPIC|Perl/

Niigata.pm Tech Talk 2に行ったよ

http://atnd.org/events/30550

長岡のまちなかキャンパスで開催されました.



ついにステッカー手に入れた!!!!!
f:id:aokcub:20120825234903j:plain


テーマは「データ処理」

ということで,通常発表3件,LT3件ありました.

とある研究室のガチトーク,すごかったですね...文書類似判定ってベクトルのなす角を利用してるんですね.自分はテキスト処理などの研究とはほとんど縁がないですが,非常に勉強になりました.詳しくはustアーカイブで.


自分のトークについて

そんなものなかった.


はい,すいません...TT3では何かします...


Ustreamについて

会場入りしてからUst配信思い立って,とりあえず手持ちのacroHDさんからやりました.ちょっと遠かったし,台座が充電用スタンドでかつPCのモニタで支えながらだったので,しょっちゅうピントずれるわ動くわで悲惨だった.LTのアーカイブ失敗してるし...

まあ,今回は暫定で,次はちゃんと準備する予定です.

ということで,アーカイブ並べておきますね.
http://www.ustream.tv/recorded/24946997
http://www.ustream.tv/recorded/24947140
http://www.ustream.tv/recorded/24947858


まとめ


本当に楽しく,勉強になりました.


次回

Perl入門的なものになるようです.Perl使ったことない人もどんどん集まったらいいですね!!!


参加者ブログへのリンク

猫型さん

PIC_Arpeggiatorのデモ #nds27

をようつべに投げました。

前回の記事のやつです。



昨日から発音をVS1053bに任せる方向でH/W改良を考えてる。VS1053bはMP3/AAC/WMA/Ogg Vorbis/FRAC/MIDIが再生できるオーディオデコーダで、何回か使ったことがある。こうしたら好きな楽器を選べるし、PIC側は演算(とUI)に集中できる。和音対応も楽になるでしょう。

NDS27に参加してきたよ!よ!

NDS23からの連続参加記録も5に延びました.
卒業まで連続参加続けたい.



今回は
・Gitハンズオン
・ふつうのLTセッション
の二本立てで行われました.

順に書いていきます



Gitハンズオン
Niigata.scmとのコラボ企画です.


Gitについては最近個人的なプロジェクトで使ってはいるんですが,
うまく運用出来てない感じがするので,
その辺の感覚を掴みたくて参加しました.


まずは@masaru_c_blさんからGitの起源,特徴,利点や学習法の解説.
入門Git,買っちゃおうか.


そして@dictavさんによる操作方法解説と演習.
add/commit/log/reflog/reset/clone/checkout/branch/merge/rebase
あたり?
push戦争が非常に楽しかったー.


講師の@masaru_c_blさん,@dictavさん,
途中merge/rebaseの素晴らしい解説をしてくださった@neko_gata_sさん,
TAの@Nkznさん,ありがとうございます!!

changelog,ちゃんと書くようにしたい…



LTセッション

自分を含めて7本ありました.


1. 電子国土と地形図(その後) @yu_horiさん
NDS23での電子国土地図の発表の続き.


2. 長岡にギークハウスを @geek_niigataさん
ギークハウス新潟のオーナーからの,長岡にギークハウスつくろうぜという話.
来年卒業して長岡を離れるのが残念.


3. やったーPICで作曲できたよー\(^o^)/ @aokcub
後述


4. git-svn @masaru_c_blさん
中央リポジトリsvnなときに,ローカルでGitを使う方法
今は個人ではGitかsvnかどちらか単体でしか使わないけど,
どこかで使う機会があるかもしれない.めもめも.


5. ソフトウェアメトリクス調査2012を読み解く @hiro55bsさん
JUASのソフトウェアメトリクス調査の概要.
COBOL強い.
自分は来年何を書いているんだろう(あ,SIerじゃないです)


6. やったーPerlでにゃん読化ツールできたよー\(^o^)/ @neko_gata_sさん
ソースコードをnyanで難読化するモジュール.
Acme::BleachAcme::DoubleHelixみたいな感じ.
Niigata.pm遊びにきてね!!


7. NDSから大切なお知らせ @civicさん
NDSによる勉強会立ち上げサポート.
NDS傘下型勉強会として,なぜかNiigata.pmやNiigata.rbがNDSの傘下にされていたw
「SRNDS(それNDSでできるよ)」




自分のトーク (内容と補足)

スライドはここ.

デモ


何をやったんだ

元ネタはNDS25での猫型さんの「やったーGAでDTMできたよー\(^o^)/」
ハードウェアで鳴らしたらかっこいいんじゃね?ってことでやりました.


ただしメロディ生成のためのアルゴリズムには粒子群最適化(PSO)を用いた,と.


補足があるんだ

最初は秋月で手に入るPIC32MX120F032Bを使う予定でした.
が,どうもRAM(8kB)に収まらない恐れが出てきて,
手元にあったdsPIC33FJ128GP802に変更.
これは秋月では取り扱ってないです.どこで買ったか忘れたけど,メーカーの直販サイトであるMicrochip DIRECTから直接買ったような気がします.

dsPIC33FJ128GP802にはD/Aが内蔵されてるのに使っていないです.
もともとPIC32MXを使うつもりだったから.


でも,さっきRAM使用量再計算したらなんか足りそうな気がする.ピンコンパチなので,デバイス変えてビルドし直せばIC挿し替えだけでいけそう.


なお,開発環境はMPLAB X + XC16 C Compiler + PICkit3です.
今回初めてOS (FreeRTOS)使いました.
楽しい.


まだ整理しきれていなくて汚いところはありますが,リポジトリをGithubに上げました
プロジェクトファイル無いのでそのままではビルドできないです.後日導入手順書きます...
FreeRTOSはGPLですが,それを呼び出しているユーザコードはクローズドでもいいというライセンスになっています.なんとなくMITにしてますが.
また,LCD駆動タスクは含まれません.
初期化コードがデータシート丸コピなので...



今後の課題とか

今回生成できるメロディ,乱数値にもよるけどいいメロディと言えるかは微妙なところです.主観が入るので何を持っていいメロディといえるのかは難しいですが.


一番の問題は評価関数です.
今回は猫型さんの例に倣って,単音ごとの評価値(と,その音の重み)の総和で決めています.小節全体の流れを考慮した評価アルゴリズムにする必要がありそう.
あと,既存の曲から学習するとか.
そこまで来るとよく分からない.
そもそも音楽理論分からない.


このような用途にPSOが適しているのか?という疑問もあったりする.


今回,波形ジェネレータは過去に作った奴を単音に特化させました.単なる三角波DDSです.CPUリソースにも空きはあるので,3和音くらいならいけると思います.そうしたらもっとおもしろくなりそう.VS1053bあたりにMIDIシグナルとして送って,鳴らしてもらうのもいいかも.


せっかく作ったメロディを保存できないのは,
・過去に作ったH/Wを使いまわしたのでスロットが無い
・SPIをもう一本用意するためのピンの空きが無い
・新しく作る時間的リソースが無い
のが理由.ピン数の多いPIC32MX3xxあたりでH/W作り直そうかな.



まとめ

今回は10時開始18時終了+懇親会という長丁場でしたが,
非常に中身の濃い勉強会で楽しかったです.


次回も何かネタがあれば発表したい.

以上でっす



リンク
Togetterまとめ
hayajoさん
sasaplus1さん
neko_gata_sさん
dictavさん
shogo82148さん
jewel_x12さん
civicさん
masaru_b_clさん

MPLAB X + XC32でFreeRTOSを使うとき

自分用めも.

移植方法は後閑さんのページにあるMPLAB 8の場合とほぼ同じ.
ファイル群を適切に配置して,Project Propertiesのxc32-gccでインクルードパス指定.



そのうえで,


xc32-asでFreeRTOSConfig.hの場所を指定する


のを忘れないこと.じゃないと通らない


あと,PIC32MX120F032Bのような少メモリ品種の場合,
FreeRTOSConfig.hでconfigTOTAL_HEAP_SIZEを5000くらいにしないとメモリ足りない.
付属のdemoだと4xx系なので28000とかになってる.

Niigata.pm 決起集会に行ってきたよ

祝 pm.org登録


ということで,長岡市内の怪しげなお店でやってきました.
嘘です.いいお店でした.

PHPの話とかfluentdの話とかLinuxConの話とかYAPC::Asia予告編とか
もりだくさんでたいへんおもしろかったです.




以下自分が一枚LTでやった内容.
slideshareのパスワード忘れたのでとりあえずこっちに...すんません.

http://aokcub.net/files/0616a_upl.pdf

Mojolicious::LiteでMinecraftサーバの状態可視化アプリを作ったって話しました.
まだほとんどできてないのですが,一応サーバプロセスの死活確認と
各メンバーのログイン時間帯の把握はできます.
後者は別に要らないと言われれば要らないけど,かっこいいから付けた.


Minecraftって「生きてるけど動かない」って現象が時々起きて,
プロセスは生きてるけどログインできないとかざらにあります.
たいていログにJavaのエラーっぽい物が吐かれるので,
それを解析して表示したいなと思います.

あと,そういう場合ってユーザの切断がログに残らないので,
ログイン時間帯がバグる...(ずっとログインしたままになる)

こういったところが課題.



あ,ステータスランプ含めて画像一切なしですよ.
現状webkitしかまともに見れないけど.


なお,今回環境構築からデプロイまですべて
前回のTech Talkで紹介されたhayajoメソッド(勝手に名付けた)を利用しました.
Cacoo - Niigata.pm #1
違うのってフロントエンドくらいじゃないか...

hayajoさんありがとうございます!!!!!


次回のNiigata.pmは「データ」をテーマにガチトークをするということなので,
今からネタ探しの旅に出ます.

皆さんまたお会いしませう!




# ほかの方々のレポートまとめ
Niigata.pm 決起集会をやってきました - Nekogata->new->hatenablog()
Niigata.pm 決起集会がありました - .blog
Niigata.pm 決起集会に参加したです - ミントフレーバー緑茶
Niigata.pm 決起集会行ってきました - uzullaがブログ
Niigata.pm 決起集会に参加しました - hayajoのはてなブログ
Niigata.pm 決起集会にこっそり紛れ込みました - ナカザンドットネット
Niigata.pm決起集会に行ってきたので報告 - After Coding

PIC32MXが秋月に

きたあああああああ!!
http://akizukidenshi.com/catalog/g/gI-05849/
http://akizukidenshi.com/catalog/g/gI-05850/
http://akizukidenshi.com/catalog/g/gI-05851/
http://akizukidenshi.com/catalog/g/gI-05852/



あー早く試したい。
この前買ったPIC32MXイーサネットボードもまだサンプル走らせただけだし...

(仮)Flyday Night Fever #1

というものに参加してきました。

前回 ギー潟でおいしいグリーンカレーを食べた数日後、
@saisa6153君がこんなATNDを立ててました。

http://atnd.org/events/28515
即参加登録しました。

カレー食べたかったし(ぉ



FNFについては@saisa6153くんのスライドをご覧頂いたほうがいいと思います

新潟大の学生さん向けっぽいですが、技大から参上しますた。



他の方のLTについてはごめんなさい、後で書きます。
最後にリンク集載せるのでそちらからたどってください。



自分のLTについてはこちらになります(一部画像削ったりしてます)

デモ動画はあとで撮ります。すいません。



Niigata.pmで話した内容と比べて、
まず日本語を解析してATP3011にしゃべらせられるようにしました。
MeCab形態素解析(といっても漢字のよみがなを取得したいだけ)して、
かな→ローマ字変換をするだけ。

なんですが、記号の扱いとか、
ローマ字変換する際にATP3011が読めるフォーマットに補正するだとか、
けっこう苦戦してました。
もっと早くテスト書けって。

ローマ字変換にはLingua::JA::Kanaを使用したのですが、
どうやらカナ一文字一文字に対応するローマ字を割り当ててるみたいで、
たとえば「ヒコニャン」 だと 「hikonixyan」
になります。
しかし、ATP3011に食わせるためには「にゃ」は「nixya」ではなく「nya」でないといけないし、
「ん」は「n」ではなく「nn」にする必要があります。
面倒なので正規表現で一気に置換してしまった。


その上で、「#giigata」タグ付きのツィートに反応して、
それをしゃべらせるようにしました。

またデモでトラブルった...反省。


コード自体前日に突貫で書いたものなので現在整理中です。
こいつを一つのモジュールにしようとしてるんですが、
よく考えたら、ただツィート流すだけならPIC介する必要がないことに気づいた。
Perl --(USB)--> FT232H --(UART)--> ATP3011
でよかった。

ま、まあ将来的にはPIC側に他の機能を持たせるつもりだしっ!

今後の課題として一番大きいのは
文章からアクセント推定させることですが、むずかしいだろうな〜(^^;



参加者の方々のブログはこちら。随時載せていきたいと思います。
@saisa6153さん http://saisa.hateblo.jp/entry/2012/05/06/005858
@y_karasawa07さん http://y-karasawa.blogspot.jp/2012/05/frydaynightfever.html
@sasaplus1さん http://d.hatena.ne.jp/sasaplus1/20120505/1336192166



さて、GWも終わりですね...
研究しないと...