Projects

# 2018 # laser-cutter # AVR # HCI # keyboard # Rust # JavaScript # wood # toy # arduino # mp3 # music # tool # PC # STM32 # Touch # Instruments # Cyberdeck # command # 2017 # TensorFlow # IR # power # 3D-print # sample # Phone # i2c # Web # React # Security # Scrypt # 2016 # ESP8266 # WebAPI # Tool # OLED # RaspberryPi # Arduino # 2015 # IoT # ProgrammingLanguage # I2C # 2013 # Ruby # 2010 # 2009 # PIC

自作キーボード3つ目。

東京に引っ越してから、通勤時間がだいぶ増えた。 混雑した電車内だとノートPCを取り出すのが難しい時があるのと、 ノートPCはオフラインなのでインターネットに繋ってる方がいいなと思い、 携帯をつないで使う形のキーボードを作成する事にした。

More »

# 2018 # laser-cutter # AVR # HCI # keyboard

グレッグイーガンのSF「ディアスポラ」に、ワンの絨毯という章がある。 知的生命体を探して地球を出発した主人公たちの前に、 成長するタイルでできた絨毯が海に浮んでる星があらわれる。 実はこのタイルはチューリングマシンで、 その中に住んでるやつがいる、というあらすじ。 そのタイルをイメージしてこのパズルを作った。

見た目は単純なジグソーパズルだが、 見た目に反して完成させるのはなかなか難しく作ってある。

良い数独の問題はバックトラックする必要が少ないと聞いた。 では、逆にバックトラックの数を極限まで増やしてはどうか? そう考えて、このパズルを作った。 あと1枚まで完成したのに、最後の1枚がどうしてもハマらない。 このパズルは良い感じにプレーヤの心を折りにくる。

タイルパターンの生成はRustで書いたコードで行っている。 前にLL言語で生成コードを書いたが遅くて使いものにならなかった。 Rustはヒープの使用を避けられるのが大きいのではないかと思っている。

何人もの友人に試してもらったが、 殆どの人は数時間以上悩む。 しかし、1人だけ、すらすらと解いてしまった人がいた。 このタイルの中に住んでる宇宙人が関係しているのだろうか?

More »

# 2018 # laser-cutter # Rust # JavaScript # wood # toy

歯車を自動生成するテスト。 インボリュートギアというのが回りやすいと聞いて、 それを自動生成している。

将来的には時計を作りたい。

More »

# 2018 # laser-cutter # wood

立方体を作るサンプル。

JavaScriptで生成コードを書いたので、 引数に渡したサイズでTスロットまで自動作成可能。

More »

# 2018 # laser-cutter # wood

ボタンを押すと、それぞれのスイッチに割り当てられたプレイリストが再生される。

More »

# 2018 # laser-cutter # arduino # mp3 # toy # music # wood

レーザーカッターでスタンプを作ってみた。

材質がMDFなので、スタンプ台を使わないと一部が擦れる。

認印として使ってる。

More »

# 2018 # laser-cutter # tool # wood

PCにつないでCPU使用率、メモリ使用率などを表示するメーター

More »

# 2018 # laser-cutter # arduino # HCI # PC # wood

立方体型の楽器 24個のセンサーが各音階に対応してる。

More »

# 2018 # laser-cutter # STM32 # Touch # Instruments # music

gitlab.com/ikeji/linda ちょっとしたシェルスクリプトを書く時に、 ロックが必要になる事は多い。 単純なのならflockコマンドで済むんだけど、 Producer Consumerモデルをやりたいとかなると、 シェルスクリプトだけでは難しい。

そこで、並列プログラミング言語Lindaを、コマンドラインで実装した物を作る事にした。

コマンドラインなので、タプルではなく一行の文字列を正規表現でマッチする事にした。

プロトタイプはSchemeで書いてみたが、 面白そうな話題だったので、各種言語で書いて比較してみるなどした。 最終的には、Rustが一番手頃で良かった。

日々のスクリプトの中で地味に便利に使ってる。

More »

# 2018 # command

自作キーボード2つめ。 5行6列+1の分割キーボード。

More »

# 2017 # laser-cutter # AVR # HCI # keyboard

3軸加速度センサーを組み込んだ杖。 TensorFlowでジェスチャを認識し、赤外線で家電を操作する。

More »

# 2017 # laser-cutter # AVR # HCI # TensorFlow # IR

ノギスに電源としてスーパーキャパシタをつけた。

何を作るにしてもノギスで測る事は多い。 このノギスは安いのに便利に使ってたのだけど、 いつの間にか電池が無くなってる事が多い。 スライドすると勝手に電源が入るため、 持ち歩いてると電源が入ってしまう事が多いようだ。 ボタン電池は予備の準備も少ないし、 使えないでイライラする事が多い。。

そこで、電池の変りにスーパーキャパシタをつけた。

3.3VのDC/DCコンバータを使って充電してる。

電圧が変動するのが不安だったが、 今の所、壊れたり、不正確になったりしてはいない。

一回充電したら1日使えるし、充電自体も30秒ぐらいで終わる。

もしくは、常に充電しっぱなしにしておいてもいいかもしれない。

More »

# 2017 # tool # power

3Dプリンタで印刷する時に、 どこまで下がなくて済むか調べるためにサンプルを作った。

このプリンタでは20度では全く問題ないし、30度でも実用上問題なさそう。

More »

# 2017 # 3D-print # sample

レーザーカッターを使って物を作るようになった。

普通のCADでデザインしてカットしても良いが、 できればプログラマティックな方法でデザインできたら良いなと思い、 JavaScriptでSVGを作るライブラリを作った。

More »

# 2017 # laser-cutter # JavaScript

自作キーボード 4行6列の分割キーボード。

More »

# 2017 # 3D-print # AVR # HCI # keyboard

俺が使った物では角が丸い物体を作る事が多い。 しかし、どんぐらい角をまるくするのがいいか決めるのが難しい事が多い。 そこで、物の丸みを調べたり、自身がサンプルになってる物を作った。

More »

# 2017 # 3D-print # sample

家にGoogle Homeを導入したが、 Homeで操作できる家電を持ってない。

そこで、WebAPIから操作できるIR送信機を作った。

More »

# 2016 # ESP8266 # IR # WebAPI

テレビを見ながら何となく触る事も多いリモコンを、 プラスチックではなくて、木で作ってみた。

ケースは2x4材をカットしてくりぬいて作った。

中身はいつものAVR。 基板は銅テープ。

More »

# 2016 # wood # IR # AVR

トラックボールを愛用してるけど、 キーボードの右に置いてあるトラックボールに手を置く時に、 手をひねってる感じがあって、 それを何とかしたくて台を作ってみた。

More »

# 2016 # wood

マトリックスLEDを2つ使った砂時計。

ポモドーロテクニックがマイブームの時に使ってる。

More »

# 2016 # 3D-print # AVR # tool

最近の携帯はストラップホールがなくて、持ちにくい。 そこで自分で付ける事にした。

3Dプリンタで印刷して、強力な両面テープでとめる。

More »

# 2016 # 3D-print

配線ミス、半田付けミスを発見できるように、確認機器を作った。

元ネタはこれ実装ログはこれ

出力が0.5V以下なので、ほとんどのトランジスタのVf以下であり、 回路だけをチェックできて嬉しい。

More »

# 2016 # Tool

AVRやESP8266にプログラムを書き込み、デバッグするのに、 いままでは毎回シリアルケーブルを接続していた、 しかし、面倒になってきたので専用に作る事にした。

  • AVRとかESP8266に書き込める。
  • 3.3Vと5Vをスイッチで切り替えられる。
  • 電源の供給のオンオフの切り替え。 オフでもli相手が電源内蔵なら通信はできる。)
  • PCからターゲット向けの信号はスイッチでオフにできる。

AVRへの書き込みは、これの前はHidaspxを使っていたが、 これはシリアルデバッグ出力も見えるのでいい。

More »

# 2016 # AVR # ESP8266

携帯型ゲーム機を作ってみた。

古いゲームでも、 難易度をあげておくと 意外と面白くなるという知見がえられた。

ボタンなどを含んだケース全体をデザインするという練習。

More »

# 2016 # 3D-print # AVR # OLED

同僚の机の上にある鉢植えが水やりを忘れるせいで枯れかかってしまっていた、 そこで、土壌湿度センサを使い、水が足りないと警告を出すようにしてみた。

しかし、警告を無視してしまい、結局枯れた。

More »

# 2016 # RaspberryPi

