2012-01-01から1年間の記事一覧

ひずみゲージセンサ

お習字ロボにひずみゲージセンサを搭載することを検討。 今まで、お習字ロボはオープンループ制御だってので、わずかなセッティングの狂いや重力によるアームのたわみで字の太さが一定しないという問題があった。そこでひずみゲージを使用して筆圧をフィード…

ラジコンサーボの制御パルスの電圧について

今まで、マイコンでサーボを制御されている先例がたいてい5Vロジックだったので、なんとなくラジコンサーボの制御パルスは5Vっていう先入観を持っていました。だけど、ラジコン受信器の出力信号を測定したこちらのブログを拝見すると、実は本来のラジコン受…

シャアザクカメラのソフト

動画公開からだいぶ時間があいたけど、BB戦士のシャアザクにWiFiカメラとラジコンサーボを仕込んで、Android端末で操作&映像の表示する装置のソフトのソースを公開しました。 Androidアプリ 【ソース】 http://licheng.sakura.ne.jp/charzaku/CharZaku_Andr…

みょんうぉるの回路修正

サーボの電源系を修正。いくら小型のラジコンサーボとはいえ、出力1Aの3端子レギュレータでサーボ3個に給電するのは無理があったようで、しばしば電源が不安定になってサーボが暴れるということがあった。そもそもサーボの電源を安定化する必要はなく、ただ…

SAKURAボード

【リンクまとめ】 はじめよう ハード仕様 がじぇっとるねさす (上記から)Renesas Web Compiler SAKURAスケッチリファレンス RXマイコン用のArduino互換ライブラリ「RXduino」 Renesas Rulz/GR がじぇっとるねさす ゆーざー会 (現在移転工事中) SAKURAボード…

ライフハックとしての五戒

仏法には、五戒(Pañca sīla)という5つの戒があるぞな。ここでは倫理ではなくライフハックとしてこの5つの戒を保つことを勧めるぞな。そもそも戒律というものは人を縛るものではなく、むしろ人間の実力を解放するためのものぞな。不殺生戒 Pāṇātipātā veramaṇ…

C#のプロパティ

いまさらだけども、C#のプロパティについて。要するに、外見はメンバ変数、内実はメソッドということですね。C++やJavaにはない便利な文法です。getter/setterを変数に見せかける糖衣構文といったところでしょうか。 namespace PropertyTest { class Hoge { …

なんだかよく分からないstd::for_each

いまさらながら、C++のstd::vectorの使い方を調べるなど。動的配列ということは分かったし、イテレータの使い方も分かったけど、std::for_eachを使った回し方はなんかよく分からない。ここまでトリッキーなことをして、どういうご利益があるのかな? #includ…

VC++の関数のアドレス

C言語で、関数のアドレスはポインタとして取得できるはずだが、Visual C++の場合、それは実際にはスタブでそこからジャンプ命令で関数の本体のアドレスに飛ぶ。引数のある関数の場合、その引数のアドレスの前が戻り先のアドレスであるはずなので、下記のよう…

実行中のメソッドをログ(C#)

実行時にメソッド名やコールスタックなどのメタデータを取得する仕組みをreflectionと言うそうですが、C#だと、System.Reflectionクラスがその機能を提供してくれます。下記は実行中のメソッドを表示するサンプルプログラム。 using System; using System.Co…

default(Type)

C#は静的型づけの言語なので、varもあくまで型推論で静的な型が決定するものです。 var hoge = new Hoge(); hoge = new Piyo(); // ←エラーになる なので、varの宣言時にnullを代入しようとすると、型が推論できないのでエラーになります。そういうときはdef…

関数の乗っ取り

hoge() を piyo() で乗っ取る例。(Windows の VC++にて) #include <stdio.h> #include <windows.h> void hoge(void) { printf("hogehoge\n"); } unsigned int original_hoge; void piyo(void) { printf("piyopiyo\n"); // 本来のhogeを呼び出す ((void(*)())original_hoge)(); } </windows.h></stdio.h>…

疎行列

疎行列(ほとんどの要素がゼロであるスカスカな行列)は、2次元配列で実装するとメモリの無駄遣いになるので、サイズが大きいなら連想配列で実装したほうが良い。C++でのやっつけな実装例。 #include<stdio.h> #include<map> // 疎行列 class SparseMatrix { public: typed</map></stdio.h>…

Visual Studioのショートカットキー

φ( ̄ー ̄ )めもめも検索結果にジャンプ「すべての参照の検索」の検索結果ウィンドウで F8 / Shift+F8カッコ間の移動Ctrl+]コメントアウトとコメントアウト解除Ctrl+K, C でコメントアウト、Ctrl+K, U でコメントアウト解除ブレークポイントF9で設定/解除、Ct…

C言語のデバッグ小技

assert( )とNDEBUGassert.h にあるマクロ。assert( 条件式 ) で、条件が偽なら標準エラー出力にメッセージを表示してプログラムを終了させる。#include より前に、#define NDEBUG すると無効になる。strerror( )C言語のデバッグ小技。 #include char *strerr…

