• 人工筋肉を作ろうとして失敗した

    2015-04-28 18:04

    http://www.nicovideo.jp/watch/sm23163869
    ↑で試されていた実験を行ったがうまくいかなかった。
    電動ドリルからナイロンテグスを垂らしおもりに結びつけ
    ドリルを回すもののうまくコイル状にならなかった。



    なんかこんがらがっちゃうね。おもりの重さが適当じゃないのかと
    思ったけど、重すぎると巻いてる途中で切れた。
    もう一回今度は固定し易い長細いおもりとドリルを固定してから
    やってみようと思う。
    あと時間帯も考えないとドリルがうるさい。

    テグス:藤久株式会社 手芸用テグス8号0.475mm(ナイロン)

  • 広告
  • xbee通信(一方通行)ができた

    2014-11-19 19:062
    xbeeの無線通信で結んだコントローラとモータつけただけの車を操作することができた。
    結局プログラムは書き直し。ルータとコーディネーターの位置も入れ替えた。でも一番原因っぽかったのはルータとコーディネーターの接続の仕方だと思う。しっかり確かめてない。
    それよりも早く双方向通信を完成させたい。
    これに今度は車に赤外線センサをつけてリモコン側で読み取りたい。距離の表示方法は決まってないけど。
  • xbee通信がうまくいかない

    2014-11-14 23:061
    arduinoにのっけたxbeeのrouterとcoordinatorで無線通信をしようと思ってたがうまくいかない。前の記事よりプログラムもすこし改良してUART通信ができたかと思ったがなんでかタイムラグが発生する。コーディネーターから発せられたxbee_uart()をルーターがリアルタイムで拾ってくれない。しっかり測ってはないが5秒は超えている。しかも途中でルーターが止まってしまう。
    改良を試みたがうまくいかない。前回貼ったようにswitch文でMODE_UARTを受け取るはずが何故かdefaultに処理が行ってしまい。指示が届かない。原因は不明。
    あと改良中に突然リセットしたり混信したりと色んなトラブルに遭遇したが何一つ原因発見も解決もできなかった。
    タイムラグさえ解消すればと思ったが作りなおしたほうが早く解決できそうな気もする。
    失敗はしたがソースは載せる。記録をつけるためのブログだからね。
    コーディネーター側でリモコンを操作してルーター側で車を動かす。
    ******************************************************************
    //router
    #include<xbee.h>

    void setup(){
    Serial.begin(9600);
    Serial.println("start");
    xbee_init(0x00); //xbee初期化
    xbee_atcb(4); //ネットワーク初期化
    xbee_atnj(0); //孫機排除
    while(xbee_atai()>0x01){
    Serial.println("knock");
    delay(3000);
    xbee_atcb(1); //ネットワーク参加
    }
    Serial.println("join");
    pinMode(5,OUTPUT);//右側
    pinMode(6,OUTPUT);
    pinMode(7,OUTPUT);//左側
    pinMode(8,OUTPUT);
    }

    void motor(char key){
    //ここにモーターの処理を置く
    if(key=='X'){ //STOP
    digitalWrite(5,LOW);
    digitalWrite(6,LOW);
    digitalWrite(7,LOW);
    digitalWrite(8,LOW);
    }else if(key=='W'){ //直進
    digitalWrite(5,HIGH);
    digitalWrite(6,LOW);
    digitalWrite(7,HIGH);
    digitalWrite(8,LOW);
    }else if(key=='D'){ //right turn
    digitalWrite(5,HIGH);
    digitalWrite(6,LOW);
    digitalWrite(7,LOW);
    digitalWrite(8,HIGH);
    }else if(key=='A'){ //left turn
    digitalWrite(5,LOW);
    digitalWrite(6,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,LOW);
    }else if(key=='S'){ //back gear
    digitalWrite(5,LOW);
    digitalWrite(6,HIGH);
    digitalWrite(7,LOW);
    digitalWrite(8,HIGH);
    }else{ //命令がなければブレーキかけて静止
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,HIGH);
    }
    }

    void loop(){
    char key='X';
    XBEE_RESULT xbee_result; //受信データは全部コレに入る。構造体
    xbee_rx_call(&xbee_result); //xbee_resultに受信データ格納
    switch(xbee_result.MODE){
    case MODE_UART:
    Serial.println("UART");
    key=(char)xbee_result.DATA[0];
    Serial.println(key);
    motor(key);
    break;
    default:
    Serial.println("default");
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,HIGH);
    break;
    }
    delay(1000);
    }

    ********************************************************************
    //coordinator
    #include <xbee.h>
    byte dev[]={0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF};
    char c;
    char s[10];

    void setup(){
    Serial.begin(9600);
    xbee_init(0x00); //初期化
    xbee_atnj(0xFF); //ネットワーク参加許可
    pinMode(5,INPUT);
    pinMode(6,INPUT);
    pinMode(7,INPUT);
    pinMode(8,INPUT);
    }

    char input(void){
    if(digitalRead(5)==LOW) return 'W'; //前
    else if(digitalRead(6)==LOW) return 'S'; //後ろ
    else if(digitalRead(7)==LOW) return 'A'; //左
    else if(digitalRead(8)==LOW) return 'D'; //右
    else return 'Z';
    }

    void loop(){
    XBEE_RESULT xbee_result;
    if(digitalRead(5)==LOW) sprintf(s,"W"); //前
    else if(digitalRead(6)==LOW) sprintf(s,"S"); //後ろ
    else if(digitalRead(7)==LOW) sprintf(s,"A"); //左
    else if(digitalRead(8)==LOW) sprintf(s,"D"); //右
    else sprintf(s,"Z");
    c=input();
    xbee_uart(dev,s);
    switch(xbee_result.MODE){
    default:
    break;
    }
    delay(1000);
    }

    ********************************************************************
    ごちゃごちゃ変えてやってるから見やすさとか考えてない。
    てか普段からそんなん気にしてない。