|
Arduino
- Blackbird
- Сообщения: 13717
- Зарегистрирован: 19 сен 2009, 20:06
- Откуда: Новосибирск
- Благодарил (а): 49 раз
- Поблагодарили: 137 раз
- Контактная информация:
Re: Arduino
кого ардуины чтоли ? дык восьмибитные AVRки никуда не делись
В «Эльдорадо Биарритц» мерейчатые кардифские кожи сочетаются с флорентийскими кожами в металлических оттенках роскошной , не поддающейся описанию отделки .
- oldmao
- Сообщения: 6472
- Зарегистрирован: 05 фев 2011, 15:39
- Откуда: Саратовская обл.
- Благодарил (а): 140 раз
- Поблагодарили: 461 раз
Re: Arduino
Если про журнал - то это совсем не тот журнал, что в советское время. Это уже чисто электронный проект сайта Радиолоцман, в бумаге не выпускается. Да и выпуск этот шестилетней давности, что для микроконтроллерных проектов (Арудуино в том числе) как для людей - полвека.
- Asmodey
- Сообщения: 4754
- Зарегистрирован: 05 июн 2012, 19:57
- Откуда: Саранск
- Благодарил (а): 217 раз
- Поблагодарили: 217 раз
Re: Arduino
Ардуинщики нынче пилят свои проекты на 32-разрядных ESP32, с тремя ядрами, вайфаем, блютузом и двумя сотнями мегагерц тактовой частоты.
А вы ноктюрн сыграть могли бы на флейте водосточных труб?
- old_hippie
- Сообщения: 20798
- Зарегистрирован: 31 июл 2012, 05:56
- Откуда: СПб
- Благодарил (а): 432 раза
- Поблагодарили: 767 раз
Re: Arduino
Ну, то есть, запихать в два кило ПЗУ законченный продукт типа термометра-психрометра опять слабО?... =)
O.H.
Иногда, чтобы воспользоваться советом, нужно иметь не меньше ума, чем для того, чтобы его дать
Ларошфуко
Иногда, чтобы воспользоваться советом, нужно иметь не меньше ума, чем для того, чтобы его дать
Ларошфуко
- Asmodey
- Сообщения: 4754
- Зарегистрирован: 05 июн 2012, 19:57
- Откуда: Саранск
- Благодарил (а): 217 раз
- Поблагодарили: 217 раз
Re: Arduino
Так они туда интернет радивы уже запихивают и видеоплееры.
А вы ноктюрн сыграть могли бы на флейте водосточных труб?
- old_hippie
- Сообщения: 20798
- Зарегистрирован: 31 июл 2012, 05:56
- Откуда: СПб
- Благодарил (а): 432 раза
- Поблагодарили: 767 раз
Re: Arduino
Да-да. "Швейцарский военный ботинок". (на 1:25)
O.H.
Иногда, чтобы воспользоваться советом, нужно иметь не меньше ума, чем для того, чтобы его дать
Ларошфуко
Иногда, чтобы воспользоваться советом, нужно иметь не меньше ума, чем для того, чтобы его дать
Ларошфуко
-
- Сообщения: 2910
- Зарегистрирован: 19 янв 2016, 21:40
- Благодарил (а): 119 раз
- Поблагодарили: 57 раз
Re: Arduino
Приветствую Вас.oldmao писал(а): ↑26 июн 2021, 19:45Если про журнал - то это совсем не тот журнал, что в советское время. Это уже чисто электронный проект сайта Радиолоцман, в бумаге не выпускается. Да и выпуск этот шестилетней давности, что для микроконтроллерных проектов (Арудуино в том числе) как для людей - полвека.
Да, про журнал… Ну а про Ардуино - научиться программировать с «нуля» (хотя бы и на упрощенном С++) - самое то…
- oldmao
- Сообщения: 6472
- Зарегистрирован: 05 фев 2011, 15:39
- Откуда: Саратовская обл.
- Благодарил (а): 140 раз
- Поблагодарили: 461 раз
Re: Arduino
Да вот с чего начинать именно в микроконтроллерах (если вообще никогда никаких программ не писал, то есть ни в Basic, ни в С, ни в Pascal "ни в зуб ногой"), вопрос спорный и до конца не "устаканенный". Дело в том, что когда пишешь для компьютера/смартфона, то на первом месте - дизайн визуального интерфейса (кнопки, поля ввода и прочие визуальные компоненты), а дальше - логика обработки событий, создаваемых пользователем (нажатие кнопки, ввод текста и т.д.) и вывод результата (текста, изменение цвета индикатора, рисование графика и т.д.). То есть объектно-событийно-ориентированное программирование в чистом виде. И соответственно языки объектно-ориентированные (C++, C#, ObjectPascal, Java).
А с микроконтроллерами совершенно другой подход, там программы либо на конечных автоматах (есть строго определённый список состояний, переход между которыми по строго заданным событиям - нажатие кнопок, данные с датчиков, таймеры), либо бесконечный цикл (опрос датчиков - обработка показаний - индикация или изменение выходных сигналов). Кстати, в Ардуино именно последний подход. Всякие специальные случаи, где нужна операционная система реального времени, пока оставим в стороне.
Так вот попытка применить объектно ориентированный язык-наследник С++ в Ардуино ведёт к разрастанию кода и снижению быстродействия. Хотя тем, кто учился программировать на компьютере - однозначно так проще. А вот чтобы выжать максимум - ужать нужный код в маленькую память, добиться максимального быстродействия, адекватно использовать встроенную периферию (таймеры, АЦП, ШИМ и прочее) - нужно будет учить нечто низкоуровневое. Си, Ассемблер, либо специально адаптированные диалекты Бейсика (BASCOM), Паскаля (MicroPascal), либо вообще экзотику, не имеющую аналогов в мире ПК (JAL).
Так вот, если вы вообще о микроконтроллерах имеете только смутное представление, ИМХО начинать нужно как раз с низкоуровневого, оно даст понятие, как работает ЖЕЛЕЗО, а абстракции высокоуровневых языков этого не дают.
А с микроконтроллерами совершенно другой подход, там программы либо на конечных автоматах (есть строго определённый список состояний, переход между которыми по строго заданным событиям - нажатие кнопок, данные с датчиков, таймеры), либо бесконечный цикл (опрос датчиков - обработка показаний - индикация или изменение выходных сигналов). Кстати, в Ардуино именно последний подход. Всякие специальные случаи, где нужна операционная система реального времени, пока оставим в стороне.
Так вот попытка применить объектно ориентированный язык-наследник С++ в Ардуино ведёт к разрастанию кода и снижению быстродействия. Хотя тем, кто учился программировать на компьютере - однозначно так проще. А вот чтобы выжать максимум - ужать нужный код в маленькую память, добиться максимального быстродействия, адекватно использовать встроенную периферию (таймеры, АЦП, ШИМ и прочее) - нужно будет учить нечто низкоуровневое. Си, Ассемблер, либо специально адаптированные диалекты Бейсика (BASCOM), Паскаля (MicroPascal), либо вообще экзотику, не имеющую аналогов в мире ПК (JAL).
Так вот, если вы вообще о микроконтроллерах имеете только смутное представление, ИМХО начинать нужно как раз с низкоуровневого, оно даст понятие, как работает ЖЕЛЕЗО, а абстракции высокоуровневых языков этого не дают.
-
- Сообщения: 2910
- Зарегистрирован: 19 янв 2016, 21:40
- Благодарил (а): 119 раз
- Поблагодарили: 57 раз
Re: Arduino
И это - правильно!
Речь всего-лишь о понимании основ программирования и возможности применить/подправить код для домашней «автоматизации». Ардуино (стандартный) прежде всего хорош тем, что позволяет программировать/питать себя всего-лишь с помощью подключённого к компьютеру USB-кабеля, не влезая в дебри низкоуровневого (пусть и эффективного) программирования. При этом можно быстро отработать функционал идеи, а уж потом оптимизировать.
- old_hippie
- Сообщения: 20798
- Зарегистрирован: 31 июл 2012, 05:56
- Откуда: СПб
- Благодарил (а): 432 раза
- Поблагодарили: 767 раз
Re: Arduino
Основы чего и программирования чего?...
Любое сервисное подспорье - это облегчение жизни программиста, а не способ его научить... Скорее наоборот, сервис в процессе обучения приводит к оболваниванию... ибо маскирует действия, необходимые для достижения цели.
Даже макроассемблер - уже оставляет за скобками то, что прекрасно видно в машинных кодах...
Нужный для решения поставленной задачи уровень абстракции - это всегда компромисс между предоставленным ресурсом, временем разработки и необходимого функционала. Только к обучению это не имеет никакого отношения...
("Перцептрон - это машина для распознавания образов. Известно, что чем сложнее перцептрон, тем проще для него программа. Из этого следует, что программа бесконечной сложности работоспособна без машины вообще..." (с) Лем, по памяти)
O.H.
Иногда, чтобы воспользоваться советом, нужно иметь не меньше ума, чем для того, чтобы его дать
Ларошфуко
Иногда, чтобы воспользоваться советом, нужно иметь не меньше ума, чем для того, чтобы его дать
Ларошфуко
- Asmodey
- Сообщения: 4754
- Зарегистрирован: 05 июн 2012, 19:57
- Откуда: Саранск
- Благодарил (а): 217 раз
- Поблагодарили: 217 раз
Re: Arduino
А чего сразу Ардуина? Сейчас везде так, Cube для STM32 еще хлеще ардуины будет... Он даже в ходе инициализации МК не позволяет "программисту" прийти в сознание, заставляя его настраивать тактовый генератор путем нажимания кнопосек в графическом интерфейсе. Ардуинщики хотя бы клаву топчут, по ходу почерпывая хоть какие-то знания, а кубисты только мышкой шуршат.
А вы ноктюрн сыграть могли бы на флейте водосточных труб?
- old_hippie
- Сообщения: 20798
- Зарегистрирован: 31 июл 2012, 05:56
- Откуда: СПб
- Благодарил (а): 432 раза
- Поблагодарили: 767 раз
Re: Arduino
Дык, и хорошо! Только к обучению программированию микроконтроллеров это не имеет никакого отношения...
O.H.
Иногда, чтобы воспользоваться советом, нужно иметь не меньше ума, чем для того, чтобы его дать
Ларошфуко
Иногда, чтобы воспользоваться советом, нужно иметь не меньше ума, чем для того, чтобы его дать
Ларошфуко
- oldmao
- Сообщения: 6472
- Зарегистрирован: 05 фев 2011, 15:39
- Откуда: Саратовская обл.
- Благодарил (а): 140 раз
- Поблагодарили: 461 раз
Re: Arduino
Ну графический интерфейс (близкий к блок-схемам алгоритмов) - не всегда зло. Например язык Дракон или Algorithm Builder - довольно годные для обучения вещи. Ещё что-то похожее для Ардуины и ESP32 есть.
-
- Сообщения: 2910
- Зарегистрирован: 19 янв 2016, 21:40
- Благодарил (а): 119 раз
- Поблагодарили: 57 раз
Re: Arduino
Как-то Вы всё с ног на голову… (или это такая попытка демонстрации профессионализма?))old_hippie писал(а): ↑30 июн 2021, 17:49Основы чего и программирования чего?...
Любое сервисное подспорье - это облегчение жизни программиста, а не способ его научить... Скорее наоборот, сервис в процессе обучения приводит к оболваниванию... ибо маскирует действия, необходимые для достижения цели.
Даже макроассемблер - уже оставляет за скобками то, что прекрасно видно в машинных кодах...
1.Основы - стандартные переменные, условия, циклы, подключаемые библиотеки и даже работа с памятью.
2.Программирование чего - спектр широк: от автоматизации полива цветов и кормления рыбок в аквариуме до игрушек-роботов и систем управления (видел даже реализацию управления электро сигвеем)
Только зачем простому смертному знать какие нули и единицы и в каких регистрах конкретного АЛУ?
- old_hippie
- Сообщения: 20798
- Зарегистрирован: 31 июл 2012, 05:56
- Откуда: СПб
- Благодарил (а): 432 раза
- Поблагодарили: 767 раз
Re: Arduino
Простите.
Я под обучением подразумевал нечто более фундаментальное.
Если вместо "обучение программированию" поставить "ознакомление с основами программирования" - тогда вопросов бы не возникло.
O.H.
Иногда, чтобы воспользоваться советом, нужно иметь не меньше ума, чем для того, чтобы его дать
Ларошфуко
Иногда, чтобы воспользоваться советом, нужно иметь не меньше ума, чем для того, чтобы его дать
Ларошфуко
- FAI4
- Сообщения: 14932
- Зарегистрирован: 07 сен 2014, 20:33
- Откуда: Брянск
- Благодарил (а): 158 раз
- Поблагодарили: 541 раз
Re: Arduino
Ардуино - хорошая база для начала.
Спускаться на Ассемблер в 95% случаев нет необходисмости.
Включить/выключить светодиод по выходу - много ума не нужно.
Кстати, Ардуино можно и на Ассемблер запрограммировпть при желании.
Спускаться на Ассемблер в 95% случаев нет необходисмости.
Включить/выключить светодиод по выходу - много ума не нужно.
Кстати, Ардуино можно и на Ассемблер запрограммировпть при желании.
Не забывайте Закон Ома
-
- Сообщения: 314
- Зарегистрирован: 27 июл 2012, 18:48
- Откуда: Санкт-Ленинград
- Поблагодарили: 8 раз
- Контактная информация:
- Sulphur
- Сообщения: 22490
- Зарегистрирован: 08 янв 2010, 16:45
- Откуда: Челябинск
- Благодарил (а): 40 раз
- Поблагодарили: 398 раз
Re: Arduino
И в ремонт аппаратуры, профилактику, а отдать для этого мастеру.
Лузер-неудачник, рождённый для одиночества...
- old_hippie
- Сообщения: 20798
- Зарегистрирован: 31 июл 2012, 05:56
- Откуда: СПб
- Благодарил (а): 432 раза
- Поблагодарили: 767 раз
Re: Arduino
Не совсем корректная аналогия.
Отдать мастеру - значит, получить на выходе полный функционал.
Не имея же квалификации мастера (по факту, а не по званию), до такого результата не дойти. Разве что, потратив на это время, необходимое, чтобы достичь квалификации мастера (и то, если аппарат до того времени останется ремонтопригодным).
С современной компьютерной техникой это не так.
Возможности производительности процессоров и объёмы ОЗУ/ПЗУ различных этиологий, вкупе с развитым софтом, к сегодняшнему дню позволяют в кратчайшие сроки реализовать требуемую задачу, не беспокоясь о получающейся ресурсоёмкости решения (ибо время программиста стоит больше, чем всё это железо (а как известно, программист в час пишет примерно одинаковое количество строк кода, вне зависимости от уровня языка. А три строчки на ассемблере и три строчки на С - это две большие разницы, по функционалу)).
И, если для "больших" компьютеров это ещё более-менее оправданно (да и то, с натяжкой), то для микроконтроллеров это не совсем так, в общем случае.
PS Как пример, вспоминается сименсовский цифровой программируемый психрометр, который весь жил в ПЗУ 2К (и та, не полностью...)
PPS Себя крутым программером не считаю и никогда не считал, просто излагаю своё видение, применительно к контроллерам.
O.H.
Иногда, чтобы воспользоваться советом, нужно иметь не меньше ума, чем для того, чтобы его дать
Ларошфуко
Иногда, чтобы воспользоваться советом, нужно иметь не меньше ума, чем для того, чтобы его дать
Ларошфуко
- FAI4
- Сообщения: 14932
- Зарегистрирован: 07 сен 2014, 20:33
- Откуда: Брянск
- Благодарил (а): 158 раз
- Поблагодарили: 541 раз
Re: Arduino
Ассемблер нужен там, где процессор "не успевает"
Сейчас такие скорости железа, что их хватает с избытком в 99% случаев.
Сейчас такие скорости железа, что их хватает с избытком в 99% случаев.
Не забывайте Закон Ома
- oldmao
- Сообщения: 6472
- Зарегистрирован: 05 фев 2011, 15:39
- Откуда: Саратовская обл.
- Благодарил (а): 140 раз
- Поблагодарили: 461 раз
Re: Arduino
Или где стандартные функции Arduino IDE тормозят, пример вот. Ну и с управлением электропитанием (спящий и экономичные режимы), прерываниями, двойным тактированием там тоже засады есть. Короче, если нужно что посерьёзней "помигать светодиодом" - приходится лезть в дебри.
-
- Сообщения: 3948
- Зарегистрирован: 10 май 2017, 17:09
- Откуда: Кузбасс
- Благодарил (а): 14 раз
- Поблагодарили: 359 раз
Re: Arduino
Я вот о микроконтроллерах имею смутное представление, но в свое время настолько напрограммировался на ассемблере под персоналку, что снова начинать с низкоуровневого и понимать, как работает это железо (дабы запрограммировать нужные мне от ардуины функции), не имею совершенно никакого желания. )))
-
- Сообщения: 314
- Зарегистрирован: 27 июл 2012, 18:48
- Откуда: Санкт-Ленинград
- Поблагодарили: 8 раз
- Контактная информация:
Re: Arduino
И благодаря быдлокоду, в конечном итоге, они работают с такой же производительностью, как допотопные МК на ассемблере.
-
- Сообщения: 2910
- Зарегистрирован: 19 янв 2016, 21:40
- Благодарил (а): 119 раз
- Поблагодарили: 57 раз
Re: Arduino
Хотелось бы обратить внимание, что в данной теме идея в достижении конечной цели может быть ценнее эффективности кода. И заодно напомнить, что «эффективные программисты» не всегда программируют то, что удобно и необходимо обычным пользователям…
- FAI4
- Сообщения: 14932
- Зарегистрирован: 07 сен 2014, 20:33
- Откуда: Брянск
- Благодарил (а): 158 раз
- Поблагодарили: 541 раз
Re: Arduino
"Работает - пусть работает..."
Затраты на оптимизацию кода нужны там где нужны.
В любом другом случае важнее устойчивость от сбоев
Затраты на оптимизацию кода нужны там где нужны.
В любом другом случае важнее устойчивость от сбоев
Не забывайте Закон Ома
- torneb
- Сообщения: 496
- Зарегистрирован: 20 ноя 2016, 18:39
- Откуда: Минск
- Благодарил (а): 51 раз
- Поблагодарили: 82 раза
Re: Arduino
Ценность Дуни в том, что для нее написана куча библиотек энтузиастами, в отличие от того же Bascomа, который поддерживается чуть ли не одним человеком.
Да и никто не заставляет в Дуне использовать PinMode. DigitalRead и прочую шнягу - отлично понимает прямую работу с регистрами.Я,например, их напрямую инициализирую по типу
DDRB = B00111111;
DDRC = B11111111;
DDRD = B11100010;
А устанавливаю или обнуляю биты простыми макросами
#define RESET(x,y) (x&=(~(1<<y)));
#define SET(x,y) (x|=(1<<y));
Работает так же быстро как и в BASCOM. Шьется обычным программатором, точно также- я USBASP использую- цена в китае 3 бакса)
Кстати начинал именно с него.На мелочи ,типа Attiny13 можно и там писать.
Но библиотек к нему практически нет.А если и есть- то или платные,или кривые,или вместе.Например для I2C Slave она платная и плохо реализована- даже сам Марк это признавал.А для Дуни бесплатна и чуть ли ни на каждом углу.
То же и с дисплейчиками .А для RDA5807 для Дуни аж 2 библиотеки есть, хотя там и штатными средствами все просто реализуется.
Да и литературу для Дуни разве , что ленивый не писал, а для BASCOM только Кулиш,да и то для 51-го. Остальная забугорная.У меня даже на польском есть).
Ассемблер конечно хорошо, но существующая вычислительная мощность и объем памяти атмег сводят к нулю битву за каждый байт и скорость выполнения.Даже Studio перешла на Си с ассемлера. Кстати там тот же бесплатный компилятор,что и в ардуине
Да и никто не заставляет в Дуне использовать PinMode. DigitalRead и прочую шнягу - отлично понимает прямую работу с регистрами.Я,например, их напрямую инициализирую по типу
DDRB = B00111111;
DDRC = B11111111;
DDRD = B11100010;
А устанавливаю или обнуляю биты простыми макросами
#define RESET(x,y) (x&=(~(1<<y)));
#define SET(x,y) (x|=(1<<y));
Работает так же быстро как и в BASCOM. Шьется обычным программатором, точно также- я USBASP использую- цена в китае 3 бакса)
Кстати начинал именно с него.На мелочи ,типа Attiny13 можно и там писать.
Но библиотек к нему практически нет.А если и есть- то или платные,или кривые,или вместе.Например для I2C Slave она платная и плохо реализована- даже сам Марк это признавал.А для Дуни бесплатна и чуть ли ни на каждом углу.
То же и с дисплейчиками .А для RDA5807 для Дуни аж 2 библиотеки есть, хотя там и штатными средствами все просто реализуется.
Да и литературу для Дуни разве , что ленивый не писал, а для BASCOM только Кулиш,да и то для 51-го. Остальная забугорная.У меня даже на польском есть).
Ассемблер конечно хорошо, но существующая вычислительная мощность и объем памяти атмег сводят к нулю битву за каждый байт и скорость выполнения.Даже Studio перешла на Си с ассемлера. Кстати там тот же бесплатный компилятор,что и в ардуине
Последний раз редактировалось torneb 02 ноя 2021, 23:07, всего редактировалось 1 раз.
У каждого свой путь, свой позор и своя слава...
- torneb
- Сообщения: 496
- Зарегистрирован: 20 ноя 2016, 18:39
- Откуда: Минск
- Благодарил (а): 51 раз
- Поблагодарили: 82 раза
Re: Arduino
код пишет человек.На ассемблере можно написать не менее кривой код)
У каждого свой путь, свой позор и своя слава...
-
- Сообщения: 314
- Зарегистрирован: 27 июл 2012, 18:48
- Откуда: Санкт-Ленинград
- Поблагодарили: 8 раз
- Контактная информация: