Цифровая контактная связь Arduino2max с max с использованием Arduino mega 2560

Я работаю над подключением Arduino Mega 2560 к max msp, я адаптировал код Arduino2max arduino и патч max.

Я адаптировал патч max и преуспел со всеми 16 аналоговыми входами от arduino в max, но не могу получить ни один цифровой контакт с номером 13 в max msp. Мне было интересно, если кто-нибудь добился успеха с этим?

Будем признательны за любую помощь и комментарии!

Большое спасибо

Джо

вот код arduino, адаптированный из Arduino2max v.5, который можно найти здесь http://www.arduino.cc/playground/Interfacing/MaxMSP

int x = 0;              
int ledpin = 13;

void setup ()
{
// 115200 is the default Arduino Bluetooth speed
Serial.begin(115200);
///startup blink
digitalWrite(13,HIGH);              
delay(600);
digitalWrite(13,LOW);
pinMode(13,INPUT);
}



void loop()
{ 
// Check serial buffer for characters
if (Serial.available() > 0){  
if (1){     //Serial.read() == 'r') { // If an 'r' is received then read the pins 
// Read and send analog pins 0-15
for (int pin= 0; pin<=15; pin++)
{ 
 x = analogRead(pin);
 sendValue (x);
}

// Read and send digital pins 2-53
for (int pin= 2; pin<=53; pin++)

{         
 x = digitalRead(pin);
 sendValue (x);
}

 // Send a carriage return to mark end of pin data.
    Serial.println(); 
 // add a delay to prevent crashing/overloading of the serial port
delay (5);                        
 }
}
}
// function to send the pin value followed by a "space".
void sendValue (int x){ 
 Serial.print(x);
 Serial.print(32, BYTE);
 }

Спасибо еще раз!


person JoeMel    schedule 07.04.2012    source источник
comment
В статье по этой ссылке говорится, что Arduino2Max — это патч Max с сопровождающим кодом Arduino, который позволяет вам считывать 12 цифровых и 6 аналоговых контактов Arduino в Max/MSP. Что соответствует целому Arduino, так почему вы думаете, что он может справиться с чем-то большим?   -  person gbulmer    schedule 07.04.2012
comment
Возможно, вам придется взломать хост-компьютер Arduino2Max, чтобы получить больше значений. Будете ли вы чувствовать себя достаточно уверенно, чтобы попытаться это сделать?   -  person gbulmer    schedule 07.04.2012
comment
Спасибо за помощь! Я использую плату mega 2560 с 16 аналоговыми входами и 54 цифровыми. До сих пор я мог принимать все 16 аналоговых входов, но только 12 цифровых входов в макс.   -  person JoeMel    schedule 07.04.2012
comment
Итак, некоторый успех, но все же никаких дополнительных цифровых технологий :(. Уверенно да, знающе нет. Что вы подразумеваете под взломом ПК на arduino2max? Любые другие методы или предложения более чем оценены, и большое спасибо за вашу помощь!   -  person JoeMel    schedule 07.04.2012
comment
Я посмотрел исходный код и ваш код для Arduino. AFAICT, каждый датчик или цифровой контакт отправляется в виде числа, за которым следует пробел (Serial.print(32, BYTE);), затем возврат каретки (Serial.println();) после отправки всех датчиков/цифровых контактов. Таким образом, программа на стороне ПК должна иметь возможность получать столько различных значений датчиков/входов, сколько отправляет Arduino. Имеет ли это смысл? Так что, если он сдастся на 28 (16 + 12), то, возможно, кому-то нужно посмотреть на программу хост-компьютера, найти код, который получает значения датчика, и посмотреть, как расширить это количество значений.   -  person gbulmer    schedule 07.04.2012
comment
Это имеет большой смысл, поэтому он будет производить больше значений, чем может содержать серийный номер? возможно ли расширение серийного номера в пределах max msp?   -  person JoeMel    schedule 08.04.2012


Ответы (1)


Я предлагаю вам использовать протокол OSC для связи между Arduino Mega и Max. Я использую библиотеку ardosc. На него нет документации, но его не очень сложно использовать, и это хорошая библиотека.

Если вы не можете использовать его, не стесняйтесь спрашивать меня о некоторых объяснениях.

person Bastien    schedule 06.05.2013