Re[7]: Arudino первые шаги
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 12.01.16 20:55
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Кстати говоря, современный C++ с его статическим полиморфизмом, constexpr и т.п. — это просто мечта для программирования маленьких МК, у которых обычно сильно ограничена память.


А реальность такова, что на AVR он нафиг не упёрся, т.к. большинство "программ" под него очень простые, да и динамическое распределение памяти редко используется из-за того, что этой самой памяти с гулькин нос. С АРМами конечно всё обстоит по-другому, но там и комлилятор умеет гораздо больше, в т.ч. и С++хх.
[КУ] оккупировала армия.
Re[4]: Arudino первые шаги
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 12.01.16 21:02
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Так вот, то что обычно называют ардуинкой — это готовый фреймворк для любителей, созданный для работы с процессорами архитектуры AVR. Т.е. это убогое решение сразу по двум измерениям. Естественно есть готовые фреймворки/платы (всяческие другие *duino'ы, edison'ы, ChipKIT'ы и т.п.) и под другие архитектуры, чтобы любители особо не страдали. Но если заниматься по серьёзному, то лучше сразу начать с низкого уровня: голый МК и чистый C++.


Во-первых, многие либы, написанные под Ардуино, работают и под АРМдуино (типа такой — там стоит Cortex-M3) — я лично проверял и пока не натыкался на какие-то проблемы. Во-вторых, обилие готовых библиотек — это как раз то, что нужно любителям, у которых нет целых отделов, занимающихся железом, и отделов, занимающихся софтом, и которым для поддержания мотивации нужны быстрые результаты, а не многочасовые корпения над даташитами.
[КУ] оккупировала армия.
Re[5]: Профессионально\любитель
От: alex_public  
Дата: 12.01.16 21:05
Оценка:
Здравствуйте, Sheridan, Вы писали:

Что-то ты вообще ничего не понял из написанного. Профессионально/любитель — это речь совсем не о месте работы, а о навыках человека. Любители используют готовые типовые решения, а профессионалы редко их используют, т.к. они обычно неоптимальны по всем параметрам. И соответственно профессионал будет использовать одинаковый подход и дома и на работе.

Далее, ты тут привлёк ещё одно "измерение", когда заговорил о производительности МК (типа ардуинки не хватит на коптер). Так вот это вообще отдельная тема и обычно не особо влияет на выбор платформы/архитектуры, т.к. сейчас почти у каждого производителя есть большая линейка моделей на любой вкус. Т.е. тех же AVR (для которых ардуинка создана) множество. А про Cortex-M я вообще молчу. Есть любой "мощности", за очень разные деньги. Т.е. нет шкалы "слабая ардуинка и более мощные решения", а есть параллельные линейки процессоров разных архитектур.

S>Я — любитель (хотя и на работу уже пару вариантов применения обдумываю, в том числе часы 4хсегментные из светодиодных лент, высотой в три этажа). Как я понял — пока что мне хватит ардуинки. Если перестанет хватать её — буду смотреть дальше уже осознанно и с пониманием.


Не понятна фраза "пока что мне хватит ардуинки". Тебе подходит любое решение влезающее по деньгам (а таких будет множество даже в низшем ценовом диапазоне). Но определяясь с выбором платформы, ты тем самым ещё и определяешься с выбором языка программирования/моделью памяти/компиляторов/IDE/библиотек и т.п. Так вот у ардуинки с этим всё достаточно специфично. Огромные готовые библиотеки компенсируются общей убогостью и отсталостью всего остального.
Re[5]: Arudino первые шаги
От: alex_public  
Дата: 12.01.16 21:20
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Во-первых, многие либы, написанные под Ардуино, работают и под АРМдуино (типа такой — там стоит Cortex-M3) — я лично проверял и пока не натыкался на какие-то проблемы.


Ну так как раз это я и пытаюсь объяснить Шеридану. Что оси "Любительское/профессиональное (ардуино и т.п. или нет)", "архитектура (avr/pic/arm и т.п.)" и "производительность (частота процессора, набор периферии)" являются абсолютно независимыми друг от друга и их можно менять каждую по отдельности под свой личный вкус. )

K>Во-вторых, обилие готовых библиотек — это как раз то, что нужно любителям, у которых нет целых отделов, занимающихся железом, и отделов, занимающихся софтом, и которым для поддержания мотивации нужны быстрые результаты, а не многочасовые корпения над даташитами.


Ну всяческие серьёзные библиотеки (под разные протоколы и т.п.) на самом деле везде имеются. У ардуинки просто есть ещё и всякая мелочь под простейшие действия или под свои бесчисленные платы расширений. Вообще мне кажется, что ардуинка — это такой идеальный конструктор для обучения старших школьников основном современной электроники. Там достаточно соединить готовые купленные блоки (главная плата и пара шилдов), а потом совместить в ide пару готовых модулей под неё и всё заработает. Однако для целей разработки, а не учёбы это всё выглядит крайне несерьёзно.
Re[6]: Профессионально\любитель
От: Sheridan Россия  
Дата: 12.01.16 21:21
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Sheridan, Вы писали:


_>Что-то ты вообще ничего не понял из написанного. Профессионально/любитель — это речь совсем не о месте работы, а о навыках человека.

Нет. Профессионал это тот, кто занимается чем либо профессионально, у него такая профессия. Если я уйду из админства в программисты, я перестану быть профессионалом-админом и стану профессионалом-программистом.

А то, о чём ты говоришь — это навыки, опыт.

_>Малоопытные используют готовые типовые решения, а мастера редко их используют, т.к. они обычно неоптимальны по всем параметрам. И соответственно мастер будет использовать одинаковый подход и дома и на работе.

Я подправил. Теперь правильно звучит, с этим согласен.

_>Далее, ты тут привлёк ещё одно "измерение", когда заговорил о производительности МК (типа ардуинки не хватит на коптер). Так вот это вообще отдельная тема и обычно не особо влияет на выбор платформы/архитектуры, т.к. сейчас почти у каждого производителя есть большая линейка моделей на любой вкус. Т.е. тех же AVR (для которых ардуинка создана) множество. А про Cortex-M я вообще молчу. Есть любой "мощности", за очень разные деньги. Т.е. нет шкалы "слабая ардуинка и более мощные решения", а есть параллельные линейки процессоров разных архитектур.

Ок, спасибо, буду знать.

S>>Я — любитель (хотя и на работу уже пару вариантов применения обдумываю, в том числе часы 4хсегментные из светодиодных лент, высотой в три этажа). Как я понял — пока что мне хватит ардуинки. Если перестанет хватать её — буду смотреть дальше уже осознанно и с пониманием.

_>Не понятна фраза "пока что мне хватит ардуинки". Тебе подходит любое решение влезающее по деньгам (а таких будет множество даже в низшем ценовом диапазоне). Но определяясь с выбором платформы, ты тем самым ещё и определяешься с выбором языка программирования/моделью памяти/компиляторов/IDE/библиотек и т.п. Так вот у ардуинки с этим всё достаточно специфично. Огромные готовые библиотеки компенсируются общей убогостью и отсталостью всего остального.
Ну, во первых, не пугай меня сложностью языка. Я писал на куче их, от форта и перла до ц++ и пэхапэ. Разберусь
А во вторых, просто дай линк на ебэй\алиэкспрес на стартеркит твоего любимого МК, я посмотрю, возможно и его прикуплю на потрогаать. Я ж сразу у IID линк попросил... Я вот хз, нопример, в этих МК, ну то есть ни в зуб ногой воащпе, но интересно потрогать\попрограммировать. И мне тупо трудно с нуля начать разбираться в моделях этих МК. Дай линк, пожалуйста.
Matrix has you...
Re[7]: Профессионально\любитель
От: Иван Дубров США  
Дата: 12.01.16 21:37
Оценка: 2 (1)
Здравствуйте, Sheridan, Вы писали:

S>А во вторых, просто дай линк на ебэй\алиэкспрес на стартеркит твоего любимого МК, я посмотрю, возможно и его прикуплю на потрогаать. Я ж сразу у IID линк попросил... Я вот хз, нопример, в этих МК, ну то есть ни в зуб ногой воащпе, но интересно потрогать\попрограммировать. И мне тупо трудно с нуля начать разбираться в моделях этих МК. Дай линк, пожалуйста.


STM32. Впрочем, я настоящую STM32 Discovery Board использовал, она что-то типа в $12 обошлась.
Re[7]: Профессионально\любитель
От: alex_public  
Дата: 12.01.16 21:57
Оценка: 2 (1)
Здравствуйте, Sheridan, Вы писали:

S>Нет. Профессионал это тот, кто занимается чем либо профессионально, у него такая профессия. Если я уйду из админства в программисты, я перестану быть профессионалом-админом и стану профессионалом-программистом.

S>А то, о чём ты говоришь — это навыки, опыт.

Это всё вопрос терминологии. ) ОК, если хочешь, я могу общаться в твоих терминах. )

S>Ну, во первых, не пугай меня сложностью языка. Я писал на куче их, от форта и перла до ц++ и пэхапэ. Разберусь


В том то и дело, что оно не сложное, а убогое — там ухудшенный C. А я предпочитаю как раз более сложное, но зато удобное и мощное — современный C++.

S>А во вторых, просто дай линк на ебэй\алиэкспрес на стартеркит твоего любимого МК, я посмотрю, возможно и его прикуплю на потрогаать. Я ж сразу у IID линк попросил... Я вот хз, нопример, в этих МК, ну то есть ни в зуб ногой воащпе, но интересно потрогать\попрограммировать. И мне тупо трудно с нуля начать разбираться в моделях этих МК. Дай линк, пожалуйста.


Вообще я говорил не про конкретный процессор или даже линейку, а про архитектуру. Любой из Cortex-M МК позволит тебе использовать обычный gcc и т.п. взрослые инструменты разработки. Если же говорить о моих личных вкусах, то я предпочитаю линейку STM32. Точнее там их даже линеек много: http://www.st.com/web/en/catalog/mmc/FM141/SC1169?sc=stm32. Что касается готовых плат на их базе, то такого добра на али тысячами: http://ru.aliexpress.com/wholesale?catId=0&initiative_id=SB_20160112133955&SearchText=stm32+board — бери любое, где достаточно периферии на твой вкус. Можно взять голую платку типа такой http://ru.aliexpress.com/item/1pcs-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-arduino/32478120209.html (её потом можно и в дело пустить) или рекомендуемую производителем плату для обучения: http://ru.aliexpress.com/item/Free-shipping-STM32F0DISCOVERY-Embeded-ST-LINK-V2-STM32-Cortex-M0-ARM-Evaluation-Development-Board-STM32F4-Discovery/32229023479.html

Да, кстати, а можно ещё и поддержать нашего производителя: http://milandr.ru/index.php?mact=Products,m6,default,1&m6hierarchyid=5&m6returnid=67&page=67 У него только чуть худшая поддержка разработчиков (библиотеки, инструменты, саппорт и т.п.), а в остальном он вполне на уровне и даже демо-платки есть: http://milandr.ru/index.php?mact=Products,m6,default,1&m6hierarchyid=17&m6returnid=67&page=67. Плюс есть особые исполнения и спец.приёмка. )))
Отредактировано 13.01.2016 13:24 alex_public . Предыдущая версия .
Re[6]: Arudino первые шаги
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.01.16 00:29
Оценка: +1
Здравствуйте, alex_public, Вы писали:

_>Ну так как раз это я и пытаюсь объяснить Шеридану. Что оси "Любительское/профессиональное (ардуино и т.п. или нет)", "архитектура (avr/pic/arm и т.п.)" и "производительность (частота процессора, набор периферии)" являются абсолютно независимыми друг от друга и их можно менять каждую по отдельности под свой личный вкус. )

Лично я выбрал атмел (дла и чего греха таить — вообще повторно заинтересовался этой темой) из-за наличия ардуино, для которого в инете бездонное море информации для самого разного уровня (от "впервые вижу" до эксперта).

_>Ну всяческие серьёзные библиотеки (под разные протоколы и т.п.) на самом деле везде имеются.

По большому счёту драйверов шин (UART, SPI, I2C и т.д.) достаточно, чтобы подключить всё что угодно. Но для этого нужно обладать навыками программирования и электроники, а у многих любителей они отсутствуют (по крайней мере на начальной стадии — потом всё равно разбираются).

_>У ардуинки просто есть ещё и всякая мелочь под простейшие действия или под свои бесчисленные платы расширений. Вообще мне кажется, что ардуинка — это такой идеальный конструктор для обучения старших школьников основном современной электроники. Там достаточно соединить готовые купленные блоки (главная плата и пара шилдов), а потом совместить в ide пару готовых модулей под неё и всё заработает.

И именно этим она привлекает новичком типа Шеридана, которым интересно что-то сделать, но отсутствует теоретическая база. Со временем они разберутся во всём этом (ибо нет там ничего сложного), но при этом избегут "шоковой" терапии, которая возникает в случае, когда тебе просто вручают девкит, даташит и требуют рабочее решение "уже вчера".

Мой случай особый, потому что я всё это изучал в универе, а потом просто карьера сложилась в другом направлении, и в итоге эти знания оказались невостребованными. Но занявшись этой темой, я довольно быстро вспомнил всё, чему меня учили, и потому в принципе без проблем могу взять любой МК и любое устройство, и заставить их говорить друг с другом при наличии даташита.

_>Однако для целей разработки, а не учёбы это всё выглядит крайне несерьёзно.

Это не что иное, как обыкновенный профессиональный шовинизм ("сначала добейся"). На самом же деле платформа Ардуино даёт полный и 100% доступ к железу (в Ардуино можно сделать 100% того, что можно сделать на "голом металле"), более того в Atmel Studio имеется импортёр проектов Адруино ИДЕ, который позволит плавно перейти от "скетча" в Ардуино ИДЕ к полноценному продукту на самом что ни на есть православном С/С++. Кстати сами по себе библиотеки для Ардуино написаны на самом обычном С++, и они обычно с минимальными изменениями переносятся на "голый металл" (собственно этим фактом и пользуется Atmel Studio, когда экспортирует скетчи).
[КУ] оккупировала армия.
Re[5]: Профессионально\любитель
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.01.16 01:38
Оценка: 3 (2)
Здравствуйте, Sheridan, Вы писали:

S>А если я захочу себе дома собрать гексакоптер, да еще с мозгами, то тут да, желательно нечто пошустрее ардуинки, ибо реагировать надо в реальном времени. Это — "любитель, хобби".

Я ещё хотел отметить один факт — в отличие от компа, железо которого обычно фиксированное, в мире МК, если производительности (или памяти, или портов ввода/вывода, или ещё чего) чипа перестаёт хватать, всегда можно добавить второй чип, и вынести на него какую-то часть общей задачи. Причём это можно масштабировать почти сколько угодно, при этом один из чипов будет "главным" — то есть он будет координировать работу всех остальных — а остальные будут "ведомыми", и каждый из них будет выполнять какую-то часть общей работы. Общаться между собой они могут, например, по шине I2C (используя ардуиновскую библиотеку Wire, общение займёт всего несколько строчек кода). Да, кстати, если ты сам ещё не нашёл — вот тут лежит документация (с примерами использования) по всем библиотекам и функциям платформы. Сохрани эту ссылку — она тебе пригодится много-много раз.
[КУ] оккупировала армия.
Отредактировано 13.01.2016 1:40 koandrew . Предыдущая версия .
Re[8]: Arudino первые шаги
От: Denwer Россия  
Дата: 13.01.16 06:22
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Ну и нафига тогда этот АРМ нужен для моргания светодиодами?


