ログイン TOPに戻る
最近はまっているのが、室内用の超小型ヘリコプター「ハニービー(HoneyBee)」
めちゃめちゃ安定してよく飛びます。

こいつは、電波ではなくて、なんと赤外線で操作できるようになっています。
と言うことは、携帯電話(iアプリ)でも操作できるかも?
と思ってやってみたら、やっぱり動きました。
とりあえず、メインローターが回るようになっただけだけど、
インターフェースをちゃんと作って、携帯電話で操作できたら面白いね。

参考にさせてもらったのは、
インドアプレーンとロボット
と、
[doja]iアプリで赤外線リモコン信号を送信



以下とりあえずのソースコード。
まだ、メインローターが回るだけです。

import com.nttdocomo.device.IrRemoteControl;
import com.nttdocomo.device.IrRemoteControlFrame;
import com.nttdocomo.ui.*;
import java.io.ByteArrayOutputStream;

public class HoneyBee extends IApplication {

    int freq = 38; // KHz
    int base = 500; // usec
    boolean status = false;

    IrRemoteControl irc;

    public void start() {
        irc = IrRemoteControl.getIrRemoteControl();
        //byte[] datas = new byte[3];

        String source = "001101111000000000100000";

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        for(int i = 0; i < source.length(); i += 8){
            int b = Integer.parseInt(source.substring(i, i + 8), 2);
            baos.write(b);
        }
        byte[] datas = baos.toByteArray();

        try {
            Dialog dia = new Dialog(Dialog.BUTTON_OK, "IRリモコンテスト");
            dia.setText("送信します\n");
            dia.show();
            /*
            datas[0] = (Byte)Integer.parseInt("00110111", 2);   
            datas[1] = Byte.parseByte("010000000", 2);   
            datas[2] = 3;
            datas[3] = 4;
            datas[4] = 5;
            datas[5] = 6;*/
           
            send(datas);
            Thread.sleep(10000);

            dia.setText("送信しました\n");
            dia.show();
            this.terminate();

        } catch (Exception e) {

        }

    }

    public void send(byte[] data) {
        irc.setCarrier(10000 / freq / 2, 10000 / freq / 2);
        irc.setCode0(IrRemoteControl.PATTERN_HL, base * 1, base * 1);
        irc.setCode1(IrRemoteControl.PATTERN_HL, base * 2, base * 1);

        IrRemoteControlFrame[] ircf = new IrRemoteControlFrame[1];
        IrRemoteControlFrame frame = new IrRemoteControlFrame();
        frame.setFrameData(data, data.length * 8);
        frame.setStartHighDuration(0);
        frame.setStartLowDuration(0);
        frame.setStopHighDuration(0);
        frame.setFrameDuration(data.length * 8 * base * 4 / 100 + 60 + 85);
        frame.setRepeatCount(IrRemoteControlFrame.COUNT_INFINITE);
        ircf[0] = frame;
        irc.send(1, ircf);
        status = true;
    }
}
コメントの一覧
とき さん 11/24 22:01
それに情熱をかたむけるひろくんがスゴイ

こういう所からヒラメキが生まれるのかもしらんね~
ひろかわです。 さん 11/24 22:06
土岐さんへ

どうもありがとう。
こういうのを作るのが面白いんだよねぇ。

仕事中に何やってんだか、、、、
pomo123 さん 11/25 21:29
元ネタにしていただきありがとうございます。
ソースの方は、エラー処理もなにもない、DojaのAPIを並べたままのものなのでぜんぜん問題ないです。
コメントはこちらから
名前:
通信:
※オーナーにのみ表示されます。(mail やホームページのurl等ご入力ください)
本文:
トラックバックはこちらから
トラックバックURL: