OrcSin
19.04.2016, 18:57
В этой теме предлагают обсуждать, советоваться и делится наработками фрагментов кода, подходами, методами и приёмами программирования для Arduino.
Большинство из тех кто собрал на форуме свои акваконтролеры самоучки как и Я.
При программировании для Arduino я встретил множество проблема и задач, некоторые перечислю, надеюсь кому то тоже интересно это как и мне.
1. При работе с простыми бюджетными экранами (1602, 2004, LCD NOKIA и другие) возникает одна из не приятнейших проблем, особенно для новичков - это отсутствие интерфейса пользователя (UI). Arduino не знает таких понятий как кнопка, лейбл, текстовое поле и меню. А обычно акваконтролер имеет минимум 5 "виртуальных экранов". И каждому разработчику приходится самому прописывать каждый экран до мелочей и потом научить дружить между собой эти все экраны. Методов много, но зачастую каждое изменение такого меню влечёт большие временные затраты, так как ломается вся система. Поэтому взять чужой метод не так уж и легко, зачастую всегда проще написать свой новый.
2. Подключение новых устройств - тут вроде всё просто, но постоянно возникают всякие пакости и ошибки доводящие до белого каления :).
3. Большой размер кода - со временем ваша программа разрастается за 2000 строк и вы сами через пару недель начинаете теряться в этом коде и делать всё больше ошибок или вобще ни чего не понимать. Тут мне очень помогло прочтение книги "Чистый код"(не помню автора). В ней описывались примеры как правильно писать код и его оформлять. Соблюдая эти правила код даже спустя месяца читается чуть ли не ночью спросонья. К сожалению этим методом я до конца не овладел.
4. Так же со временем ваш код начинает приобретать критический размер (заканчивается память на контроллере), а вы ещё не до конца сделали что хотели. Зачастую большую часть памяти вашего скетча "пожирают" библиотеки. Тут выхода три или оптимизация кода, или подрезать лишнее из библиотек, так как они универсальны и половиной кода вы можете просто не пользоваться, но делать это надо умеючи и понимаючи и третий вариант - расширение памяти, но это уже борьба с последствиями, а не с причиной.
5. Библиотеки - пункт тесно связанный с п.4 и п.5. Очень полезная штука. Когда код начинает разрастаться или вы пишите разные версии или под разные устройства удобно создавать библиотеки. То есть часть кода которая часто используется переносится в библиотеку, которую вы можете подключить к любой своей программе или даже поделится с другими людьми. И ещё очень большой плюс, что больше не видите эту часть кода в своей программе и не боитесь туда поселить новую ошибку.
Вобщем давайте делится опытом.
Большинство из тех кто собрал на форуме свои акваконтролеры самоучки как и Я.
При программировании для Arduino я встретил множество проблема и задач, некоторые перечислю, надеюсь кому то тоже интересно это как и мне.
1. При работе с простыми бюджетными экранами (1602, 2004, LCD NOKIA и другие) возникает одна из не приятнейших проблем, особенно для новичков - это отсутствие интерфейса пользователя (UI). Arduino не знает таких понятий как кнопка, лейбл, текстовое поле и меню. А обычно акваконтролер имеет минимум 5 "виртуальных экранов". И каждому разработчику приходится самому прописывать каждый экран до мелочей и потом научить дружить между собой эти все экраны. Методов много, но зачастую каждое изменение такого меню влечёт большие временные затраты, так как ломается вся система. Поэтому взять чужой метод не так уж и легко, зачастую всегда проще написать свой новый.
2. Подключение новых устройств - тут вроде всё просто, но постоянно возникают всякие пакости и ошибки доводящие до белого каления :).
3. Большой размер кода - со временем ваша программа разрастается за 2000 строк и вы сами через пару недель начинаете теряться в этом коде и делать всё больше ошибок или вобще ни чего не понимать. Тут мне очень помогло прочтение книги "Чистый код"(не помню автора). В ней описывались примеры как правильно писать код и его оформлять. Соблюдая эти правила код даже спустя месяца читается чуть ли не ночью спросонья. К сожалению этим методом я до конца не овладел.
4. Так же со временем ваш код начинает приобретать критический размер (заканчивается память на контроллере), а вы ещё не до конца сделали что хотели. Зачастую большую часть памяти вашего скетча "пожирают" библиотеки. Тут выхода три или оптимизация кода, или подрезать лишнее из библиотек, так как они универсальны и половиной кода вы можете просто не пользоваться, но делать это надо умеючи и понимаючи и третий вариант - расширение памяти, но это уже борьба с последствиями, а не с причиной.
5. Библиотеки - пункт тесно связанный с п.4 и п.5. Очень полезная штука. Когда код начинает разрастаться или вы пишите разные версии или под разные устройства удобно создавать библиотеки. То есть часть кода которая часто используется переносится в библиотеку, которую вы можете подключить к любой своей программе или даже поделится с другими людьми. И ещё очень большой плюс, что больше не видите эту часть кода в своей программе и не боитесь туда поселить новую ошибку.
Вобщем давайте делится опытом.