Я до сих пор не услышал ответа на вопрос, а почему нет? Почему за бесплатно не получить возможность кодить в нормальном С++, почему не получить возможность сделать на операционке FreeRTOS, почему не получить просто так больший объем памяти? Разница в цене просто копейки.
Re[10]: Arudino первые шаги
От: Denwer Россия  
Дата: 13.01.16 06:24
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Здравствуйте, Denwer, Вы писали:


D>>Ну так с этого и нужно было начинать, а не писать что 8-ми бит хватает.


K>Нет — важно именно то, что "хватает". А раз мне любого МК хватает, то в дело вступают другие факторы — в моём случае тулчейн. Если бы мне не хватало МК, то никакая ИДЕ не заставила бы меня иметь дело с платформой, которая не может решить моих задач.


Ну тогда при таком подходе вообще спорить какой МК лучше или хуже нет, каждый выберет по тулчейну. И это верно. Но постановка вопроса была в другом — какой МК использовать, без учета тулчейна. Во всяком случае он тут даже не упоминался. Разумеется, если у тебя опыт по атмелу, то SТМ32 явно не нужен.
Re[4]: Arudino первые шаги
От: enji  
Дата: 13.01.16 06:43
Оценка: 1 (1) +1
Здравствуйте, koandrew, Вы писали:

K> Использовать 32-битный контроллер для управления миганием светодиодов (и прочих подобных задач, где справился бы и 20-летний калькулятор) — вот это и есть настоящий идиотизм.


на самом деле армы удобнее. Особенно cortex-m3. Там единое адресное пространство, там больше ресурсов, для них больше инструментов и они дешевле, m3 специально заточены под си, там не надо писать на асме вообще (в том числе и стартап) и не нужны расширения компилятора (а для авр-ок нужны, как минимум для прерываний — ибо специальная инструкция возврата). Три адресных пространства (flash, ram, eeprom) тоже удобства не добавляют. В stm32 удобнее организована работа с периферией, да масса плюсов

Кроме того, они стоят так же или даже дешевле.

8-битники живы по историческим причинам, плюс в некоторых специфических областях, с повышенными температурными и прочими требованиями.

Ардуинки изначально были сделаны на мегах, эта модель самая распространенная и дешевая, и как ты совершенно верно замечаешь, ее более чем достаточно для большинства применений
Re[6]: Arudino первые шаги
От: enji  
Дата: 13.01.16 06:46
Оценка:
Здравствуйте, qwertyuiop, Вы писали:

Q>Да, именно. Увеличивается сложность, хотя бы потому что в АРМе нужно вначале запрограммировать тактовый генератор.


