mbedエディタの対応する括弧を強調する機能を追加

始まりはこのツイート


うむ、やってみるか。なんとか出来そうな気がしたので作ってみた。だいたい2日ぐらいで完成

そんなわけで、できました! mbedEditorFontChanger ver0.4


mbedエディタに対応する括弧を強調表示する機能を追加しました。
Chromeの機能で自動アップデートされるはずですが、うまくアップデートされない場合は再インストールしてください。

ダウンロード : mbedEditor++
コメントの内の括弧を選択したときにコメントの色が黒になってしまうバグがありますが、スクロールでもとの色に戻るので大きな影響はないと思います。

強調する色を何色にしていいかわからなかったので私の独断で#9eff9dになっています。リクエストがあれば変更します

括弧を強調表示する機能を追加したら一気にコードが大きく、そして汚くなってしまった。バグはコード公開するから誰か直して(オイ

5/17
コメントの色が黒になるバグを修正。
名前を変更 mbedEditorFontChanger -> mbedEditor++

hobbykingからサーボモータ届いた

できるだけ安くサーボを入手しようとしてhobbykingからサーボモーターを注文。hobbykingは安いので送料込みでも日本のショップで買うより安くなることがある。
注文したのはTowerproのMG996R*12とMG958*10とその他小物で$304.44 日本円で\26310でした。海外からの発送なので送料が$25とちょっと高め。3月22日に注文。3月25日に発送。3月28日に到着しました。注文から届くまで6日でした。

届いたもの


気になったところは、サーボの延長ケーブル。

切れてるじゃん。まあ端っこだからいいけど。

とりあえず分解


左がMG958 右がMG996R

MG958の内部。外れやすい箇所は接着剤で固定されています。
さて、買ってしまったからもう後戻りできない。もう作るしかないな。まずサーボの採寸してそれから設計だ

mbedエディタのフォントを変更するブックマークレットとchrome拡張機能

前回の記事でmbedエディタのフォントを変更する方法を書きましたが、毎回デベロッパーツールから変更するのは面倒なので、簡単に変更できるようにブックマークレットchrome拡張機能を作ってみました。ブックマークレットchromeだけじゃなくFirefoxSafariなどにも対応しています。

ブックマークレット

javascript:(function(){
var font = "Courier New"; /*フォント名を指定*/
var font_size = "13px"; /*フォントサイズを指定*/
var styleElem = document.createElement("style");
styleElem.appendChild( document.createTextNode(".editor_cursor, .editor_line, .editor_line_test, .editor_number{font-family:'" + font + "',Courier,monospace;font-size:" + font_size + ";}") );
document.head.appendChild( styleElem );})()

このコードをブックマークのURLとしてブックマークします。mbedエディタを開いた状態でブックマークをクリックすればフォントが変更されます。

Chrome拡張機能


このchrome拡張機能を使えばフォントやサイズの変更が簡単にできます。設定したフォントやフォントサイズは自動的に保存されるのでいちいち設定する必要はありません。
ダウンロード : mbedEditorFontChanger
インストールルした状態でmbedエディタを開くとアドレスバーの右側にアイコンが表示されるのでそこからフォントを変更してください。

もしバグがあったら@_stroboまでお願いします

追記:3/31に対応する括弧を強調する機能を追加しました。ダウンロード先のリンクも最新版に差し替えてありますので、そのままダウンロードすれば最新版を利用できます

mbedエディタのフォントがあまり気に入らない件

ちょっと前まで目眩がひどくて生きた心地がしてなかったすとろぼです。今になってやっと体調が回復してきたので活動再開
さて前々からmbedのエディタのフォントが気に入らなかったのでこんな方法でフォントを変更してみました。※Chrome限定だけどsafariでもできるはず
Chromeのメニューからデベロッパーツールを表示。Elementsタブでhtmlソースを表示して

html > body > table#aboutedit > tbody > tr > td.EDITOR_SCREEN > div#abouttedit_text > div.EDITOR_LINE

まで辿っていき右側のStylesのfont-familyの値を任意のフォントに変更してやる

自分はOsaka−等幅に変更。font-sizeも12ptから13ptに変更

Osakaフォントで読みやすさ10倍(当社比)のmbedエディタ
いちいち変更するのが面倒なので自動でフォント変えてくれるように、これをChrome拡張機能として組み込みたいんだけど、なかなかうまくいかず苦戦しているところ

追記:フォントを変更するChrome拡張機能とブックマークレットを公開しました

二足歩行ロボットの足だけをつくってみる

設計を初めてから3ヶ月ぐらいかかってようやく完成。

まあロボットつくろうと思った時から数えると5年ぐらいかな、ようやく一段落付いた感じ
メカ。エレキ。ソフト。全部の知識が必要で手間と時間とお金がかかる。でも楽しいから別にいいんだけどね
デザインとかは無視して作ることだけを考えて作ったのであまりカッコよくないですが。初めて作った割にはまあいい方なんじゃないかなと思ってる。

メカ

本体はどちらが扱いやすいかの評価も兼ねてアルミとアクリルを使っている。
アクリルは曲げ加工の時溶けるので寸法が狂ってしまってあまり精度が出ないのが欠点。自分の加工技術が足りないだけかもしれないけど。
アルミは弓鋸で切断したが正直しんどい・・・
サーボはネットで手に入れた1個¥700の安物。もう2個壊してストックが無く、さらに型番不明で入手もできないので、このメカの開発は終了になるかな

エレキ

コントローラは秋月で入手したR8C29を使ったシンプルな物。特に特徴はない。
サーボに送るパルスの周期は早い方がトルクが上がるとネットに書いてあったので周期を4msにした。するとサーボがプルプル発振してうまく動いてくれなかった。普通サーボに送るパルスの周期は10ms〜15msだ。4msでは早すぎたらしい。10msに設定してサーボの発振はほぼ無くなった

ソフト

R8Cのソフトは、SISOさんのTiny Servo Controller 16をベースに自分なりに手を加えた物。SISOさんに感謝
PCのソフトはほぼ1から作成したちょっと変わった物。webからでも操作できるようになっている。まだまだUIの出来が悪いのでここは何とかしたいなあ。

通信はwebsocketサーバーを立ててサーバー経由でR8Cとシリアル通信をしている。

webブラウザ <-> websocketサーバー <-> シリアルポート <-> R8C

websocketサーバー自体はem-websocketを使ってrubyで書かれています。

かなりやっつけな部分もあるけどロボの形が出来て、動くところまでいったので一応満足。
ちゃんとした二足歩行ロボットををつくるかはまだ決めてない。もっとサーボモータを買わないといけないし。設計もやり直しになっちゃう。あと時間も必要。

さて、これからどうしようかな

mbedとRJ45ジャックをつなぐ

スイッチサイエンスさんで買ったイーサネット用RJ45ジャック(トランス入り)RJ45ピッチ変換基板を使ってmbedでethernet通信をしようとしていた。

RJ45ジャックのピンアサインがわからない?

スイッチサイエンスさんのRJ-45ジャックは秋月で売っているRJ-45ジャックとは少し違う物のようで、型番も分からずピンアサインも分からなかった。
で、いろいろ調べたらmbedのサイトにピンアサインが書いてあった

Ethernet RJ45

このページの一番下の図がスイッチサイエンスさんで取り扱っているRJ45ジャックのようです
これでRJ45ジャックのピンアサインがわかりました

mbedとつなぐ

+-----------+
|           |
|   mbed    |
|           |
|        RD-*--------+
|        RD+*------+ |
|        TD-*----+ | |
|        TD+*--+ | | |
|           |  | | | |
~~~~省略~~~~~  | | | |
               | | | |
+-----------+  | | | |
|        TD+*--+ | | |
|        TD-*----+ | |
|   RJ-45   *-NC   | |
|           *-NC   | |
|           *-NC   | |
|           *-NC   | |
|        RD+*------+ |
|        RD-*--------+
+-----------+

mbedとRJ45変換基板とはこのように接続
あとはmbedのサイトにあるhttpサーバーのサンプルを書きこむだけでmbedがhttpサーバーになっちゃいました。ホント簡単ですねmbed

mbedを使ってみた

何かと話題のmbedをいまさらながら買ってみた
これひとつでI2C,SPI,USB,Ethernet,A/D,D/A,PWMやらが使えるすごいやつ

早速サインアップしてHelloWorld_LPC1768.binをダウンロード。mbedドライブにコピー後
mbedのリセットスイッチを押せばmbedのLEDが点滅する。簡単!

早速wiiヌンチャクと接続してみる

wiiヌンチャクのデータを読めるライブラリ*1があったのでこれでwiiヌンチャクのデータをPCに表示するコードを書いてみた。
こんな感じでmbedと接続して

コード書いて

#include "mbed.h"
#include "WiiNunchuck.h"

Serial pc(USBTX, USBRX); // tx, rx
WiiNunchuck wii(p9, p10);

int main() {
    pc.printf("WiiNunchuck Test\n");
    
    while(1) {
        char jx = wii.joyx();
        char jy = wii.joyy();
        int ax = wii.accx();
        int ay = wii.accy();
        int az = wii.accz();
        
        printf("joy(%d,%d) accel(%d,%d,%d)", jx, jy, ax, ay, az);
        if( wii.buttonc() ) {
            printf(" C:true");
        }else{
            printf(" C:false");
        }
        if( wii.buttonz() ) {
            printf(" Z:true\n");
        }else{
            printf(" Z:false\n");
        }
        wait_ms(50);
    }
}

するとコンソールにヌンチャクの状態が表示される

joy(135,123) accel(677,523,513) C:false Z:false

初mbedプログラミングなのでエラーでるだろうなと思っていたら一発で動いてびっくり。mbed恐るべし

mbedドライブについて

mbedはバイナリの書き込み方法がちょっと特殊。そしていろいろ操作してたらtouchコマンドでバイナリの切り替えが出来ることを発見しtwitterでつぶやく。


とつぶやいたら結構RTされてたので。意外と知られていないことなのかなと思い一応メモ

*1:http://mbed.org/users/knaka/libraries/WiiNunchuck/ljkynp/docs/