2016年3月13日日曜日

LSI設計コンテストで受賞しました(大賞とは言ってない)

LSI設計コンテストに参加してきたので報告

LSIコンテスト

沖縄県で開かれ,日本の大学だけでなくアジアの大学からも参加者がいる,
CPU(など)の処理系の技術を競い合うコンテストに参加しました.
http://www.lsi-contest.com/

去年,先輩が「三角関数出力処理系」のコースで参加しました.
自分も大会に駆けつけ,先輩の活動を目にしていました.

先輩が頑張っていたように,自分も頑張ろうと,
心に誓いいざ迎えた開発期間は大変でした.
そう,地獄の(ほぼ)ワンオペが待ち構えていたのです.

今回は大変だったことを4つほど紹介します.

大変だと思ったことその1 : めっちゃソフトウェアっぽい開発

LSIコンテストは,名前から分かる通りハードウェア系のコンテストです.
歴代のタイトルを見ても分かる通り,
「三角関数出力処理系」「RSA暗号復号化」「ディジタルFM受信機」
など,いかにもハード寄りで楽しそう!
そう思っていた時期が私にもありました.

今回のタイトルは「人体検出及びテンプレートマッチング」
最初見て,むっちゃきつそうだと感じました.

307kバイトのメモリを自分で作って,
メモリアドレッシングドライバを自分で書いて……
ハードウェアだけでソフトウェアが無意識のうちにハードウェアにさせている処理と同じ事させようとしたらアカン(技術不足)
まさかソフトウェア系で来るとは思ってませんでした(慢心)

大変だったことその2 : ワンオペ開発

三人の内,二人が自練に通いました.
うち一人は宿を提供してくれ,もう一人は論文にのせる図を書いてくれました.
開発は自分一人です.論文作成と当日の発表も一人でしたツラァ

図を書いてくれた人も最初は一緒に手法を考えたりしたのですが,
途中から自練の合宿に行きました.
この人が合宿へ向かったあとから手法を思いついたので,さあ大変.
まさかのワンオペ開発始まります.

大変だったことその3 : 肌色検知

開発できる時間が3日しかなく
とりあえず,「人体検出なら肌色を検出しよう!」となりました.
さっそくRGBからHSVへ変換する式を見つけてきました.

除算器と乗算器が必須で,回路規模が大きくなり
日数が少ない開発期間ではとても厳しいことに……

仕方なくHSVへの変換を諦めて,RGBの比較だけで肌色を検出する回路を作りました.
思いついたが最後,二時間の地獄が待っていました.

肌色と認識させる範囲がとてもとてもシビアでした.
素直にHSVを使うべきだったと思いながら,二時間ずっと範囲調整を失敗しては訂正失敗しては訂正を繰り返しました.

大変だったことその4 : 孤独な戦いを強いられているんだ!

論文を書くのも発表資料を作るのも当日の発表も一人でした.
他のメンバーはふたりとも隔地にいるので,
しかたなく一人で論文を書き(先生に大いなるサポートをいただきながら)
発表資料を,コンテスト前夜に作り,ほぼ練習無しで当日発表し,
見事賞状をもらえました.

なぜ人は過ちを繰り返すのか

めっちゃ短い開発期間・スライドもほぼ前日に作った・練習を積んでいないのでとても辛い
どこかで似たような経験しましたね.そうですプロコンです.

短期間で頑張ったつもりでも,やはり他の開発チームに比べたらただの間に合わせでしかなく,
賞がもらえただけでもありがたい,といった心境です.

来年度の抱負

正直に話すと,今回の結果はダメダメだと思います.
もっと勉強してもっと力をつけて,来年も参加して上位入賞したいです.

今日からまた勉強頑張ります!

2015年12月20日日曜日

電子工作をするときに使ってきたソフトたち

この記事はICT Advent Calendar 2015の20日目の記事として書きました。

今年はプロコンに出場しました。それの反省点や、できるようになったこととかを書きます。
その後は後輩にハードウェア開発の知識を継承するためのいろいろを書きます。

プロコン、皆さんへの圧倒的謝謝

何回か前の記事にプロコンのことを書きました。
もう一度、自分が何をし、何ができるようになったのかまとめてみたいと思います。

自分はアプリのメイン処理に携われるほど開発力がついていなかったので、実験を一年生の可愛い可愛い後輩と一緒にやりました。ひたすら、一分半の「少し操作して放置」の実験を何十回と繰り返しました。自分の実験が終わるのを待ってくれた先輩と駐日ユーゴスラビア臨時政府大使館さん(以下、ユーゴに略す)と、一緒に実験してくれた一年生に圧倒的感謝です。やはりアプリを実際に動かそうにも、そのデータを作らねばなりませんので、実験が長引いて待たせてしまったのは反省です。
実験の後半の後半で、先輩が測定アプリを改良して爆速で測定できるようにしてくれました。今までの待機時間がウソのように、みるみるうちにデータが取れていきました。ソフトウェアってすげーってなりました。
実験お疲れ様でした!