IoT機器から、部屋の電気をつけたり消したりしたいという要望は多いと思うが、 実際作るとなると、100Vが通る線を作らねばならないので敷居が高い。

壁のスイッチの操作が可能だと聞いて、 そこで、壁のスイッチをネットワーク経由で操作できるようにしてみた。

More »

# 2016 # 3D-print # Arduino # ESP8266

ポケモンGoが公開されて、 早速遊びはじめたが、 立ってボールを投げるのは結構難しい。

そこで、その日のうちに補助デバイスを作った。

More »

# 2016 # 3D-print

HappyHackingKeyboardにトラックポイントを付けたいというのは、 誰しも一度は考える事だが、 今回は、PSP用のアナログジョイスティックを使ってみた。

使った感じ、精度が荒いので調整が難しいのと、 付ける角度をうまく調整しないといけないという学びがあった。

More »

# 2015 # Arduino # HCI

冷蔵庫の牛乳が切れた時に押すと、メールでお父さんの携帯に通知され、 お父さんが買ってきて冷蔵庫に補充されるシステム。

そもそも有用かわからなかったので、 何回かプロトタイプを作った。

まず、最初に作ったのが、RaspBerryPiにスイッチをガムテープでつけたモデル。 電源はコンセントから取得する。

これがViableであると確認できたので、次に作ったのが、ESP8266で作ったバージョン。 ブレッドボードでさくっと作った。 スイッチ側の電池ケースに単三電池2本を入れて動作している。

この構成で、電池の持ちなどを確認した後、スイッチに収めたバージョンを作成した。 こちらは、ESP8266のモジュールの裏に直接部品を付けて作った。 見た目は元のプッシュスイッチと同じだが、Wifiに接続している。

普段はスリープモードに入っていて、 スイッチを検出してWifi接続、メールの送信を行い、 またスリープモードになる。

これで普通の使い方で半年ぐらいのバッテリー寿命だった。

More »

# 2015 # ESP8266 # IoT

「あ」のフィギュア

デザイナの人に、どれがどのフォントかあててみろ、って言ったら全問正解でびびった。

More »

# 2015 # laser-cutter

gitlab.com/ikeji/jsise

今、ブラウザで動くプログラムを書こうと思ったら、 基本的にはJavaScriptで書く事になるわけだけど、 だいたい冗長になる事が多い。 同じようなコードを繰り返し書く事も多いし、 そもそも、functionって長い。

これを短かく済ますにはマクロが欲しい。 型チェッカなんかよりずっと欲しい。 そう思って、自分用にプリプロセッサ処理系を作った。

これ以降、趣味のJavaScriptを書く時はこの処理系を使うようにしてる。

More »

# 2015 # JavaScript # ProgrammingLanguage

各種センサーを買ってきていじってたけど、 毎回PCとのインターフェースを作るのが面倒になってきた。

そんな時、rerofumiさんのつみょんを見て、 これいいな、と思ったのがはじまり。 ただ、通信はi2cメインにしようと思った。

そこで、i2c-tiny-usbというアダプタを作り、 それを使いまわす事を考えた。 このアダプタはLinuxカーネルに直接ドライバが入っていて、 /dev/i2c-xxxに繋ってるという優れもの。

あんまり積みすぎると、プルアップが大きくなりすぎたり、 アドレスが衝突したりして、通信できなくなる。

直接RaspberryPiのi2cバスを変換する基板も作った。

More »

# 2015 # AVR # I2C

smilecalendar.ikeji.ma

どこかで見た、毎日笑顔を書きこむ式のカレンダーを自動生成するページを作ってみた。

運動した、喧嘩しなかった、笑顔で話せた、など決めた事を達成したら、 笑顔を書き込んで使う。

最初のバージョンはRubyで直接PDFを生成してた。

今のバージョンはReactとjspdfっていうライブラリで作ってある。

More »

# 2013 # Web # React # JavaScript # Ruby

1スイッチのボタン。 押すとCtrl+Alt+Lを送信する。

プッシュライトをケースに使ってる。

More »

# 2010 # AVR # keyboard

指が8本あれば、1バイトの入力が可能のはず。 という謎理論によって作ったコード入力式キーボード。

結構練習したが、結局ものにならなかった。 学習初期で、一応実用になる速度がでるのがだいじ。

モバイル向けにピボットしたりしたが、計画破棄。

More »

# 2009 # PIC # keyboard