Еле как, облазив интернет, написал консольное приложение на C для своих целей. Но processing выглядит куда удобнее для такого... Так что, если не хотите лезть в дебри, выберите processing, а то в C придется много куда залезть, для создания окошка понадобится в WinAPI залезать, а тут все просто и понятно.
скачал процессинг, но вместо варистора я использовал фоторезистор, вот скетч к нему, остальной код у джереми берите. int roePin =0; void setup() { Serial.begin(9600); pinMode(roePin,INPUT); } void loop() { int val = analogRead(roePin); val = constrain(val, 600, 850); int Ledlo = map(val, 600, 850, 255, 0); Serial.println(Ledlo); delay(500); }
подскажите пожалуйста как принимать 10 разных значений? чем их разделить или может передавать последовательно? требуется передать данные с разных датчиков а приняв отобразить в нужных местах. форму в Processing нарисовал, осталось продумать как в нужном порядке передать через Serial (использую Bluetooth) и приняв «разложить по полочкам»
Программа в Процессинге никак не отлаживается. Просто переписала её с экрана, но выдаёт ошибку - функция "background (int, int, float)" не определена... Как исправить?!
Владимир Комяк Через командную строку и avrdude. Вот здесь хорошо описано: www.evilmadscientist.com/2011/avr-basics-reading-and-writing-flash-contents/
я использовал фоторезистор, 10К стягивающий резистор. даже интереснее. вот скетч держи int roePin =0; void setup() { Serial.begin(9600); pinMode(roePin,INPUT); } void loop() { int val = analogRead(roePin); val = constrain(val, 600, 850); int Ledlo = map(val, 600, 850, 255, 0); Serial.println(Ledlo); delay(500); }
int ledPin = 12; int ledPin1 = 9; void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); pinMode(ledPin1, OUTPUT); } void loop() { while (Serial.available() == 0); int val = Serial.read() - '0'; int label = val; if (val != 0 && val != 1 && val != 2) { Serial.println("Invalid"); } switch(label) { case 1 : Serial.println("Yellow is ON"); digitalWrite(ledPin, HIGH); break; case 2 : Serial.println("Green is ON"); digitalWrite(ledPin1, HIGH); break; case 0 : Serial.println("LED's is OFF"); digitalWrite(ledPin, LOW); digitalWrite(ledPin1, LOW); break; } Serial.flush(); } // требует доработки тоже сыпет Serial.println("Invalid"); и не понимает 1 цифра введена или 45245345, но неагирует на 0,1 и 2 )
Решила проблему странным но работающим способом. Когда скомпилировали и открылось черное окно, надо не выключая его еще раз нажать компиляцию и все заработает. При этом если остановить (нажать на STOP) и заново запустить не заработает.
readString() читает пока не наступит затишье в буфере на 1 секунду, а readStringUntil(x) читает пока не встретила x или пока не наступило затишье: смотря что произойдёт раньше
Спасибо за понятный хороший перевод! Все отлично получилось!
Конечно. Один в мелочёвке, другой в датчиках
Еле как, облазив интернет, написал консольное приложение на C для своих целей. Но processing выглядит куда удобнее для такого... Так что, если не хотите лезть в дебри, выберите processing, а то в C придется много куда залезть, для создания окошка понадобится в WinAPI залезать, а тут все просто и понятно.
Просто серая табличка.
скачал процессинг, но вместо варистора я использовал фоторезистор, вот скетч к нему, остальной код у джереми берите.
int roePin =0;
void setup() {
Serial.begin(9600);
pinMode(roePin,INPUT);
}
void loop() {
int val = analogRead(roePin);
val = constrain(val, 600, 850);
int Ledlo = map(val, 600, 850, 255, 0);
Serial.println(Ledlo);
delay(500);
}
Да, напишите в форму обратной связи - всё расскажем
Здравствуйте, не понимаю почему то у меня на мониторе порта все значения в одну строчку выводит.
Serial.println(); не Serial.print();
Не пойму где вызывается serialEvent()?
На фоне хорошего перевода и дикции режут слух - Унтил, Эвент, дроУ. Еще, конечно, портА.
чем это вам мешает вникнуть в тему?))) я тоже заметил, но это совершенно несущественно
Yuppi! И ровно 50 лайков :)
Странно. Процессинговый скетч не заработал, хотя в ардуино все отлично ловит с потенциометра.
подскажите пожалуйста как принимать 10 разных значений?
чем их разделить или может передавать последовательно?
требуется передать данные с разных датчиков а приняв отобразить в нужных местах. форму в Processing нарисовал, осталось продумать как в нужном порядке передать через Serial (использую Bluetooth) и приняв «разложить по полочкам»
Процессинг 2 отличается от первого??
почему ты в конце говоришь "увидимся, парни"? :) вдруг девушки тоже смотрят
А у вас в магазине потенциометр можно купить?
А доставка в Днепропетровск возможна ?
Добрый день, очень нужно что бы данные NMEA поступающие на вход Arduino (RS232/RS422), онлайн отображались на LCD. Это вообще возможно?
Программа в Процессинге никак не отлаживается. Просто переписала её с экрана, но выдаёт ошибку - функция "background (int, int, float)" не определена...
Как исправить?!
хотел бы узнать , а можно ли подключить как джоистик?
и как?
да можно, который в стартер китах, достаточно его значения через map сделать от 0 до 255, и все ваши оси будут менять переменные на цвета.
Все написал как надо , но все равно высвечивает серый экран, даже изменяя значение (типа "background (0,1,234);") остаётся все также
Под видео ссылкусделать на магазин Амперка религия не позволяет?
ровно 10000 просмотров )
А можно считать скетч с ардуино, если да то как?
Можно, но только в скомпилированном виде, т.е. пригодном лишь для перепрошивки, но не пригодном для правки и чтения человеком.
AmperkaRu Так все таки как?
Владимир Комяк Через командную строку и avrdude. Вот здесь хорошо описано: www.evilmadscientist.com/2011/avr-basics-reading-and-writing-flash-contents/
Программа почему-то не работает.
Код на Arduino IDE:
int potPin = A0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int val = map(analogRead(potPin), 0, 1023, 0, 255);
Serial.println(val);
delay(50);
}
Код на Processing:
import processing.serial.*;
Serial port;
float brightness = 0;
void setup()
{
size(400, 400);
port = new Serial(this, "COM4", 9600);
port.bufferUntil('
');
}
void loop()
{
background(0 ,0 , brightness);
}
void serialEvent (Serial port)
{
brightness = float(port.readStringUntil('
'));
}
Порт у меня COM4
+Arduboy Arduino/Games Rus
Лучше поздно, чем никогда. (Вдруг, кто тоже столкнётся)
У вас в Processing написанно "void loop()"
а нужно "void draw()"
Но сколько килоом потенциометр?
Вначале серии сказано, что на 10кОм
я использовал фоторезистор, 10К стягивающий резистор. даже интереснее.
вот скетч держи
int roePin =0;
void setup() {
Serial.begin(9600);
pinMode(roePin,INPUT);
}
void loop() {
int val = analogRead(roePin);
val = constrain(val, 600, 850);
int Ledlo = map(val, 600, 850, 255, 0);
Serial.println(Ledlo);
delay(500);
}
Зачем он перешёл на язык Процессинг? что ему мешало остаться на С++
Он пытается показать различные способы взаимодействия с Arduino, в этой части показано как работать с Процессингом.
Почему то, что написано на Java, должно работать на C++?
Алексей, потому что процессинг проще.
int ledPin = 12;
int ledPin1 = 9;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(ledPin1, OUTPUT);
}
void loop()
{
while (Serial.available() == 0);
int val = Serial.read() - '0';
int label = val;
if (val != 0 && val != 1 && val != 2)
{
Serial.println("Invalid");
}
switch(label)
{
case 1 :
Serial.println("Yellow is ON");
digitalWrite(ledPin, HIGH);
break;
case 2 :
Serial.println("Green is ON");
digitalWrite(ledPin1, HIGH);
break;
case 0 :
Serial.println("LED's is OFF");
digitalWrite(ledPin, LOW);
digitalWrite(ledPin1, LOW);
break;
}
Serial.flush();
} // требует доработки тоже сыпет Serial.println("Invalid"); и не понимает 1 цифра введена или 45245345, но неагирует на 0,1 и 2 )
Всё получилось вот яркости недостаточно кто подскажет как добавить?
У меня processing ругается: error, disabling serialEvent() for /dev/ttyACM0 null .
Ubuntu, отсюда и /dev/ttyACM0. Никто не знает как решить проблему??
Решила проблему странным но работающим способом. Когда скомпилировали и открылось черное окно, надо не выключая его еще раз нажать компиляцию и все заработает. При этом если остановить (нажать на STOP) и заново запустить не заработает.
долбаный линукс )))) вечно какие то проблемы с элементарными вещами
пожалуйста что исходное видео на английском языке
Я не совсем понял.
чем вот это readString()
отличается от этого readStringUntil('
')
точнее, как именно работает приставка Until
readString() читает пока не наступит затишье в буфере на 1 секунду, а readStringUntil(x) читает пока не встретила x или пока не наступило затишье: смотря что произойдёт раньше
печально
Что именно?