アプリが「位置測定をしてスワイプ下方向にデータを送る」という仕様なので、その基盤を使ったゲームを作れと言われ、「スワイプした方向に爆弾を押し付けあう」ゲームを作りました。
このアプリは決して一人で作ることはできず、ユーゴ宅に泊まりこみAndroidアプリのなんたるかを教わりながら、M教授と先輩にプレビューをしてもらい、一年生の後輩には「背景にカメラからの映像を映すアプリモジュール」を作ってもらったりアプリに使う画像や音源などの素材を集めてもらったり、みなさんの協力を得て自分の初めてのAndroidは(メインアプリと統合すればきっと)どうにか遊べるレベルまで作ることができました。
アプリを作成するのに協力してくれた皆さん本当に圧倒的謝々です!

昨今の沖縄高専ICT委員会におけるハードウェア開発事情

沖縄高専ICT委員会は主にソフトウェア開発が基本です。しかし、ハード開発を一切やらないというわけではありません。
ホワイトハッカーズがエンベッドでアプリを作っていたり、一年生の一部がラズベリーパイを触っていたり、実は各学年に一名以上は情報性がいたり……
実はハードウェアの開発をする人がいます。
某先輩がいればハードウェアの開発も少しはできたでしょうけど、もう卒業しまいました。
残されたハードウェア要員である情報性の一人である僕は、ICT委員会がこれからハードウェア方面にも進出した時のことを考えて、自分がハードウェア開発の際に使ってきたソフトたちを紹介しようと思いました。

使ってきたソフトたちの名前の紹介


僕がハードウェア開発をするときに使ってきた道具の名前と、それらのダウンロードリンク、そして僕が学習したサイトを紹介していきます。

  • BSch3V:回路図を書くときに使う
  • PasS:実体配線図を書くときに使う
  • Eagle:大規模プリント基板を作るときに使う
  • PCBE:小規模プリント基板を作るときに使う

BSch3V

僕が回路図を書くときに使っているソフトウェアです。回路図はあくまで概要なので、全体をシステムとして見渡すときに使います。
例として、3年次のコンピューターアーキテクチャの課題でCPUを作成するときに使いました。
BSch3Vは水魚堂さんが作っているソフトで、そこのホームページで公開されています。
ダウンロードできるサイトのリンク、便利なライブラリが乗っているサイトのリンク、僕がソフトの使い方を学んだサイトのリンク、僕が作った作品のリンクを貼っておきます。
便利ライブラリリンク:http://www.eleclabo.com/denshi/doc/bschlib.html
学習したサイトリンク:http://www.picfun.com/BSchframe.html

PasS

回路の実体配線図を書くときに使っているソフトウェアです。実体配線図というのは、基盤にパーツを実際に載せた時の図です。回路図だけではわからない部品の大きさや、相対的な位置とか実際の接続関係を知るときにに必要なものです。
僕がユニバーサル基板上にパーツを置くときに必ず使っているものです。
このソフトはショートカットキーがなくて、マウス必須で使い心地は正直あまり良くないのですが、実体配線図を作れるとても良いソフトなのでおすすめです。
ダウンロードできるサイトのリンク、便利なライブラリが乗っているサイトのリンク、僕がソフトの使い方を学んだサイトのリンク、僕が作った作品のリンクを貼っておきます。
便利ライブラリリンク:ないです
学習したサイトリンク:ホームページに取扱説明書がありますのでそれを読みましょう

Eagle

僕がプリント基板を作っている時に使っているソフトです。
このソフトの便利なところは、回路図を書いてその後基盤作成画面で、すでに配置したパーツが(てきとうに)並んでいるところです。わざわざ同じパーツを持ってくる手間省けます。
さらにこのソフトは自動配線をしてくれます。本来ならば自分で導線パターンを配置しないといけないのですが、そこを自動でちゃちゃっと配線してくれます。とても嬉しいです。
嬉しい機能はいっぱいあるのですが、無償版では制限があり、1層両面基板までした対応していない、その基盤の大きさ制限がある、といったものがあるのでガチな複雑なものはできないので注意しましょう。

ダウンロードできるサイトのリンク、便利なライブラリが乗っているサイトのリンク、僕がソフトの使い方を学んだサイトのリンク、僕が作った作品のリンクを貼っておきます。

PCBE

ダウンロードはVectorからできます。
このソフトもプリント基板を作るものなんですが、Eagleとは少し違います。
Eagleが初心者向けだとすれば、PCBEはちょっとだけ上級者向けです。
Eagleと違って、

  • 回路図エディタがない、開いてすぐパターン配置画面
  • ショートカットキーが見つけにくい
  • クセが強くてなれるまでに時間が掛かる
  • 自動配線ツールがない

といろいろ差異はあるのですが、自動配線じゃなくて自分で配線しないといけないところはそこまで悪くないかな、と思います。
自分で配線しているときは楽しい気分で、自分でこだわって配線するところが楽しいです。
ダウンロードできるサイトのリンク、便利なライブラリが乗っているサイトのリンク、僕がソフトの使い方を学んだサイトのリンク、僕が作った作品のリンクを貼っておきます。
学習したサイトリンク:http://www.picfun.com/pcbeframe.html
作った作品のリンク:https://drive.google.com/file/d/0B4oTrEM9rLwfcGJJTjZIYnVwNFU/view?usp=sharing



今のところICT委員会は各学年に一人は情報生がいるので、自分が学んできたハードウェアよりの技術を後輩にもICTにもちゃんと継承できるようにこれから過ごしたいと思います。

ICT委員会のさらなる(ハード方面も)発展を祈りながら今回の記事を終わります。

2015年12月16日水曜日

アドベントカレンダーなるものを知った

最近みんなが口々に「アドベントカレンダー」という単語を発するようになった
クリスマスに向けてみんなで一日づつ記事を書くらしい

自分もやってみたいと思い、ブログに書くようなことがあるかどうか悩んだ。特に何か毎日新しいことをやっていないことに気づいた。
小学校の頃は毎日でも日記に書くことがあった(義務だった)が、最近は特にない。毎日刺激に目を向けていない証拠だと感じた。

きっと自分にもなにか書くものがあるはずと考えた結果、自分の持ち物について語ろうと思いついた。
いろいろ道具を集めては悦に浸るので、自分に向いた記事ではないかと思う。

というわけでアドベントカレンダーの記事書きます。
タイトルは「僕の道具たち」です。よろしくお願い致します。

2015年11月10日火曜日

自分の中で高専祭を終わらすために筆を走らせる

今回の高専祭は反省することがとても多かった
中でも一番反省しているのは、電子工作での計算である

この期間内に2度もミスをした
抵抗の許容電力量と、AC/DCの出力電力容量だ

まず焼いたのは抵抗器だ。
ある抵抗の先には赤外線LEDを取り付けていて、明るく光らせるために比較的大きい電流を流そうとした。しかもこの抵抗の先には三つもつながっており、抵抗には300mAが流れる計算だった。
計算をしてみると、この抵抗は1/4w級なのに対して、かかっていた電力は2.5wで、最大規格の10倍もの電力をかけていた。
回路の電源を付けて数秒でものすごく熱くなり、指を少しだけ火傷した。計算の大切さと電気の恐ろしさを身をもって体感した。

次に焼いたのはAC/DCだ。
電飾のためテープLEDを購入し電子工作用のAC/DCで12Vかけて光らせていたが、AC/DCが熱くなってLEDも消えてしまった。
それもそのはず、一つのAC/DCで二つもテープLEDを光らせれば負担はとても大きくなるだろう。熱くなったAC/DCを休ませるため、新たに二つ追加して一つずつ光らせることにした。しかし、気づけば二つとも消え、AC/DCはまたもや熱を持っていた。
恐る恐る三つのAC/DCをコンセントにつなぎテスターにつなぐと、針はピクリとも動かなかった。そう、中の回路が焼け死んでいたのだ。
それもそのはず光らせていたのは車載用12V駆動で、しかも3mも連なって光らせていた。電流は2Aほど要したところに、400mAが限界のAC/DCを使っていたのだ。ソース電流が足りずに回路は焼けてしまった。
この事教員に伝えると、実験室からとても大きく抱えるようなAC/DCを持ってきてくれた。午前は3つもAC/DCを焼いたところを、午後は教員のおかげで事なきを得た。

電気の計算は少し間違うだけで素子は熱を持ち、時には回路や素子を焼き、またある時には人間に被害を及ぼす。
今回の火傷を持って、これからの回路設計は素子や供給気に無理な負荷をかけないよう、しっかりと計算していきたい。

2015年10月17日土曜日

取り戻してわかる当たり前の幸せ

今日は、久々に当たり前の幸せを噛み締めたのでカキコ

多忙な時期から解き放たれると、いろんなことが違って見えて、とっても恵まれた環境であると認識できます。今日はそれをBeforeAfter形式で書いてみようと思いました。

①毎日タスクがある

自由な時間がとっても増える

②朝会があって、八時までに朝食を済ませて、部室集合~

八時に朝食へ行っても良いし、早く食べ終われば授業開始までアニメ一本見れる

