« 2013年6月 | トップページ | 2013年9月 »

2013年7月25日 (木)

mbedオンラインコンパイラの新機能

先日、mbedサイトの新コンテンツを紹介しましたが、こんどはオンラインコンパイラに新機能が加わりました。

https://mbed.org/blog/entry/New-Editor-features-now-in-beta/

オンラインコンパイラのエディタ上で、Windowsの場合は「Ctrl」、Macの場合は「command」を押しながら変数や関数、数値等をクリックすると、その定義場所や型、引数などを表示してくれる機能です。

これもまだベータモードでの提供となっています。

ベータモードへの変更は以下から

http://mbed.org/betamode/

以下、実際にこの機能で表示させた情報です。

クラス定義を表示させたところ
Class

LED1の定義
Led1
(これを見るとmbedの新しいボードのネタバレもw)

関数
Func

変数
A

数値
Value

これは結構便利ですね。
ライブラリを組み込んだ場合もヘッダやドキュメントを確認しなくてもメソッドの引数や戻り値の型を確認することが出来ます。

ちなみにmbedサイトの機能として、ソースコードのコメントをDoxygen形式で書いて、パブリッシュするとコメントから自動的にドキュメントが作成されるのはご存知でしょうか。

例えば、次の様にクラスを定義すると

/* mbed Zumo motor control Library
 * Copyright (c) 2010-2013 jksoft
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
 
#ifndef ZUMOCONTROL_H
#define ZUMOCONTROL_H
 
#include "mbed.h"
 
#define PERIOD            100.0f     // Hz
#define MINPULSWIDTH     1000.0f    // us
 
/** Zumo motor control class
 *
 * Example:
 * @code
 * // Drive the Zumo forward, turn left, back, turn right, at half speed for half a second
 
   #include "mbed.h"
   #include "ZumoControl.h"
 
   ZumoControl zumo_ctrl;
 
   int main() {
 
     wait(0.5);
 
     zumo_ctrl.forward(0.5);
     wait (0.5);
     zumo_ctrl.left(0.5);
     wait (0.5);
     zumo_ctrl.backward(0.5);
     wait (0.5);
     zumo_ctrl.right(0.5);
     wait (0.5);
 
     zumo_ctrl.stop();
 
 }
 * @endcode
 */
class ZumoControl {
 
    // Public functions
public:
 
    /** Create the Zumo object connected to the default pins
     *
     * @param rc GPIO pin used for Right motor control. Default is PTC9
     * @param rp GPIO pin used for Right motor PWM. Default is PTD5
     * @param lc GPIO pin used for Left motor control. Default is PTA13
     * @param lp GPIO pin used for Left motor PWM. Default is PTD0
     */
    ZumoControl();
 
 
    /** Create the Zumo object connected to specific pins
     *
     */
    ZumoControl(PinName rc,PinName rp,PinName lc,PinName lp);
 
    /** Directly control the speed and direction of the left motor
     *
     * @param speed A normalised number -1.0 - 1.0 represents the full range.
     */
    void left_motor (float speed);
 
    /** Directly control the speed and direction of the right motor
     *
     * @param speed A normalised number -1.0 - 1.0 represents the full range.
     */
    void right_motor (float speed);
 
    /** Drive both motors forward as the same speed
     *
     * @param speed A normalised number 0 - 1.0 represents the full range.
     */
    void forward (float speed);
 
    /** Drive both motors backward as the same speed
     *
     * @param speed A normalised number 0 - 1.0 represents the full range.
     */
    void backward (float speed);
 
    /** Drive left motor backwards and right motor forwards at the same speed to turn on the spot
     *
     * @param speed A normalised number 0 - 1.0 represents the full range.
     */
    void left (float speed);
 
    /** Drive left motor forward and right motor backwards at the same speed to turn on the spot
     * @param speed A normalised number 0 - 1.0 represents the full range.
     */
    void right (float speed);
 
    /** Stop both motors
     *
     */
    void stop (void);
 
 
private :
    
    void cycle(void);
 
    DigitalOut _rc;
    DigitalOut _rp;
    DigitalOut _lc;
    DigitalOut _lp;
    
    int pwm_set_r,pwm_set_l;
    int pwm_count,pwm_count_max;
    int value_r,value_l;
    
    Ticker _pwm;
};
 
#endif
//-----------------------------------

この様にドキュメント化されます。
https://mbed.org/users/jksoft_mbed/code/ZumoControl/docs/da217aaa04ef/classZumoControl.html


