Радвам се че не се отказвате и ето отговорите които поискахте:
1.Въпрос:
Какво всъщност е нужно на този контролер за да може да командва сервото като получи сигнал в реално време?
Отговор:
Единствено захранване (USB-то може да го захранва) и връзка между крак на Ардуиното и сигналния пин на сервото.
Пример:
http://www.azega.com/arduino-servo-motor-part-1/2.Въпрос:
Гледах във форума за Ардуино, където имаше едни големи и страшни схеми за свързване на компоненти върху платка.Какво ще рече "започни със светване на светдиода на 13 пин"?
Отговор:
Схемата за серво се изчерпва с тези три жици показани във статията по-горе.
Светодиодът на 13 пин е вграден светодиод които свети когато се напише програма която задава състояние на крака (1 или 0) съответно при състояние 1 (HIGH) има 5V на пин 13 и светодиодът свети а при 0 (LOW) има 0V и съответно светодиодът не свети.
Това е най-простичкия пример на Ардуино и с него се започва когато се учиш.
Пример:
http://www.arduino.cc/en/Tutorial/BlinkПояснение не ти трябва да добавяш светодиод просто пусни програмата и светодиодът до които пише L ще започне да мига.
3.Въпрос:
И как се прави този "протокол за за комуникация между компютърът и Ардуиното" ( пише се на C# ли)?
Отговор:
Самият протокол е идеята какво ще прати компютърът и как ще е кодирана информацията (ако е кодирано).
Пример:
Компютърът праща 2 байта в които има число между 0 и 179 .
Ардуиното чете тези два байта и поставя серво 1 на градуси равни на стойността записана в първият байт а серво две идва на градуси равни на стойността записана във вторият байт.
4.Въпрос:
Какво ще рече да се кодира протокола до две функции?
Отговор:
Това значи че в кодът ти на компютърът имаш функция "прати тази информация" а на Ардуиното имаш функция "получи информация".
Както следа функцията на компютърът праща през серийна или друг вид комуникация данните до Ардуиното , а функцията на Ардуиното проверява дали има получен пакет (лесно осъществимо в Ардуино средата) и когато има го разкодира до полезна информация и го предава на останалата част от програмата.
Пример:
Примерът е за некодирана комуникация между среда за програмиране Processing и Ардуино.
Processing код:
import processing.serial.*; // библитеката
Serial myPort; //обектът от тип сериен порт
myPort = new Serial(this, Serial.list()[0], 9600); //дефиниране на номер на серийният порт и избиране на скорост
//и самата функция
void SendServoData(int ServoData1 , int ServoData2)
{
myPort.write(StartByte);
myPort.write(ServoData1);
myPort.write(ServoData2);
myPort.write(StopByte);
}
Ардуино код:
Serial.begin(9600);
//функцията
bool ReadCom(int *ServoData1 , int *ServoData2)
{
if(Serial.avaliable()<=3)return 0;
byte StartReceived , StopReceived;
StartReceived = Serial.read();
&ServoData1 = Serial.read();
&ServoData2 = Serial.read();
StopReceived = Serial.read();
if(StartReceived != StartByte || StopReceived != StopByte)return 0;
return 1;
}
//този код е само ориентировъчен не е тестван но от него можете да си представите как ще изгелжда крайният код
Надявам се че отговорите ми ще са ви от полза , ако не просто питайте пак.