なぜか今更はてなブログの「インポート」機能に気づいたので移行してみました。
リダイレクトの設定もしたので、急に今までと雰囲気が変わった感じになりましたが、今後ともよろしくお願いします。
なぜか今更はてなブログの「インポート」機能に気づいたので移行してみました。
リダイレクトの設定もしたので、急に今までと雰囲気が変わった感じになりましたが、今後ともよろしくお願いします。
Hack Day 2017に参加してきました。
どうやら5回めの参加の模様
Hack Day( http://hackday.jp/ )というのは、土日の24時間(本当に12時〜翌日12時)という時間制約のもと「動く」プロダクトを開発し、その後90秒で発表するというYahoo!JAPANの名物イベントのOpen版です。
今回は昨年とほとんど同じメンバーで参加しました。
今回作ったものは「Recipe Mixer」です。
料理というのはマルチタスク。
複数の料理を並行に進めていく、というのはなかなか素人には難しいです。
そこで「Recipe Mixer」、これはそんなあなたを助けてくれるLineBotです。
指定したレシピをいい感じに合成して、「次やるべき作業」をLineで伝えてくれます。
去年の経験から、結局ぎりぎりにならないと決まらないのでは、なんて言いながら、気持ち少なめの打ち合わせ。
2週間前くらいから、夜に時間の合うときに「サイゼリヤ」で打ち合わせ (学生っぽい)
結構早めにLineBotをやろう、という話になりました。
しかし、なかなかLineBotを使った良いネタが出てきません。
いろいろ出した中で、これかなぁ・・・ ということで、決まったのが今回のネタでした。
全員の時間が合わず、全員で顔を合わせて打ち合わせ、というのができないまま当日を迎えます。
11:30から開場ということで、少し早めに秋葉原に向かいます。
12:00から開発開始!
初めて全員がそろったので、まずは何を作るか、というところを話し合います。
ターゲットは誰なのか、どんなUIにするのか、開発はどのサーバを使うのか・・etc
大体みんなの認識があったのが14:00くらい
そして役割分担。
まずはこれで!
僕はダミーのレシピデータを使って、後半部分を作っていましたが、なかなか難しい・・
夕方ごろ、用意された夕食を食べ終わっても、まだ、、みんな黙々と作業・・
不安になりはじめる。
なんとなくみんな作れているものの、結合するには至らない・・
とりあえずデータだ!ということで
手の空いた、@kasahiさんが、使えそうなレシピをステップに分け、DBに突っ込んで、APIから引けるようにしてくれました。
そうこうしているうちに、僕もダミーのデータで後半部分が動くようになったので、ダミーデータからAPIに切り替え、@shamabeさんの作ったゲートウェイと結合。なんとなく順番にレシピの手順を教えてくれる状態になりました。
ただ、なんかレシピのマージにバグがあって、思ったようにならない、、
豆腐をゆでろと指示が来た後に、豆腐を切れ みたいな感じになったりしてました・・
とかやってるともう深夜・・ 眠い頭に鞭打ちながらバグを直す・・
少し直しては、また別のところがおかしくなる、、というのを繰り返して、結局朝の7時過ぎくらいにまともに動くようになりました。
僕がこんな感じでバグと戦っている間にばりーさんの部分は作りこみが進み、いい感じにレシピを絞り込む対話ができるようになっていました。
また@kasahiさんがレシピを拡充し、「生姜焼き」「肉じゃが」「味噌汁」「ポテトサラダ」「きゅうりの浅漬け」などのメニューを混ぜることができるようになりました。
で、8時ごろから2時間ばかり仮眠・・
10時ごろに起きてきて、細かい部分をさらに作りこんだり、プレゼン資料をみんなで確認したりしていると12時。
あっという間の24時間でした。
発表はmatsuchiさんということで、僕は後ろで立っているだけでした。サーバ側のトラブルも無く、ほっと一安心。
発表のあとは展示。かなり多くの方が見に来てくださいました。「あしたから使ってみたい!」などと言ってくださる方もいて、手ごたえを感じました。
そして、授賞式。
見事 「Fun賞」をいただくことができました。
レシピマージの仕組みは、かなり愚直にやっていて、
このように下ごしらえしたレシピを混ぜ込んで、いわゆるトポロジカルソートをしています。
ただし、これだけだと自由度がありすぎるので、料理に特化した最適化をいくつか行っています。
といった条件を満たすように処理を工夫しました。
ともかくこのシステムはこの事前の「下ごしらえ」がキモでして、手作業とコンピュータのアルゴリズムをうまく組み合わせて実現しています。
また、レシピの動作には
といったパターンを用意し、料理をうまくアシストできるようにしました。
レシピのマージは実は僕が前からやってみたかったもので、今回その部分を作ることができてとても良かったです。
バグが結構あって、チームの皆さんをハラハラさせてしまったのがやや反省です。(プログラミングコンテストとか好きな方たちはこんなの余裕なんだろうなぁ・・と思ったりしました。)
毎度のことですが、一人ではこんな完成度の高いもの作れないし、ついついもっとおふざけ方向に走ったプロダクトを作りがちなので、チームの皆さんに感謝です。
今回はチーム内の仕様の共有に https://scrapbox.io/ を使ってみました。コロコロ仕様が変わるハッカソンにおいて仕様を書いて残せる、間違ってたらすぐ直せる というscrapboxのUIは非常に使いやすかったです。
ほかに使ったツールははGoogleSpreadshhet, gitbucket, facebook・・ くらいですね。ほかのチームがどんなツールを使ったのかも気になります。
Hack Dayは今回で5回めで、僕は過去4回も参加しました。宣伝的にリンクを置いておきます。
YouTubeの録画映像を見ながら、全作品の「技術解説」している部分を抜き出してみました。参考にどうぞ
やっと材料がそろったので「プロッタ」を作ることにしました。
「プロッタ」というのは、ペンプロッタのことで、ペンを自動で動かして、図形を描画する装置のことです。
ずいぶん前にこの記事を見た時から作ろうとしていたのです・・
http://www.instructables.com/id/Mini-CNC-Plotter-Arduino-Based/
要はジャンクDVD-ROMドライブからペンプロッタが作れるよという記事です。
これなら僕でもできそう!
まずは秋葉原にいってジャンクDVD-ROMドライブを買ってきます。
実は、ここにで一つ試練が。
DVD-ROMドライブには「あたり」と「はずれ」があります。
今回のやり方でプロッタを作るためには「ステッピングモーター」が必要です。
DVD-ROMドライブの中には「ステッピングモーター」を用いているものと、(おそらく)「DCモーター+ロータリーエンコーダ」を用いているものがあるようです。
おそらくどちらの仕組みでも、うまくやればプロッタを作ることができると思うのですが、今回は参考URLの通り「ステッピングモーター」を使いたいので、あたりが2つ手に入るまでDVD-ROMドライブを買うことにします。
相場としては一つ500円くらい。もっと安いものもちらほらあるかな、、と。
今回はモバイルPC用の「スリムドライブ」も買ってみました。
これも分解してみるとステッピングモーターが入ってることを確認できました。
ただ分解が少し面倒、薄型なのでねじも小さい。 また、ステッピングモーターの稼働範囲が少し少ない(僕の買ったものしか知らないですが)などデスクトップPC用のDVD-ROMドライブとは少し異なっているようです。
次にステッピングモーターを操作するためのICを調達します。
もっと安い方法もあるかもしれませんが、今回はaitendoでEasyDriverと呼ばれるステッピングモーターを簡単に扱うための定番のキットを購入しました。
ステッピングモーター1つにつきEasyDriverが1つ必要なので、2つ購入。
http://www.aitendo.com/product/10976 (今見ると在庫が少ない)
Amazonならこちら
ほかにもステッピングモーター制御用のICはあるので、これじゃなくてもできるはずです。
ひとつ350円
もう一つ、ペンの上げ下げのために必要な「サーボモーター」を調達します。
千石電商で https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=8ADR-HCKF を購入しました。
ひとつ1300円
トルクとかあるらしいけどよくわからない。
Amazonならこちらとかがよさそう
元記事でも「That's the most difficult part of our construction.」と書かれている部分
ここを実現するための何かを100均で探していると偶然「PUSH CLUP」なる ビニール袋の封をするための製品が、ちょうどよさそうということで、購入しました。
108円
Amazonだとこちら(ちょっと多いけど・・)
小久保 袋留めクリップ delijoy プッシュクリップ 3個入×3セット 6723
まずはDVDROMドライブを分解します。
ねじを外していけば基本はOK
http://air.ap.teacup.com/vitz/1480.html
こういう記事を参考にしながら分解します。
”強制イジェクトホールをを押す”ところがわからなくてしばらく悩みました。
EasyDriverとDVDROMドライブから取り出したステッピングモーターの動作チェックをします。
http://www.schmalzhaus.com/EasyDriver/
本家サイトを参考にしつつ、ArduinoとEasyDriverとステッピングモーターを接続します。
http://www.schmalzhaus.com/EasyDriver/Examples/EasyDriverExamples.html
この例に従って動くことを確認。
まずはX軸用のステッピングモーターとY軸用のモーターを垂直に固定する必要があります。
そのためにはL字型の金具みたいなものが必要です。
今回はDVDROMドライブのケースを利用することにしました。
木材をいいくらいにカットして、DVDROMドライブケースにねじで固定します。
木材にDVDROMドライブから取り出したステッピングモーターとその枠をねじで固定します。
Y軸側も木材をいいくらいにカットしたものに、DVDROMドライブから取り出したステッピングモーターとその枠を グルーガンで固定します。
木材とDVDROMドライブケースをねじで固定すれば、X軸、Y軸の完成です。
こんかいはX軸は普通のDVD-ROMドライブから取り出したステッピングモーター、 Y軸はスリムドライブから取り出したステッピングモーターを採用しました。
スリムドライブのステッピングモーターは上下が平たい構造となっており、Y軸に固定するのがとても簡単でした。
Z軸についてはも木材をいい感じにカットしたものに、ねじでサーボモータを固定します。
さらに、100均で購入した「PUSH CLIP」にドリルで穴をあけたものを、ねじで木材に固定します。
このとき、サーボモーターの回転によってPUSH CLIPが縮まるように位置を調節する必要があります。 ここが結構難しい。
ブレッドボードを使い、X,Y軸用のステッピングモーターとEasyDriver、Z軸用のサーボモーター、Arduinoをくみ上げます。
てきとーにプログラムを書いて、X,Yの移動、ペンの上げ下げができることを確認します。
ペンは、細めのマジックを選定。フェルトのペン先だと多少圧が足りなくても線が描けるだろうということで、、
PUSH CLIPとペンをどうやって固定するか・・・
とりあえず手近にあった「輪ゴム」で止めます。
輪ゴムだけどがたがたしたので、結束バンドでさらに固定します。
X軸とY軸が完全に垂直になっていないと、ペンがと紙が離れてしまうので、調整します。
調整といっても厚紙を折り曲げたものを台の下に挟み込んで、傾きをつけるだけですが・・
X軸、Y軸をそれぞれ数値で制御できるようになれば、sin,cosを使ってリサージュ曲線を描くことができます。
できたっ!
自作ペンプロッタでリサージュ曲線湯を描いてみた 案外早い! https://t.co/UoxVxXbvaP
— ina_ani (@ina_ani) 2017年1月12日
http://www.instructables.com/id/Use-3D-Printer-As-a-Plottercutter/?ALLSTEPS
ここにあるSVGをGコードに変換するライブラリを使って、Gコードのデータを作成します。
GコードをArduinoのプログラムに変換するプログラムを作ります。
で、あとは実行するだけ。
できたー
プロッタ作成はとても面白い。そしてリーズナブル。
ぜひぜひみんなもやってみよう。
今のところの課題
今年は何といっても入籍したのが大ニュース。人に会うたびに「おめでとう」と言われてハッピーでした。仲良くやっていきます。
電子工作は自作ゲーム機の年だったなと
Gamebuino,Arduboyのクローンを作るとこから始まり、8月にはArduboyの作者と会うことができた。自分が目をつけているプロダクトがどんどん広まっていくのを体感するのは楽しいですね。もっとやれることもあったかなと思うので、来年も引き続きゲーム機はやっていこう。
去年末にrakuchordの基板を作った影響もあって、そこそこ安定してきたし、いろんな人に見せびらかすことができた。来年は完成度を高めていきたいところ
docker, kubernetes, goといった、ややインフラ寄りのソフトウェアに触れることができたのは、会社の仕事の影響が大きい。まだまだ知らないことが多いので継続して勉強していきたい。
アニメを見る量を減らして、ネットラジオを聞くようにしています。心境の変化?
英語が必要とされる機会が例年より多くなった気がする、これはいよいよ本腰をいれて勉強する必要があるか・・?
去年ほどではないが体調不良が多め、毎朝のラジオ体操は継続中だが、もう少し何か考えたほうが良いかも
今年はわりと新しいことに挑戦できたかなと思う。今年から始めて今後も続いていきそうなネタが結構できたように思います。
去年はあまりブログが書けなかったが、今年はまぁ大体月1で更新できたので良しとしよう。
RakuChordを作るにあたり、音源をもっとリッチにしたい、、と思い、音作りを試行錯誤できるデバイスを作ることにした。
そもそもRakuChordにはつまみがない、ディスプレイもない・・ ということでそれを補完できるように考えてみる。
材料はうちにあるありあわせのもの
お値段的には1000円くらいでできたのでは?
エフェクトをたくさんつけた スピード、減衰、オクターブ、ピッチシフト、デチューン pic.twitter.com/AUlSRUsf3U
— ina_ani (@ina_ani) 2016年11月23日
とりあえず思いつく機能を片っ端から実装している。
とりあえずこんな感じ。
メモリは余っているのでまた思いついたら実装していきたい
cheapseqで音源を調整して、RakuChordに取り込んでいくのがよさそう。乞うご期待
ずいぶん前に作っていたのだけれど、ブログに書いていなかったので。
巷ではArduboyが盛り上がっていますが、Gamebuinoもなかなかイケてます。
項目 | Arduboy | Gamebuino |
---|---|---|
ディスプレイ | OLED 128*64 | FSTN 84*48 |
SDカード | なし | あり |
携帯性 | 抜群 | そこそこ |
ディスプレイはArduboyが優れており、SDカードからのゲームロードという点でGamebuinoが優れています。
そこで、、
「Gamebuinoの回路で、ディスプレイをOLED128*64にしたもの」
を作ってみることにしました。
要はGamebuinoとArduboyの良いところを真似たゲーム機です。
ディスプレイはこれを使います http://www.aitendo.com/product/7273 SPIなので、ほかの液晶と同様に接続すればOK
あとは以前記事を書いた ここ http://d.hatena.ne.jp/inajob/20160322 と同じです。
また、今回は前回より小型化を目指しており、そのために単4電池1本で動くようにしました。昇圧回路が思ったより場所をとったので、単四電池2本でも大して変わらなかったかも・・
まぁそんなこんなで、完成品です。
Arduboyよりも一回り小さいディスプレイですが、反応速度やコントラストはさすがOLEDといったところです。
こうして作ったハードウェアはGamebuinoとよく似ていますが、ディスプレイが違うため、ソースコードに手を入れる必要があります。
その手を加えたものがこちら。
https://github.com/inajob/Gamebuino/blob/master/for-arduboy.md
このライブラリを使ってGamebuinoのゲームをコンパイルすることで、このハードウェア用のバイナリを作ることができます。
またおまけとして、純正Arduboy用のバイナリを作る機能も付けました。
Arduboyはついにスイッチサイエンスでも販売されるようで、これからますます流行ってくるのではないかと思います。
https://www.switch-science.com/catalog/2880/
このライブラリを使ってGamebuinoのゲームをArduboy用にコンパイルして遊んでもらえればと思います。
また、腕に覚えのある方は、秋葉原を回って、僕みたいにGamebuinoとArduboyの良いとこどりゲーム機を作ってみてはいかがでしょうか?
前回( http://d.hatena.ne.jp/inajob/20160606 )に引き続き、IoT合宿に参加してきました。
未踏経験者Onlyで、かつ初心者歓迎というこの合宿。
しかもとても電子工作に詳しい未踏の先輩が教えてくれる会!
僕はちょっとは電子工作できるということで、何かあればお手伝いだったりをやりつつ、日ごろ気になっていたことを周りの人たちに聞いたりしてました。
この合宿では、スイッチサイエンスのエイドステーション( https://www.switch-science.com/info/aidstation/ )を導入していて、面白そうな部品はその場で買うことができます。
ということで、マイクを使って電子楽器の演奏に幅を持たせられないかという実験を、、
と思ったけど、少しやってたらどうもマイクを壊してしまったみたい・・ つらい・・
でもオペアンプを使ったピークホールド回路のイメージはついたので、いつかリベンジしたい。
冷蔵庫の納豆がなくなったら、スイッチを押してLEDを点灯させ、 そのLEDの状態がWebからも見られる
という仕組みをESP8266で作ってみました。
WebからもLEDを操作でき、その結果を本物のLEDに同期するように作ったため、実際に運用すると結構な勢いで電池を消費しそうだけれども、まぁ動いたのでよし。
Maker Fair Tokyo 2016で本物のArduboyを購入したのですが、まったく触れていませんでした。
ということでまずはシーケンサを作ってみようということで作ってみました。
ドット絵エディタのような仕組みで、ドットを置くと音が鳴る という単純な仕組みです。
これだけでもいろいろ音楽っぽいものが作れて楽しい。
Arduboyでシーケンサ作ってみた! https://t.co/Y1Km1qV5Xh
— ina_ani (@ina_ani) 2016年9月14日
Arduboyのライブラリにある音を鳴らす仕組みでは(おそらく)単音のメロディしか鳴らすことができません。
そこで、RakuChordで培ったAVRのタイマーの知識を使って、Arduboyで和音を鳴らせるようにしてみました。
そんでもって、↑で作ったシーケンサの和音もならせるバージョンを作りました。
かなり音量が小さくなってしまいましたが、まぁ一応和音が出るようになりました。
Arduboyシーケンサ和音バージョン わりと音が小さいのが残念なところ https://t.co/FhKidJWw1C
— ina_ani (@ina_ani) 2016年9月14日
IoT合宿といいつつ、後半はArduboyのソフトを書いていたので、あまり電子工作という感じではありませんでしたが、まぁこういうのもよいかと。
初心者向けの講座としてはRaspberryPIからI2Cで温度センサーの値を読み取る というのが行われていました。
電子工作に触れてみたい未踏関係者の方はぜひ次回もあるそうなので参加してみてください。