hard

YANEU LEGO WORKS

NXTで作る自動ページめくりブックスキャナが完成しそうだったから、いっちょ設計図つきで動画を公開したろかい!と思って私がLEGOの記事を書くための専用のサブドメインを用意して、以下のように作りかけていたんだ。 YANEU LEGO WORKS http://lego.yaneu.co…

マインドストームNXTで作る自動ページめくりブックスキャナ(17)

NXT LOGというNXTの作品の記事を投稿する公式blogがある。 NXT LOG http://mindstorms.lego.com/NXTLOG/default.aspx 2008年1月18日現在4473個の作品が掲載されている。ここで他の人の作品から多くのことを学べる。 NXT LOGは毎日少しずつ見させてもらってい…

マインドストームNXTで作る自動ページめくりブックスキャナ(16)

そんなわけでセロテープで十分紙が吸着し、ページを持ちあげられることがわかったので、セロテープ型のページ持ち上げ部を作ってみた。(今日の写真) ローラー(レゴのタイヤ)にセロテープを巻きつけておく。ローラーにつけるのは、アームがあがったときにロー…

マインドストームNXTで作る自動ページめくりブックスキャナ(15)

なんか、それっぽいのが完成しそうなので、気を良くして、いっちょ、設計図でも描いたろかい!と思って、参考にするため「手作り全自動ブックスキャナ 」*1のページを見ると、そのトップページに「The Evolution of Auto Book Scanner」というのが追加されて…

マインドストームNXTで作る自動ページめくりブックスキャナ(14)

この手のブロック玩具によくあることだが、いくつかの理由により、レゴのブロックも直方体ではない。*1 レゴは、1/8インチを基準とする単位を用いている。 今回では1/8インチという単位を省略して書く。 1ポッチ*2は、2.5である。1ブロックの高さは3である。…

マインドストームNXTで作る自動ページめくりブックスキャナ(13)

blog上には長々と書いたが、実際は、NXTを開封した日と次の日でC#で制御できないか調べて、3日目には「マインドストームNXTで作る自動ページめくりブックスキャナ」自体はここまでは出来ている。 私が凄いのではなくて、レゴのテクニックパーツやNXTが凄いか…

マインドストームNXTで作る自動ページめくりブックスキャナ(12)

(昨日の続き) もう一つのユニットはページ持ち上げユニットである。 ページめくりユニットによって軽くめくられたページの軽く浮いた部分にフックのようなものをひっかける。そのあとページめくりユニットのパネルをどかし、ページ持ち上げユニットにページ…

マインドストームNXTで作る自動ページめくりブックスキャナ(11)

この「自動ページめくりブックスキャナ」は、2つのユニットにより構成される。 ひとつはページめくりユニットであり、これはタイヤがごろごろまわってページをめくる。右の写真。 写真の左のモーターがまわり、パネルが回転して倒れてきて、右のモーターがタ…

マインドストームNXTで作る自動ページめくりブックスキャナ(10)

