Pull to refresh

Comments 17

Небольшого пояснения и внимательности требует лишь проверка условий (b == 49) и (b == 48)

Вы видели вот эту статью: www.arduino.cc/en/Reference/Char?
Язык Си позволяет записать упомянутые вами проверки так:
(b == '1') и (b == '0')
Поленился проверить, спасибо за замечание)
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Напишите тогда полезный коммент: предложите некостыльный вариант.
А разве последовательные порты com / serial нельзя просто открыть как файл в системах Windows или Linux? Зачем эти библиотеки?
Затем, чтобы не разбираться во всех особенностях работы с серийными портами как с файлами, а сосредоточиться на решаемой проблеме: зажечь светодиод с клавиатуры. Вы же не будете писать свой http сервер для того чтобы создать сайт.
Конечно, можно. :)

Arduino Nano оказался настоящим тугодумом по сравнению со Strela, отправлять данные которой можно было сразу же после установки соединения.


Вот этот момент что-то я не понимаю. Вы подали питание на плату вашей Arduino. Прошла инициализация регистров контроллера. Всё, он готов работать по UART. Это занимает миллисекунды, не более. О какой задержке в таком случае идёт речь?
Насколько я помню, ардуино автоматически перезагружается по сигналу DTR, который поднимается, когда открывается порт. Это сделано, для того, чтобы можно было в ардуиновской IDE ткнуть на кнопку «загрузить скетч» и она сработала бы без дополнительных телодвижений.

Поскольку прошивкаскетча требует, чтобы в данный момент выполнялся загрузчик, контроллер необходимо перезагрузить, что и достигается сбросом по DTR по открытию порта. Потом, видимо, он какое-то время сидит в загрузчике и ожидает прошивки, а если прошивка не пришла — запускает скетч.

Вот для того, чтобы дождаться, когда запустится скетч, автор и вставил задержку, видимо.
UFO just landed and posted this here
Скорее всего, прав DmitriyN, изначально было ощущение, что он перезагружается.
При общении с Arduino через COM-порт столкнулся с тем, что этот самый COM-порт периодически отваливался и появлялся в /dev/ под другим номером. Подозреваю, что виной тому был китайский кабель, который шел в комплекте с ардуиной.

Однако все же решил отказаться от этой нестабильной идеи и передаю данные через enc28j60 модули.

P.S: Либа EtherCard для них очень сыра, но альтернативы лучше не нашел.
>>добавить скаченные jar-архивы
в Java обществе принято использовать что-то типо Maven/Gradle и выкладывать сразу весь проект на github, чтобы не делать подобного рода манипуляции.

О чем собственно статья? о том, что есть библиотека jar Arduino?
если открыть ее — там всего пара-тройка классов, которые даже wrapperом назвать сложно, несколько методов вызывающих jSerialComm
public boolean openConnection(){
		if(comPort.openPort()){
			try {Thread.sleep(100);} catch(Exception e){}
			return true;
		}
		else {
			AlertBox alert = new AlertBox(new Dimension(400,100),"Error Connecting", "Try Another port");
			alert.display();
			return false;
		}
	}

а это вообще ужас, зачем внутри библиотеки делать графический вывод ошибки.
Да, Maven приянят, Graddle принят, но мне теперь изъяснятся с помощью понятных для вас технологий, или как? Я сделал статью для начинающих, о чем упомянул в самом начале. Или мне надо было еще over 10500 скроллов вниз объяснять новичкам, что такое Maven, Graddle, и как добавить «дипэнденси» в свой проект? Данная статья- quick start, поэтом если ваш уровень upperintermidiate, то можете смело проходить мимо. Мне, в свое время, очень не хватило такой статьи, и если хоть одному она покажется полезной, и заставит копнуть немного глубже- то я буду только рад.
P.S. А графический вывод ошибки нужен для того, чтобы «особо внимательные начинающие» сразу поняли, в чем проблема, а не доставали таких как вы, просветленных гуру.
да нет же, если будет maven/gradle, то можно сделать git clone blablablq && mvn clean run например и все полетит и заструится.
это ведь проще, чем подкладывать библиотеки, тем более, что не все пользуются Idea.
Sign up to leave a comment.

Articles