아두이노마스터 라즈베리파이슬레이브 블루투스통신 질문입니다.



  • 0_1562910066919_캡처.PNG

    #include <SoftwareSerial.h>
    SoftwareSerial BLESerial(10, 11); // RX, TX
    int ExbuttonPin = 2;
    int BrbuttonPin = 4;
    int ExbuttonState = 0;
    int BrbuttonState = 0;
    void setup() {

    sv.attach(13);
    pinMode(ExbuttonPin,INPUT);
    pinMode(BrbuttonPin,INPUT);
    Serial.begin(9600);
    BLESerial.begin(9600);
    while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
    }
    Serial.println(" radian,axcel,break, ");
    delay(100);
    }

    void loop() {

    ExbuttonState = digitalRead(ExbuttonPin);
    BrbuttonState = digitalRead(BrbuttonPin);
    int Exbutstate=0;
    int Brbutstate=0;
    int val = analogRead(A0);
    int radian = map(val,0,1023,0,120);
    int a = " ";
    // sv.write(radian);

    if(ExbuttonState == HIGH){
    Exbutstate = 1;
    }else{
    Exbutstate = 0;
    }
    if(BrbuttonState == HIGH){
    Brbutstate = 1;
    }else{
    Brbutstate = 0;
    }

    Serial.print("radian,axcel,break = “);
    Serial.print(radian,DEC);
    Serial.print(” “);
    Serial.print(Exbutstate,DEC);
    Serial.print(” ");
    Serial.println(Brbutstate,DEC);

    BLESerial.print(radian);
     BLESerial.print(",");
     BLESerial.print(Exbutstate,DEC);
     BLESerial.print(",");
    BLESerial.println(Brbutstate,DEC);
    

    delay(100);
    }
    가변저항값과 버튼 값 2개를 아두이노를 통해서 라즈베리파이로 블루투스로 데이터를 보낼려고 했습니다.

    from bluetooth import *
    client_socket=BluetoothSocket( RFCOMM )
    client_socket.connect((“98:D3:81:FD:38:43”,1))
    print("bluetooth Connect!)

    while True:
    msg = client_socket.recv(1024)
    print(“receive message : {}”.format(msg))

    client_socket.close()
    위에는 라즈베리파이 파이썬코딩입니다.
    이렇게 했더니
    0_1562910434927_2.PNG
    위와같이 10의 자리이상 수는 저렇게 2줄로 뜨더라고요 그래서 일단 아두이노의 가변저항값만 보냈더니 마찬가지였고요 알아보니 client_socket.recv(1024)이게
    char인거 같은데 형변환을 해도 안되는것 같구요…ㅠㅠ
    처음에는 아두이노코드에서 BLESerial.print(radian);를 BLESerial.write(radian);로해서 보낸다음에 라즈베리파이에서 ord(msg)이용해서 하면 가변저항값만 받아오는거야 그렇게 하지만 저는 3개의 값을 받은다음에 3개로 나눠서 각각값에 따른 결과를 다르게 해야하거든요…어떻게 해야할까요 제발 도와주세요!!



  • 아두이노를 컨트롤러로 만들어서 가변저항은 핸들처럼 버튼2개는 엑셀 브레이크로 생각하고 블루투스로 값을 받은 라즈베리파이rc카는 가변저항값으로 서보모터를
    엑셀버튼으로 앞으로 브레이크버튼으로 멈추게 할려고 했습니다. 근데 가변저항값 받는거에서 부터 너무 좌절을 느끼네요 어떻게 해야할까요 그냥 가변저항값을 한 5개로 나눠서 일의 자리숫자만 보내게 해야하는 걸까요? ㅠㅠ


Log in to reply
 

Looks like your connection to Rasplay Forum was lost, please wait while we try to reconnect.