タグ

ブックマーク / shokai.org (7)

  • 橋本商会 » プログラムの写経

    プログラミング初心者が写経する時に気をつけると良い事を4つ説明します。 画像はイメージです プログラムを勉強する時に、写経しろ(すでに完成しているプログラムをから書き写せ)とか言われるが、ちょっと意識するとだいぶ違うと思う 1. 外から書け 例えば、1からnまでの数字を全部表示するプログラムがあるとする。 def run(max) 1.upto(max).each do |i| puts i end end run(10) これを写経する時、上から下に1行目から順に書くのではなくて、まず def run(max) end いちばん外側を書いて def run(max) 1.upto(max).each do |i| end end 中を書いて def run(max) 1.upto(max).each do |i| puts i end end こうなる。 上から書かないのが重要。プログ

    橋本商会 » プログラムの写経
  • 橋本商会 » 縦分割してgrepできるwebsocket client、あるいはADKのデバッグ方法

    AndroidでADK開発している時に便利なツールを作った → http://dev.shokai.org/js/websocket-client/ ADKをAndroidに挿すと、1つしかないUSBポートが埋まってしまって、logcatでデバッグ情報を見れなくなってしまう。しかし、俺の使っているNexusSはネットワーク越しのADB(Android Debug Bridge)はrootを取らないと使えない。 素晴らしいことにブラウザからlogcatを見る – 明日の鍵で、「LogcatSocketServer」というlogcatを全てwebsocketに流してくれるサーバーを作ってくれていた。これは凄く良い。 俺は普段はlogcatを複数開いて、 ^[DE]/ やアプリ名などでgrepしてエラーだけを表示したりしている。LogcatSocketServerの出力を分割してそれぞれgrep

    橋本商会 » 縦分割してgrepできるwebsocket client、あるいはADKのデバッグ方法
  • 橋本商会 » serial-http-gateway作った

    シリアルポートをhttpで使えるツールを作った。 ブラウザでhttp://localhost:8783を開くとデータが読める。POSTでデータを送ると書き込める。 webブラウザでロボットを操作する部分がある、OB降臨システムというのを作っているのでその部品として作った。 githubに全部置いた。 shokai/serial-http-gatewayGitHub ■インストールと起動 git clone git://github.com/shokai/serial-http-gateway.git cd serial-http-gateway gem install serialport eventmachine eventmachine_httpserver json ArgsParser Arduino等をMacに接続すると/dev/tty.usb〜〜という名前になる。引数に渡

    hatayanorg
    hatayanorg 2011/02/07
    おっいいじゃん!!
  • 橋本商会 » ATmega168でピン変化割り込み

    ATmega88以降は全てのI/Oピンに「外部入力割り込み」が付いている。これは、それぞれのピンに電流がONになったり、OFFになったりするとイベントが起こるという事だ。 今まではmain()の中のループで各ピンをずっと監視し続けなければならなかったが、この外部入力ピンを使うと完全にイベントドリブンでプログラムを書ける様になる。ちなみにArduinoからは使えない機能です。 ■作った PB1につながったスイッチを押した時に割り込み(SIG_PIN_CHANGE0)が発生し、UARTでPCに通知する。PB0のLEDも光らせる。スイッチを離すとLEDを消し、UARTで通知する。 SourceCode, hex, Makefile(avr-gcc 3.4.6) ■外部入力割り込みの仕組み 2箇所設定する必要がある。 1.「ピン変化割り込みレジスタ」でピン変化割り込みを許可する 2.入力割り込みを

    橋本商会 » ATmega168でピン変化割り込み
  • 橋本商会 » mbedで取得したセンサーの値をsinatra+tokyocabinetで保存する

    まずセンサーのデータを時系列で溜めたり、取り出したりするためのwebサービスをsinatra+TokyoCabinetで作っておいた。 http://shokai.mag.keio.ac.jp/sensor-storage/ そこにmbedのADコンバータでCdSの明るさを計測、LEDを点灯/消灯 と mbedにEthernetを接続しtwitterにpostするを合体させ、約10秒間隔でセンサーの値をhttp-postしまくった。 一度web APIが出ている場所にマイコンの情報も保存しておけば、あとでマッシュアップできて便利になる。このAPIの下にmbedでもgreasemonkeyスクリプトでも何個でもぶら下げられる。 mbedからwedataに保存しても良かったんだけど、あえて自分で作ってみた。 ■mbedで明るさを計測してhttp-postする 作った回路。CdSで明るさを取得し

    橋本商会 » mbedで取得したセンサーの値をsinatra+tokyocabinetで保存する
  • 橋本商会 » mbed NXP LPC1768を買った

    rain_yukizoraが東京に来ていて、2人でスタバでmbedをいじったりした。 Basic StampやGainerのように、ブレッドボードに刺す事を前提にピンが裏に出ている。でもその時はブレッドボードを持ち歩いて無かったので、基板上のLEDとシリアル通信等を試した。ピンク色の物体は鞄の中でピンが折れないように基盤裏につけてる梱包材。 mbedはエディタとコンパイラがwebサービス側にあり、開発は全てwebブラウザ上で行う。そしてできたバイナリをダウンロードしてマイコンに書き込み、実行させるという謎の16bitマイコンボード。 開発言語はC++。どうやら高価な商用コンパイラとライブラリ群がサーバー側にあるらしい。 例えばHTTPClientのライブラリがあり、DNSなども解決してくれるのでtwitterに認証してtweetするとかが簡単にできたりする。40円ぐらいで売ってるEhter

    橋本商会 » mbed NXP LPC1768を買った
    hatayanorg
    hatayanorg 2010/03/14
    [for:@twitter]これアレにいいかも
  • 橋本商会» ブログアーカイブ » C# - FeliCaリーダでIDを読む

    あれば便利かもしれないが、無くても困らない製品 便利アイテムです 便利です。 飛行機に乗れなくてもマイルが貯まる edyを常用してる人ならお勧め felicalibをダウンロードしてくる。中にC#用ラッパー(FelicaLib.cs)も入っているので自分のプロジェクトに追加。 felicalib.dllは「参照の追加」から使うのではなく、bin/Debug, bin/Releaseなどにファイルを直接コピペして置く。実行時にFelicaLib.csからP/Invokeで読み込まれる。 ■コード ラッパーを読み込んで using FelicaLib; IDmを読むとbyte配列が来るので、Stringに直す。 try { using (Felica felica = new Felica()) { felica.Polling(0xFFFF); byte[] data = felica.ID

    橋本商会» ブログアーカイブ » C# - FeliCaリーダでIDを読む
  • 1