если использовать не голый арм, а какую-нить библиотеку, то все это сводится к вызову соотв. функции. Периферия настраивается чуть сложнее, зато она гибче (к примеру можно перекидывать ее между разными ножками.

Ну и единое адресное пространство, заточенность stm32 под си — это уже сплошные плюсы.

А если взять ардуино-арм, то всем этим занимается библиотека, скетчи те же самые будут работать
Re[5]: Arudino первые шаги
От: enji  
Дата: 13.01.16 06:49
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Это не идиотизм по одной простой причине: используя процессор типа Cortex-M я без проблем могу работать на полноценном C++14 со всеми его возможностями, а не на убогом Processing/Wiring.


ты не прав gcc-avr у меня счас 4.9, т.е. вполне себе актуальный. Подозреваю, уже можно и 5.х найти.

А Processing/Wiring — это просто плюсовая библиотека. Можешь использовать, можешь не использовать.
Re[4]: Arudino первые шаги
От: enji  
Дата: 13.01.16 06:53
Оценка: +1
Здравствуйте, alex_public, Вы писали:

_>Но если заниматься по серьёзному, то лучше сразу начать с низкого уровня: голый МК и чистый C++.


зачем? К голому МК нужна обвязка, ее нужно покупать / заказывать уже распаянную плату. Производители выпускают киты, но кит по уровню документации, библиотек, сообществу и т.п. до ардуинки обычно не дотягивает. И стоит в разы дороже.

Если цель — поиграться или что-то автоматизировать в доме — ардуинка самое оно
Re[6]: Профессионально\любитель
От: enji  
Дата: 13.01.16 07:02
Оценка: +2
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Sheridan, Вы писали:


_>Что-то ты вообще ничего не понял из написанного. Профессионально/любитель — это речь совсем не о месте работы, а о навыках человека. Любители используют готовые типовые решения, а профессионалы редко их используют, т.к. они обычно неоптимальны по всем параметрам. И соответственно профессионал будет использовать одинаковый подход и дома и на работе.


Имхо, ты не прав. Любительская ардуинка оптимальна по цене и по простоте использования. Именно поэтому я ее дома и применяю. А эффективность? Что это? Если ардуинки хватает для моей задачи — все ок. Если не хватает — есть ардуиноМега или ардуиноАРМ

А на работе есть схемотехники, есть конструктора плат, есть производство, есть отдел заказов — там ардуинки не в ходу
Re[6]: Arudino первые шаги
От: enji  
Дата: 13.01.16 07:04
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Однако для целей разработки, а не учёбы это всё выглядит крайне несерьёзно.


Какой разработки? Разработки на заказ специализированной фирмой — несерьезно. Разработки для себя в домашних условиях — почему нет?

У меня домашняя автоматизация на ардуинках + заказные платы расширения. Полет нормальный
Re[7]: Arudino первые шаги
От: DiPaolo Россия  
Дата: 13.01.16 07:14
Оценка:
Здравствуйте, enji, Вы писали:

E>У меня домашняя автоматизация на ардуинках + заказные платы расширения. Полет нормальный


Сам сейчас играюсь с Ардуино. Было бы интересно узнать, как Вы применили Ардуино в домашней автоматизации. Не могли бы рассказать?
Патриот здравого смысла
Re[8]: Arudino первые шаги
От: enji  
Дата: 13.01.16 07:57
Оценка: 2 (1)
Здравствуйте, DiPaolo, Вы писали:

DP>Сам сейчас играюсь с Ардуино. Было бы интересно узнать, как Вы применили Ардуино в домашней автоматизации. Не могли бы рассказать?


Я заказал плату — блок управления (развязанные входы, реле, диммеры, 1wire). На плате — разъемы для ардуинки и ethernet-шилда. Блоки управления стоят в щитке, и подключены к отдельной локалке. Ардуинки обрабатывают входы (антидребезг), температуру от датчиков по 1-wire и сообщают об изменениях серверу. Сервер выдает команды управления реле и димерами. Сервер — миникомп с линкусом, где крутится управляющая софтина.

Если сервер отваливается — блок переходит в автономный режим и сам управляет выходами.

Плюс к этому будут отдельные ардуинки в некоторых комнатах, туда прицеплен датчик освещенности и ИК-излучатель — для управления кондиционером
Re[5]: Arudino первые шаги
От: qwertyuiop Российская Империя  
Дата: 13.01.16 10:35
Оценка:
Здравствуйте, enji, Вы писали:

E> и не нужны расширения компилятора (а для авр-ок нужны, как минимум для прерываний — ибо специальная инструкция возврата).


Нет, прерывания оформляются как функция с именем ISR(), а аргументом пишется название вектора. Компилятор сам понимает что это прерывание, сохраняет слово состояния, определяет какие регистры используются этой функцией и сохраняет их.

E> Три адресных пространства (flash, ram, eeprom) тоже удобства не добавляют. В stm32 удобнее организована работа с периферией, да масса плюсов


Для программиста может и не удобно, но зато удобно для функционирования: благодаря этому команда выполняется за один такт. Из флэш читается команда и сразу же выполняется.
Я отвечаю за свои слова, а не за то как вы их интерпретируете!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.