③常に根を詰めて頑張っている!

めっちゃ気を抜いてだらけてオッケー!思考停止バンザイ(できるとは言ってない)!

④頭が痛かろうが体調が少し悪いぐらいなら、平気で開発じゃい!

体調が悪ければ昼寝できる、素晴らしい!

プロコンが終わってから、いままでの当たり前がとても幸せに思えてきました。
多忙でめっちゃ楽しい時期もありますが、たまにはこういうゆったりした生活もいいよね、ってお話です。


今の僕はプロコンが終わったので、次のタスクを潰しているところです。
次の大きいイベントはLSIデザインコンテストへの参加で、今はそのための講義を一生懸命受講しているところです。直近でやった課題は乗算器で、ステートマシンも絡めろとのことで、頭がパンクしそうです。先生も「ツリー型が一番早い」といっててトホホな感じです。
しかし、限りあるリソースをうまく使うのも大事ですよね(自分的にはこの仕事はソフトの役割だと思ってる)。自分が過去に作った作品は、あるだけの資源を無制限に使うもので、あんまりスマートじゃないかもしれないな……、と反省もします。反省はするんですが、「あれが一番手っ取り早くて、しかも実現した時に早い」という利点もあり、どれもこれも一長一短です。こういう取捨選択がうまくできる開発者になりたいものです。

これからもっと忙しくなる予定です。
やはり忙しいからこそ、体調管理に気をつけて頑張っていきたいですね。

空気も乾燥してきましたし、みなさんも体調管理に気をつけてください。


では。

2015年10月16日金曜日

自分の中でのプロコンを終わらせるために僕は筆を執る

m教授「ブログを書くまでがプロコン」
  その言葉を思いだしながら、僕は自分のプロコン26を終わらせるために、ブログに筆を走らせる。

  今回はプロコンに参加したことを書こうと思います。
率直な感想としましては、「きつかった、でも、お釣りが来るほど楽しかった」です。
そのきつかったことと、楽しかったことを書きます。

  何がきつかったか、準備期間と当日の風邪です
  今回自分が所属したチームでは、ビーコンを用いた自己位置推定のアプリがうんちゃらするんですが、その下積みの測定がたくさんあったことです。
特に開発力のない自分がチームにできることが、「測定と実験」でした。
メインをできない分、サブを出来るだけ拾わせてもらった感じです。
  メインアプリの開発には関われませんでしたが、サブアプリ(?)なるものを作らせてもらいました。
最初はできるか不安でしたが、ゴリ押しでなんとかなるもんですね。夏休み終わってからプロコンまでの一ヶ月半で、爆弾を投げて非表示にするだけのアプリを作りました。
このアプリ作成には一年生の後輩が手伝ってくれて、カメラビューを背景に持ってくることにより、より臨場感のあるゲームになって、一年生には感謝しています。
ぜひとも、これからもプログラミング的な勉強を続けて欲しいです。
  また、今回はプロコン日程中に風邪を引いて体調が崩御してしまい、デモブースから離脱して、足を引っ張ってしまったり、会いたかった人に会えなかったのが辛みisあるって感じです。

  楽しかったことは、プロコンに参加したこと関連全部です。
  自分で作ったアプリがどんどん完成していく姿は、今までにない感動を味わうことができました。準備期間の測定も平行してやったので、少し大変でしたが、実際に遊んべることを心待ちにしながら作りました。
  プロコン開催地へ向かうため、飛行機と新幹線を乗り継いだんですが、新幹線はとてもすごいと感じました。発着のショックがとても少なく、駅にいる時には隣の電車が走っているのか自分の車両が走っているのか、わからなくなるほどでした。
  会場のでもブースでは沖縄高専生よりも個性的な人たちと名刺交換(あげたとは言ってない)をして、Ichigojamのジグ野さんに会えたり、我らがICT委員会ないでとてもとても有名なABEJAの方にあったりと、とても楽しい時間でした。

  思い出話だけでなく、次のステップへの反省点もあります。
  今回の反省点は、体調管理と、集団行動です。
  やはり大事なときに風邪をひくのはいただけないですよね。これからは体を鍛えようと思いました。
  集団行動ではちょっと気が抜けて、帰路の飛行場で勝手に手荷物検査に進んでしまい、他のメンバーとはぐれてしまい、迷惑をかけてしまいました。
「預け荷物検査が終わった→手荷物検査」しか頭に無く、反射だけで動いてしまったので、これからはちゃんと頭で考えて行動できるように気をつけていきたいです。

  来年は卒業研究で忙しくなってとてもプロコンどころではなかったと思うので、今回はプロコンに参加できてとても良い勉強になり、今までよりも少しだけ成長できた気がします。
その成長をムダにしないためにも、これからの学生生活頑張ります。