Я, возможно, помогу вам быть, вы должны быть немного более конкретными о том, что вы действительно хотите сделать?
Вы хотите прочитать данные? Вы хотите дистанционно управлять им?
EDIT: Я также использовать узел для управления Arduino, но я не использую Дуино, ни Джонни пять, потому что не вписывается в мой проект.
Вместо этого я сделал свой собственный протокол связи между моим компьютером и моим роботом.
На Arduino код прост. Он проверяет, доступен ли серийный номер, и если да, читает и сохраняет буфер. Использование switch
или if/else
я тогда выбрать действие, я хочу, чтобы мой робот для выполнения (двигаться вперед, двигаться назад, мерцание привело и т.д.)
Связь производится путем отправки bytes
и не читаемых действий человека. Итак, первое, что вам нужно сделать, это представить небольшой интерфейс между ними. Bytes
полезны, потому что на стороне Arduino вам не понадобится конвертация, и они отлично работают с switch
, в то время как строки не имеют значения.
На Arduino стороне, вы будете иметь что-то вроде этого: (обратите внимание, что вам нужно объявить DATA_HEADER
где-то)
void readCommands(){
while(Serial.available() > 0){
// Read first byte of stream.
uint8_t numberOfActions;
uint8_t recievedByte = Serial.read();
// If first byte is equal to dataHeader, lets do
if(recievedByte == DATA_HEADER){
delay(10);
// Get the number of actions to execute
numberOfActions = Serial.read();
delay(10);
// Execute each actions
for (uint8_t i = 0 ; i < numberOfActions ; i++){
// Get action type
actionType = Serial.read();
if(actionType == 0x01){
// do you first action
}
else if(actionType == 0x02{
// do your second action
}
else if(actionType == 0x03){
// do your third action
}
}
}
}
}
На стороне узла, вы будете иметь что-то вроде этого: (проверьте serialport github для получения дополнительной информации)
var dataHeader = 0x0f, //beginning of the data stream, very useful if you intend to send a batch of actions
myFirstAction = 0x01,
mySecondAction = 0x02,
myThirdAction = 0x03;
sendCmdToArduino = function() {
sp.write(Buffer([dataHeader]));
sp.write(Buffer([0x03])); // this is the number of actions for the Arduino code
sp.write(Buffer([myFirstAction]));
sp.write(Buffer([mySecondAction]));
sp.write(Buffer([myThirdAction]));
}
Надеется, что это помогает!
Я просто пытаюсь заставить привести мигать или даже уйти или на .. просто что-нибудь .. – HasanAboShally
помогите пожалуйста .. спасибо :) – HasanAboShally