シャアザクにカメラ

BB戦士のシャアザクにWiFiカメラとラジコンサーボを仕込んで、Android端末で操作&映像の表示をしてみた。 シャアザクカメラ

茶運び人形ロボのGR-SAKURAプログラム Ver.2

以前公開した茶運び人形ロボのGR-SAKURAプログラムを更新しました。シリアル接続からUSBアダプタへ従来は、Bluetooth通信に浅草ギ研のBlueMasterを使用していました。BlueMasterはシリアル接続のモジュールなので簡単に使えて便利なのですが、次のような問題…

ヴィンランド・サガ

幸村誠『ヴィンランド・サガ』ひさしぶりに読み返したが、おもしれー。自分がいちばん共感をおぼえるのはクヌートだけど、特にクヌートが悟りを開くところは圧巻と言っていい。悟りを開く前の萌えキャラのクヌートたんも好きだけど。C.D.A.のハニャーン様と…

お習字ロボットアームの動画

動画をうpした。

DOSでwhichコマンド

DOSにはUNIX系のwhichに相当するコマンドがないのがいかにも不便。バッチでwhichコマンドを作る記事を見つけた。 whichコマンドを作る http://www.atmarkit.co.jp/fwin2k/win2ktips/319which/which.html 下の2行を which.bat として保存し、PATHの通っている…

GR-SAKURAのローカルビルド環境

GR-SAKURAは、Web上のクラウド環境で開発できるのが特長の一つですが、やはりローカル環境でもビルドしたいというがの人情(?)です。たしかにクラウド環境での開発は、開発環境の導入が不要というお手軽さがあって初心者に最初の敷居を下げる効果は大きいです…

お習字ロボットアームのAndroidアプリ

img.screenshot { border: 2px #000000 solid; } 【ソース】 http://licheng.sakura.ne.jp/roboarm/RobotArm_Android.zip お習字ロボットアームアプリは、microbridgeのServoControlというデモアプリをベースに作成しました。ServoControlは、microbridgeのW…

ソースレビューのポイント

○コメント 意味不明なコメント、不適切なコメントが書かれていないか? 保守性の悪い体裁のコメントでないか? ドキュメント生成用コメントを書くならもれなく書かれているか? ○変数/関数 変数/関数の命名が適切か? 変数の型は適切か? 混同するような名前…

お習字ロボットアームのArduinoスケッチ

【ソース】 http://licheng.sakura.ne.jp/roboarm/RoboArm_Arduino.zip お習字ロボットアーム、サーボの制御を Servo::write(角度[deg]) から Servo::writeMicroseconds(パルス幅[us])に変更して精度がアップ。まだ、角度補正のチューニングが必要だけど、い…

お習字ロボットアームの逆キネ

スマホの画面に指で書いた字をロボットアームが筆ペンで書く、お習字ロボットアーム。その制御のキモである逆キネについて解説。といっても、サーボのトルクが十分大きく、十分ゆっくり筆を動かすという前提で速度・加速度については考慮しません。(ベクト…

ArduinoのServoクラスについてメモ

ArduinoのServoクラスのwriteメソッドで角度[deg]をパラメータに指定するけど、パルス幅と角度の関係は、サーボの品種によってじゃっかん異なるはず。まあ、概ね 1500usがニュートラル(90°)で、500usが0°、2500usが180°くらいではあるけど。 そこらを正確に…

茶運び人形の回路

【回路図】 PDF: http://licheng.sakura.ne.jp/myeongwol/MyeongWol_rev3.pdf BSchデータ: http://licheng.sakura.ne.jp/myeongwol/MyeongWol_rev3.CE3 http://licheng.sakura.ne.jp/myeongwol/IC.LB3 (部品ライブラリ) たいした回路ではないけど、いちおう…

茶運び人形ロボのGR-SAKURAプログラム

【ソース】 http://licheng.sakura.ne.jp/myeongwol/MyeongWol_Sakura.zip GR-SAKURAのクラウドWebコンパイラ用ソース。 (Sketch Template Version 1.01への追加分のみ) (1) gr_sketch.cpp これがメインのソース。 ラジコンサーボの制御にはGR-SAKURAのライ…

茶運び人形ロボのAndroidアプリ

【ソース一式】 http://licheng.sakura.ne.jp/myeongwol/MyeongWol_Android.zip 【スクリーンショット】 操作方法については説明の必要もないでしょう。実際動いてる様子は動作を見てください。 このアプリは、Android SDKに含まれるBluetoothChatを改造して…

茶運び人形ロボのソースなど

茶運び人形ロボ「R・みょんうぉる」のAndroidアプリ、マイコンプログラム、回路図を公開。 (1) Androidアプリのソース http://licheng.sakura.ne.jp/myeongwol/MyeongWol_Android.zip Galaxy Nexus (Android 4.0.4)で動作確認。 レイアウトいい加減なので、…