Processing結合arduino運作BB車

Processing有跟arduino運作 但是車子就是沒動作 我是用Xbee作傳輸接收 以下是我車子 跟Xbee發射接收 跟 Processing的程式..

車子

#include <SoftwareSerial.h>

#include <Servo.h>

Servo servo1;

Servo servo2;

char xd=0, yd=0;

char dir;

#define Rx 6 // DOUT to pin 6

#define Tx 7 // DIN to pin 7

SoftwareSerial Xbee(Rx, Tx);

void setup() {

servo1.attach(12);

servo2.attach(13);

Serial.begin(9600); // Set to No line ending;

Xbee.begin(9600); // type a char, then hit enter

delay(500);

}

void loop() {

if(Xbee.available()) { // Is data available from Xbee?

if( dir ='g'){

if(Xbee.available()) { // Is data available from Xbee?

xd = Xbee.read(); // Read character,

Serial.println(" xd=");

Serial.println(xd,DEC); //

}

if(Xbee.available()) { // Is data available from Xbee?

yd = Xbee.read(); // Read character,

Serial.println(" yd=");

Serial.println(yd, DEC); // send to Serial Monitor

Serial.println("\n");

}

}}

controlABB(xd*3, yd*3); //呼叫控制車子的副程式

//delay(50);

}

int controlABB(int xd, int yd){//control副程式

//int xyd;

if (abs(xd)>abs(yd))

yd = 0;

else

xd = 0;

for (int i=0;i<=9;i++){

servo1.write(1500+xd-yd);

servo2.write(1500+xd+yd);

delay(20); } }

Xbee接收傳輸

#include <SoftwareSerial.h>

#define Rx 6 // DOUT to pin 6

#define Tx 7 // DIN to pin 7

SoftwareSerial Xbee(Rx, Tx);

byte xd, yd;

char dir = 'g';

int ledPin = 13; // Set the pin to digital I/O 13

void setup(){

Serial.begin(9600);

pinMode(ledPin, OUTPUT);

Xbee.begin(9600);

}

void loop(){

digitalWrite(ledPin, LOW);

if(Serial.available()) { // Is data available from Xbee?

dir = Serial.read(); // Read character,

if( dir ='g'){

if(Serial.available()) { // Is

已更新項目:

這是 Processing 程式

import processing.serial.*;

Serial serial;

float[] x = new float[20]; // 浮動 X = 新 浮動(20)

float[] y = new float[20]; // 浮動 Y = 新 浮動(20)

float segLength = 10;

byte x_m, y_m;

void setup() { // 準備動作

size(1024,768 ); // 視窗大小

String arduinoPort = Serial.list()[1];

2 個已更新項目:

serial = new Serial(this, arduinoPort, 9600);

}

void draw() { // 開始作畫

background(226); // 背景顏色

dragSegment(0, mouseX -8 ,mouseY - 8); //拖動分部 , 鼠標x ,鼠標y

for(int i=0; i < x.length-1; i++) { // 詮釋 (INT I= 0;那麼x.長度-1

}

x_m = byte((mouseX-512)/5.12);

y_m =byte( (mouseY-384)*(-1)/3.84)

3 個已更新項目:

print(" x_m =");

println( x_m);

print(" y_m =");

println( y_m);

serial.write('g');

serial.write(x_m);

serial.write(y_m);

}

void dragSegment(int i, float xin, float yin) {

4 個已更新項目:

float dx = xin - x[i];

float dy = yin - y[i];

float angle = atan2(dy, dx); //浮動角 = 計算角度(x座標,y座標)

x[i] = xin - cos(angle) * segLength; // x座標, 餘弦(角) 格長度

y[i] = yin - sin(angle) * segLength; // y座標, 餘弦(角) 格長度

translate(x[i], y[i]); // 使轉變X,Y

rotate(angle); // 旋轉

5 個已更新項目:

fill(153, 0, 255); // 圓形顏色

ellipse(-35,-35, 50, 50); // 圓形,位置,X,Y,大小

ellipse( 75,-35, 50, 50); // 圓形,位置,X,Y,大小

ellipse( 74, 75, 50, 50); // 圓形,位置,X,Y,大小

ellipse(-35, 75, 50, 50); // 圓形,位置,X,Y,大小

fill(100,255,255); // 矩形顏色

rect(-55,-20, 150, 80); // 矩形位置

}

6 個已更新項目:

很亂 如果有人可以幫回答請給我信箱 我寄給你程式碼 謝謝

1 個解答

評分
  • 匿名使用者
    7 年前
    最佳解答

    還是要去 http://aaashops.com/ 品質不錯,老婆很喜歡。

    佫冐勹僔儴卙

還有問題?馬上發問,尋求解答。