まだまだ進化するmbedサイト、今後の動向も楽しみです。

【告知】
今年3回目となるmbed祭りを開催します。
しかも3箇所で連日開催!
初めての方も毎回参加して頂いてる方もぜひぜひ。
参加登録は以下のページからお願いします。

[9/14 名古屋]mbed祭り in Nagoya 
[9/15 横浜]mbed祭り in Yokohama
[9/16 札幌]mbed祭り in Sapporo

| | コメント (0) | トラックバック (0)

2013年7月18日 (木)

mbedサイトの新コンテンツ「Components」

まだベータモードのみですが、正式機能としてリリースされました。
mbed.org
にComponents(コンポーネント)のコンテンツが加わりました。
01

このコンテンツは今のところユーザーアカウントをベータモードに移行しないと見れません。
ベータモードへの移行は以下のURLから行なって下さい。

https://mbed.org/betamode/

いつでも戻せるので、気軽に移行して大丈夫です。

Componentsは部品やモジュールなどのアイテムごとにサンプルやライブラリ、説明が閲覧できるようになっています。
02

従来のコンテンツにもCookbookがありましたが、数がどんどん増えてちょっと見にくくなっています。

Componentsはカテゴリのみのリストがサイドに表示され、選ぶとカテゴリに属しているアイテムが表示されます。
しかも絵付きで見やすく表示されるようになってます。
03

アイテムにはサンプルプログラム、ライブラリ、接続図、説明などが掲載されています。
04

また、Componentsのアイテムはユーザが追加することも可能です。
05
定形のフォームがあるので、notebookを書くよりも手軽に公開できる且つ閲覧もしやすいです。

この機能は自分的にかなりヒットです。
まだベータモードで公開されたばかりなのでアイテムは少ないですが、この記事を書いている最中も増えて言ってるので、すぐに充実してくると思います。

【告知】

今年3回目となるmbed祭りを開催します。
しかも3箇所で連日開催!

初めての方も毎回参加して頂いてる方もぜひぜひ。
参加登録は以下のページからお願いします。
[9/14 名古屋]mbed祭り in Nagoya 
[9/15 横浜]mbed祭り in Yokohama
[9/16 札幌]mbed祭り in Sapporo

| | コメント (0) | トラックバック (0)

2013年7月 6日 (土)

Zumoロボットキット組み立て

PololuのロボットキットZumoスイッチサイエンスで取り扱いが始まったので購入してみました。

完成品もありますが、購入したのはバラバラのパーツです。
01
専用の基板はピンヘッダやスイッチ等数カ所ハンダ付けするのみです。
02
電池ボックス兼シャーシ
03
起動輪と遊動輪と履帯
04
紙の説明書は無く、おそらくWebに組み立て方が載ってると思います。
ちょっと複雑ですが、とりあえず完成写真だけ見て組み立て。
電池ボックスの端子をはめ込む。
05
最終端のこれは付かなかったので、基板に直接ハンダ付けかと。
06
モーターの配線はこれかな〜。
07
モータにハンダ付け。
08
電池ボックス兼シャーシにはめ込む
09
シャーシキットに付属している板を、保護紙を剥がしてから載せる
10 11
さらに基板に付属している2枚の板を載せる。(こっちも保護紙を剥がす)
この板は基板のハンダ付けした位置と板に空いている穴が合う様に合わせる。
12 13
基板を載せて、モータからの配線をハンダ付け
14
電池ボックスの最終端を
基板側に出っ張りが出るように取り付けて、にハンダ付けする
15 16

遊動輪をネジ付きのシャフトでシャーシに取り付けます。
001002
003

起動輪をモータの出力軸に、遊動輪をネジ付きのシャフトで取り付けて
履帯を取り付ければ完成!
19
Arduino用のキットですが、ピン互換の黒mbed( FRDM KL-25Z )を
載せました。
17
どうやら海外にはこのサイズの相撲ロボット競技があるらしく、
その規格に準じてる様です。
手持ちの3Kg級の相撲ロボットと並べてみました。
18
走らせてみるとこんな感じです。(意外と早い)



Zumo用のフォトリフレクタアレイも購入したので、とりあえず
ライントレーサでも作ってみようかと思います。
後々は自立型の相撲ロボットとして動かしてみようかと思っています。

スイッチサイエンスでうおーるぼっとの取り扱いが始まりました。

うおーるぼっとR4キット

こちらもよろしくお願いします。


| | コメント (0) | トラックバック (0)

« 2013年6月 | トップページ | 2013年9月 »