ギアを組み合わるために、0.25の整数倍ポッチの距離が必要なことがわかった。 私が用いている一覧表を以下に掲載しておく。昨日書いたベントアームは便宜上122度と表記しておく。 ここでは、θ度ベントしているベント中心からのそれぞれの点への距離がa,b(単…

マインドストームNXTで作る自動ページめくりブックスキャナ(9)

ギアが思ったように組み合わさらない。おかしいなと思って詳しく調べてみた。 ギアの半径が、ポッチ(普通のレゴブロックの隣り合うポッチ間の距離を1ポッチとする単位)の整数倍 + 0.5 になっていれば、二つのギアを組み合わせたときに必ずポッチの整数倍にな…

マインドストームNXTで作る自動ページめくりブックスキャナ(8)

以前、レゴでブロックスキャナを作った人*1に、「レゴだけで作れてないじゃん」などとヤジを飛ばす人がいた。御本人は、「レゴだけで」なんてことは一言も言っていないのに、「レゴで作った」という言葉が一人歩きした結果、不当な批判を浴びせられたわけだ…

マインドストームNXTで作る自動ページめくりブックスキャナ(7)

基本サイズのブロックでページめくり部を組み立てていたのだが、ブロックで組み立てるとどうしても大掛かりになって、重たくなるし、重くなってくると途中のブロックが抜け落ちてきたりして強度を持たせるために頭を悩ませないといけなくなる。 レゴはいくつ…

マインドストームNXTで作る自動ページめくりブックスキャナ(6)

ページをめくる部分が悩ましい。リコー製のページめくりコピー機で静電気で吸着させるようなものがあったが*1、そんなものはレゴではどうしようもないと思うので、レゴ部品を用いるならゴムローラーぐらいしか選択肢がない。 ページめくりに使うゴムローラー…

マインドストームNXTで作る自動ページめくりブックスキャナ(5)

■ テクニック系のパーツについて 基本サイズの部品も、普通はポッチが上についていて、積み重ねることしか出来ない。横方向にジョイントしたりモーターの軸に接続したい場合などは、テクニック系の部品が必要になる。(右図) テクニック系の部品は通常テクニ…

マインドストームNXTで作る自動ページめくりブックスキャナ(4)

■ レゴの部品番号について レゴ部品にはそれぞれに部品番号が振られている。セットにも同じく番号が振られている。例えば、基本パーツを集めた赤バケツならば、#7336であり、レゴの情報サイト Peeron LEGO http://peeron.com/ で 7336 と入力して検索すると…

マインドストームNXTで作る自動ページめくりブックスキャナ(3)

■ 普通サイズの部品とデュプロについて 基本セットは、赤と青のバケツがある。緑のバケツは、デュプロ(duploはduplexからか?)と呼ばれる2倍サイズのブロックが詰まっている。要注意である。私はid:yaneurao:20080114に引き続き、また気が付かずにデュプロを…

マインドストームNXTで作る自動ページめくりブックスキャナ(2)

■ デジカメで本が撮影できるのか 以前、アングル棚を分解して、それを材料にして撮影スタンドを作り、デジカメを固定して本を撮影していた。文字を読むには十分な解像度で撮影できることがわかっている。 しかし現在市販されているほとんどのデジカメは枚数…

おねーちゅんのパンツ逆さ撮りマシン(2)

画質も音声もそれほど悪くない。GV-MVP/TZを通してみているせいか、2秒ぐらいのラグがある。その代り、GV-MVP/TZで動画をリアルタイムに撮影できる。これで決定的瞬間も逃さない。 ワイヤレスカメラの受信装置は結構熱くなる。長時間稼働をさせるつもりなら…

おねーちゅんのパンツ逆さ撮りマシン(1)

昨日のコメント欄より。 とくぼー 2008/01/08 11:34 おねーちゅんのパンツ逆さ撮りマシンはもちろん実用的 まで読んだ 実用的かどうかを試すために15分ほどで作ってみた。(右の写真) 先端のアームが上下するのでスカートをめくることも出来る。 ワイヤレスカ…

マインドストームNXTで作る自動ページめくりブックスキャナ(1)

そんなわけで、今月だけでマインドストームNXTの玩具用と教育用基本セット、拡張セット、書籍、オプションパーツetc..で既に15万ぐらい費やしているのだが、これだけ使って、作るのだからおねーちゅんのパンツ逆さ撮りマシンもちろん実用的なものでなければ…

NXTプログラミング(10)

今回でNXTプログラミングの最終回の予定である。 マルチスレッドに慣れていない人向けのアドバイス。 SendMessage/LSRead/LSWriteなど、通信はすべてblockingされうる。Bluetooth経由で秒間30回の往復のやりとりが出来るということは、片道1/60秒程度ではあ…

NXTプログラミング(9)

超音波センサーの値の取得は難しい。超音波センサーがI2Cで接続されているデジタルセンサーだからである。グレーブックでもこの部分の解説がはしょられている。(→id:yaneurao:20080113) で、こういうFAQ的な質問は必ず誰かがどこかでしているわけで、以下の…

NXTプログラミング(8)

今回は、各センサーの値の取得。 まず、アナログセンサーに関しては、以下のようにすれば、そのセンサーの値が入力できる。 // ポート1に接続されている場合 NxtGetInputValues r = nc.GetInputValues(NxtSensorPort.Port1);あとは、この戻り値の r.RawADで…

NXTプログラミング(7)

■ モーターの同期制御 次にモーターの同期制御のテスト。同期制御は、2つの出力ポートに対して、NxtMotorRegulationMode.MotorSynchronizationを指定してモーターを動かすと実行される。2つ目のSetOutputStateをNXTが受信するまで1つ目のモーターも回らない…

NXTプログラミング(6)

■ tachoLimitを指定する実験 tachoLimit(回転させたい角度)に100を指定してモーターを回した場合、100ほど回ったあとに止まりはじめるので、200ぐらい回る。そのあと再度モーターをtachoLimitに100を指定して回すとtachoCountはすでに本来回すべき位置(100+1…

NXTプログラミング(5)

モーターを出来る限り正確に制御したいので詳しくテストしていく。 まず、モーターの状態は、COMポートをopenしたあと、NxtCommunicator.GetOutputStateで取得できる。 try { NxtGetOutputState s = nc.GetOutputState(NxtMotorPort.PortB); label5.Text = s…

レゴ エクスプロア デュプロ 基本ブロックパック 2242

「レゴ 基本ブロックパック500個入り 4780」(→id:yaneurao:20080105)に続いて、ブロックを増やそうと「レゴ エクスプロア デュプロ 基本ブロックパック 2242」を買ってみた。 アマゾンの写真ではわからなかったが、通常のブロックの2倍サイズ!(右の写真の右…

NXTプログラミング(4)

次にモーターの制御である。こいつが思ったより難しい。 NxtCommunicatorのメソッドであるSetOutputStateを用いれば nc.SetOutputState( NxtMotorPort.PortA, // 出力ポート (sbyte)power, // 出力パワー(0〜100) NxtMotorMode.MotorOn | NxtMotorMode.Brake…

NXTプログラミング(3)

NxtCommunicator.cs*1を用いて開発していくことにする。 まずは、Helloを再生から。 NxtCommunicator nc = = new NxtCommunicator("COM3"); // portは自分の環境に合わせて変更すべし。 nc.Connect(); nc.PlaySoundFile("hello.rso");っと、これで再生されれ…

NXTプログラミング(2)

プログラムは簡単だ。Bluetoothの接続設定を行なえば(手順→NXTをBluetooth経由で接続する方法)あとは、仮想的にCOMポートとみなせるから、そのCOMポートをopenしてコマンドをsendで送ってやるだけである。終了するときはcloseを忘れずに。 コマンド表は、以…