ALS писал(а):
Ну и какой из этих вариантов проще ?
очевидно что первый
вот программа для компа, шлёт команду включения и выключения светодиодика при наведении мышкой на квадратик.
Код:
import processing.serial.*;
Serial myPort; // Create object from Serial class
int val; // Data received from the serial port
void setup()
{
size(200, 200);
String portName = Serial.list()[0];
myPort = new Serial(this, portName, 9600);
}
void draw() {
background(255);
if (mouseOverRect() == true) { // If mouse is over square,
fill(204); // change color and
myPort.write('H'); // send an H to indicate mouse is over square
}
else { // If mouse is not over square,
fill(0); // change color and
myPort.write('L'); // send an L otherwise
}
rect(50, 50, 100, 100); // Draw a square
}
boolean mouseOverRect() { // Test if mouse is over square
return ((mouseX >= 50) && (mouseX <= 150) && (mouseY >= 50) && (mouseY <= 150));
}
а вот и программа для ардуины, которая принимает комманду и включает/выключает диодик
Код:
char val; // Data received from the serial port
int ledPin = 13; // Set the pin to digital I/O 13
void setup() {
pinMode(ledPin, OUTPUT); // Set pin as OUTPUT
Serial.begin(9600); // Start serial communication at 9600 bps
}
void loop() {
while (Serial.available()) { // If data is available to read,
val = Serial.read(); // read it and store it in val
}
if (val == 'H') { // If H was received
digitalWrite(ledPin, HIGH); // turn the LED on
} else {
digitalWrite(ledPin, LOW); // Otherwise turn it OFF
}
delay(100); // Wait 100 milliseconds for next reading
}
что нужно доделать?
в проге для компа сделать ещё один квадратик рядом и добавить код чтоб они реагировали на нажатие. это делается через
Код:
if (mousePressed) {
считываем координаты мышки и делаем вывод на какой квадратик нажали.
в проге для ардуины продублировать код, чтоб управлять двумя ножками(1 ножка крутить вправо, вторая ножка крутить влево) и добавить обработку двух концевых выключателей.
потом уже можно всякие свистоперделки приделать, типа автоматического выбора компорта, проверять все доступные по очереди и выбирать тот который ответит на запрос.
или проверка концевиков при запуске и возврат мотора в стартовое положение
тоже элементарно делается.
_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!