Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » Старое » Лучше Arduino


Лучше Arduino

Сообщений 61 страница 90 из 286

1

У Arduino, как и у всякой системы, есть и плюсы, и минусы
Критиковать минусы легко
A попробуйте предложить альтернативу, убирая минусы, но не теряя плюсы
То есть, лучше Arduino по всем пунктам

Update
Вынес этот первый пост темы в шапку каждой страницы темы

Отредактировано vt (2019-04-13 11:01:43)

61

Eddy_Em написал(а):

если реально что-то супер-пупер-мега критичное, то делается отдельная система для этого.

Эхэ-хэх. Ваши бы слова да клиентам в уши. Про оптимизацию себестоимости не слышали? А про конкурентов? У которых (как всегда) все в два раза дешевле.
Каждый последующий МК усложняет и удорожает систему как в плане просто производства, так и в плане сертификации (в два раза больше документации, в два раза больше затрат на тестирование и сертификацию... ну и т.д.)

62

Atomic-dm написал(а):

В ардуино подходе важен быстрый сеюминутный результат в ущерб понимаю самого процесса и какой-то надежности продукта.

Это один из мифов про ардуино
Вообще вокруг ардуино множество мифов, я не великий знаток wiring [ядра ардуино], в инете есть статьи спецов с подробным разбором этой мифологии
Но даже на поверхностный взгляд, ардуино - хорошо спроектированная система, с чётким разделением на уровни прикладного [скетчи] и системного [ядро и библиотеки] программирования и хорошим и-фейсом [API] между ними
Да и 15 лет постоянного развития с колоссальными стресс-тестами и фидбэком дорогого стоят
В рамках своего концепта на прикладном уровне система практически безукоризненна, т.е. и рациональна, и функциональна, и проста, и удобна, и надёжна
Сравните, напримир, API uart-a CMSIS и Arduino
http://arm-software.github.io/CMSIS_5/D … e__gr.html
https://www.arduino.cc/reference/en/lan … on/serial/
С другой стороны, за 15 лет система явно устарела, потому что устарел сам концепт - риалтайм с точностью 1 мс и вот эти вот все жёсткие аппаратные и софтовые digital и analog, в которые надо уложиться как в прокрустово ложе

63

vt написал(а):

Это один из мифов про ардуино
Вообще вокруг ардуино множество мифов, я не великий знаток wiring [ядра ардуино], в инете есть статьи спецов с подробным разбором этой мифологии
Но даже на поверхностный взгляд, ардуино - хорошо спроектированная система, с чётким разделением на уровни прикладного [скетчи] и системного [ядро и библиотеки] программирования и хорошим и-фейсом [API] между ними

опять же , мы говорим про использования ардуино как платформы для своих проектов или уникальность создания самой платформы ? естественно создателям это было интересно

64

Про "arduino next", "ардуино 2019", ардуино 15 лет спустя, ардуино без родовых травм avr-ками )

65

Ну next я бы делал графический, накидал блочков, соединил между собой, вбил уставки и работает, а главное не будет ошибок т.к. не будет кода. А продвинутые смогут блочки собирать себе сами.

66

А я бы закопал это говно и свинцом залил!
Нельзя такое продавать. Крайне негативно это... И так быдла все больше и больше, а абдурина способствует!

67

Eddy_Em, ты путаешь тёплое с мягким
Если кто-то что-то наколбасил, скажем, на баше, то это никак не относится к кач-ву самого баша
И по итогу всё равно будет лучше, чем если это же было бы наколбашено на си [с диким оверхедом по убитому времени]

68

Блин, на баше можно сайты писать (у меня в бытность  работы преподом крутились всякие веб-морды с тестами для детей, чатиком и прочей фигней, все — на башевых CGI)! Но на сях это сделать безопасней и надежней.
Баш - хороший инструмент.
Но к абдурине это не относится. Фаллософия абдурины ущербна изначально.

69

Философия ардуино - RAD - rapid application development
C соотв плюсами и минусами как и у других rad-систем, delfi, например

70

Не, фаллософию абдурины лучше описывает выражение "хуяк-хуяк — и в продакшн"! Хотя, "RAD" — почти то же самое, но есть небольшая надежда, что хотя бы один "проект в стиле RAD" на миллион окажется хорошим.
Кстати, почему-то никто до сих пор не вспомнил "абдурину для богатеньких Буратин" — LabView с кучей железок от NI. Ведь абсолютно те же самые "хуяк-хуяк — и в продакшн", только еще и с претензией на "промышленный масштаб" (что пугает значительно больше, нежели "грузовой лифт на абдурине").
Даже систему управления одним совсем не маленьким телескопом когда-то сварганили на лабвью. Правда, помучившись с этим куском говна пару лет, поняли, что надо делать правильно.

71

Eddy_Em написал(а):

Не, фаллософию абдурины лучше описывает выражение "хуяк-хуяк — и в продакшн"! Хотя, "RAD" — почти то же самое, но есть небольшая надежда, что хотя бы один "проект в стиле RAD" на миллион окажется хорошим.

Так это же в любом случае целиком и полностью зависит от прокладки между стулом и клавиатурой
В ардуино обычный си, системное время, тикающее независимо ни от чего по прерыванию 1 мс [и всегда доступное через millis()], и простой цикл в main

Код:
for (;;) {
    loop();
    if (serialEventRun) serialEventRun();
}

Что ещё надо для счастья?

72

vt написал(а):

Так это же в любом случае целиком и полностью зависит от прокладки между стулом и клавиатурой

Нет! Потому что если прокладка между стулом и клавиатурой имеет внутри черепной коробки мозг с хотя бы одной извилиной, она абдуриной пользоваться не будет!

В ардуино обычный си

Нет, там С++. И жуткие библиотеки из говна и палок. Особенно меня бесит ногодрыг по любому поводу и тупые delay'и! По delay'ям можно быстро абдуринщика распознать, даже если он пытается под другой МК что-то писать.

Что ещё надо для счастья?

Полного понимания того, как все это происходит. Если понимания нет (а его у абдуринщиков и быть не может!), то это один-в-один как попытка гугола обезьян написать "Войну и мир". Подход абдуринщика именно такой: наобум потыкать все, что есть, авось получится. А если не получается, закатить истерику на абдуринофоруме (быдлохабре, "коте" и т.п.).

73

vt написал(а):

Вообще вокруг ардуино множество мифов, я не великий знаток wiring [ядра ардуино], в инете есть статьи спецов с подробным разбором этой мифологии
Но даже на поверхностный взгляд, ардуино - хорошо спроектированная система, с чётким разделением на уровни прикладного [скетчи] и системного [ядро и библиотеки] программирования и хорошим и-фейсом [API] между ними
Да и 15 лет постоянного развития с колоссальными стресс-тестами и фидбэком дорогого стоят
В рамках своего концепта на прикладном уровне система практически безукоризненна, т.е. и рациональна, и функциональна, и проста, и удобна, и надёжна

Сколько мифов... особенно про "функциональность" и "надёжность"... Остальные мифы... ваще вызывают смех...
Вот чего не понимаю... как можно восхищаться мифами... не имеющими ничего общего с реальностью... болезнь какая... штоле...

74

Eddy_Em написал(а):

Но, честно говоря, после STM32 писать что-то под аврку — как будто бы купаться в сточных водах! Непереносимое ощущение подкатывающей блевоты... Зачем народ покупает эти выблядки (да еще и бакса за 3!), когда за полтора бакса можно "blue pill" на STM32F103 взять, мне непонятно...

Как зачем??? Чтобы поддерживать мифы...
На STM32 эти мифы уже не прокатывают... На STM32 эти красивые мифы и превращаются в блевотину... Потому что неимоверно тошнит именно от пришедшего понимания... что верил в мифы... в лохотрон... т.е. ни во что...

75

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

Eddy_Em написал(а): ... за полтора бакса можно "blue pill" на STM32F103 взять...

:D  ну или самому любой "blue pill" сделать. на чем хочешь и как хочешь.

Отредактировано RA (2019-03-20 14:52:31)

76

Вот, кстати, очень не хватает "кетайских" STM32F042! Что-то не штампуют их китаезы тоннами, как F103. А ведь классный микроконтроллер. Был бы еще и 20-ногий (одновременно CAN, USB, UART и SPI) по 40 рублей за штучку…
Очень мне понравился CAN-интерфейс: никаких тебе головняков насчет нижнего уровня! Знай себе передавай-принимай.. И устройств дохренища можно на одну шину посадить.

77

Eddy_Em написал(а):

Очень мне понравился CAN-интерфейс: никаких тебе головняков насчет нижнего уровня! Знай себе передавай-принимай.. И устройств дохренища можно на одну шину посадить.

Это вы видимо CANOpen ещё не смотрели ;-)

Отредактировано MasterAlexei (2019-03-20 14:59:23)

78

про плюсы ардуны что-то вспомнилось...

79

MasterAlexei написал(а):

Это вы видимо CANOpen ещё не смотрели ;-)

Смотрел, у нас даже пара девайсов есть на этом угребище! Вот же инженегры, не сидится им: нет бы нормальный протокол использовать, нужно выдумывать постоянно какие-то грабли!
Особенная жесть, когда устройство само постоянно что-то в сеть срет, даже когда его об этом не просят!
Но если по-человечески делать, все отлично!

80

Eddy_Em написал(а):

даже когда его об этом не просят!

Если вы о CanOpen  - то именно об "этом" (срать, как вы выразились) это устройство и "попросили" - PDO пакеты настраиваются в устройстве (что и когда в этих пакетах выдавать). Ну это по стандарту так. А так конечно может устройство не следует стандарту... тогда, конечно, ой.

Eddy_Em написал(а):

Смотрел, у нас даже пара девайсов есть на этом угребище! Вот же инженегры, не сидится им: нет бы нормальный протокол использовать, нужно выдумывать постоянно какие-то грабли!

Кстати, зря вы так о CanOpen. Очень даже интересный протокол, с помощью которого можно максимально 127ми устройствам настраивать и опрашивать тучу тысяч параметров, чего не сделаешь, если использовать просто голимый CAN с его CAN ID в 11 бит. Кстати эти "грабли" именно этим ограничением CAN шины и вызваны, как я понимаю.

Отредактировано MasterAlexei (2019-03-20 16:54:43)

81

Eddy_Em написал(а):

Нет, там С++. И жуткие библиотеки из говна и палок. Особенно меня бесит ногодрыг по любому поводу и тупые delay'и!

Ну я ведь тебе рассказал и даже показал как оно устроено, так же точно как делаешь и ты сам
Делеи и библиотеки - дело вкуса, "преждевременная оптимизация - корень всех зол"

Отредактировано vt (2019-03-20 21:32:05)

82

Какого диалога вы хотите от человека, который отладку делает через UART... исключительно... и никак иначе. Человек не смотрит в сторону прогресса.

83

HHIMERA написал(а):

Сколько мифов... особенно про "функциональность" и "надёжность"...

Я думаю, что при тех оборотах, что имеет arduino.cc, у них есть из кого выбирать и чем мотивировать программистов

84

MasterAlexei написал(а):

Очень даже интересный протокол, с помощью которого можно максимально 127ми устройствам настраивать и опрашивать тучу тысяч параметров, чего не сделаешь, если использовать просто голимый CAN с его CAN ID в 11 бит.

Штааа?
Советую посчитать, сколько будет 2 в степени 11. И насколько это больше 127!!! А также, сколько можно информации воткнуть в одну стандартную восьмибайтную посылку. И сколько ее можно воткнуть в посылку canopen!

MasterElectric написал(а):

Человек не смотрит в сторону прогресса.

Какого прогресса? Зачем мне осваивать gdb, если в 99.9% случаев от него нет толку? Как я с его помощью проведу отладку протокола на сотне-другой килогерц? Да пока я посмотрю, что за значение у той или иной переменной, как просру все посылки к чертовой матери!!111

vt написал(а):

Я думаю, что при тех оборотах, что имеет arduino.cc, у них есть из кого выбирать и чем мотивировать программистов

"Программистов" или долбоебов?

85

Eddy_Em написал(а):

"Программистов" или долбоебов?

мне кажется это лишнее. конечный продукт востребован, а значит долбаеб кто-то другой, ну точно не они.

86

Eddy_Em написал(а):

Штааа?
Советую посчитать, сколько будет 2 в степени 11. И насколько это больше 127!!! А также, сколько можно информации воткнуть в одну стандартную восьмибайтную посылку. И сколько ее можно воткнуть в посылку canopen!

Я ж вам все же советую почитать про CANOpen. Ну хотя бы что ли документ CiA 301 "CANopen application layer and communication profile".
Для примера вот примерный список параметров (одна глава из хрен знает скольких) мотора Dunkermotoren:

Dunker

4.2 General Device Parameters ..........................................................................................................................................29
4.2.1 3000h - DEV_Cmd .................................................................................................................................................29
4.2.2  3001h - DEV_ErrorReg..........................................................................................................................................30
4.2.3  3002h - DEV_StatusReg........................................................................................................................................31
4.2.4 3003h - DEV_Mode................................................................................................................................................32
4.2.5 3004h - DEV_enabled............................................................................................................................................33
4.2.6 3020h - DEV_Code ................................................................................................................................................34
4.2.7  3023h - DEV_VersionSw .......................................................................................................................................35
4.2.8  3024h - DEV_VersionHw.......................................................................................................................................36
4.2.9  3031h - DEV_MaxUp .............................................................................................................................................37
4.2.10  3032h - DEV_MaxIm..........................................................................................................................................38
4.2.11  3050h - DEV_DinEnable....................................................................................................................................39
4.2.12  3051h - DEV_DinErrorClear ..............................................................................................................................40
4.2.13  3052h - DEV_DinStartStop ................................................................................................................................41
4.2.14  3055h - DEV_DinHwLimitPos, 3056h - DEV_DinHwLimitNeg, 3057h - DEV_DinHwReferenz....................42
4.2.15  3060h - DEV_DoutError .....................................................................................................................................43
4.2.16  3080h - DEV_HwLimitMode ..............................................................................................................................44
4.3 I/O Parameter .................................................................................................................................................................45
4.3.1 3100h - IO_AIN0.....................................................................................................................................................45
4.3.2  0110h - IO_AIN_VOLTAGE_Ue............................................................................................................................45
4.3.3  3111h - IO_AIN_VOLTAGE_Up............................................................................................................................46
4.3.4  3112h - IO_AIN_VOLTAGE_Um...........................................................................................................................46
4.3.5  3113h - IO_AIN_CURRENT_Im............................................................................................................................46
4.3.6  3114h - IO_AIN_TEMP..........................................................................................................................................47
4.3.7  3115h…11Ah - IO_AIN_Trim0…IO_AIN_Trim5...................................................................................................47
4.3.8 3120h - IO_DIN_P0................................................................................................................................................48
4.3.9  3128h - IO_DIN_Hall ..............................................................................................................................................49
4.3.10  3129h - IO_DIN_DipSwitch................................................................................................................................50
4.3.11  3150h - IO_DOUT_P0 .......................................................................................................................................51
4.4 Current regulator Parameters ........................................................................................................................................52
4.4.1  3200h - CURR_DesiredValue ...............................................................................................................................52
4.4.2  3204h - CURR_DesiredValue_Source..................................................................................................................53
4.4.3  3205h - CURR_DesiredValue_Reference ............................................................................................................53
4.4.4 3210h - CURR_Pi_Kp............................................................................................................................................54
4.4.5 3211h - CURR_Pi_Ki .............................................................................................................................................54
4.4.6  3221h - CURR_LimitMaxPos ................................................................................................................................55
4.4.7  3223h - CURR_LimitMaxNeg ................................................................................................................................55
4.4.8 3250h - CURR_Feedback .....................................................................................................................................56
4.4.9 3262h - CURR_Actual............................................................................................................................................57
4.5 Parameters For Rotational speed Control.....................................................................................................................58
4.5.1  3300h - VEL_DesiredValue ...................................................................................................................................58
4.5.2  3302h - VEL_DesiredValue_ScaleNum................................................................................................................58
Dunkermotoren GmbH  PHONE +49 7703 930 (0) FAX +40 7703 930217  Page 4 of 90
4.5.3  3303h - VEL_DesiredValue_ScaleDen .................................................................................................................59
4.5.4  3305h - VEL_DesiredValue_Reference ................................................................................................................59
4.5.5  3304h - VEL_DesiredValue_Source .....................................................................................................................60
4.5.6  3310h - VEL_Pid_Kp..............................................................................................................................................61
4.5.7  3311h - VEL_Pid_Ki...............................................................................................................................................61
4.5.8  3312h - VEL_Pid_Kd..............................................................................................................................................62
4.5.9  3313h - VEL_Pid_KiLimit .......................................................................................................................................63
4.5.10  3314h - VEL_Pid_Kvff........................................................................................................................................64
4.5.11  3317h - VEL_Pid_KIxR ......................................................................................................................................64
4.5.12  3321h - VEL_LimitMaxPos ................................................................................................................................65
4.5.13  3323h - VEL_LimitMaxNeg................................................................................................................................65
4.5.14 3340h - VEL_Acc_dV.........................................................................................................................................66
4.5.15 3341h - VEL_Acc_dT .........................................................................................................................................67
4.5.16 3342h - VEL_Dec_dV ........................................................................................................................................68
4.5.17 3343h - VEL_Dec_dT.........................................................................................................................................69
4.5.18  3344h - VEL_Dec_QuickStop_dV.....................................................................................................................70
4.5.19  3345h - VEL_Dec_QuickStop_dT.....................................................................................................................71
4.5.20  334Ch - VEL_RampType...................................................................................................................................71
4.5.21  334Dh - VEL_RampState ..................................................................................................................................72
4.5.22 3350h - VEL_Feedback .....................................................................................................................................73
4.5.23  33A0h - VEL_Pid_cyc_Time..............................................................................................................................74
4.6  Voltage Regulator Parameters (PWM Regulator).........................................................................................................75
4.6.1  3500h - PWM_DesiredValue .................................................................................................................................75
4.6.2  3502h - PWM_DesiredValue_ScaleNum..............................................................................................................75
4.6.3  3503h - PWM_DesiredValue_ScaleDen...............................................................................................................76
4.6.4  3504h - PWM_DesiredValue_Source ...................................................................................................................76
4.7 Underlying RotationalSpeed Controller SVel ...............................................................................................................77
4.7.1  3510h - sVel_PI_Kp ...............................................................................................................................................77
4.7.2  3511h - sVel_PI_Ki.................................................................................................................................................77
4.7.3  3550h - sVEL_Feedback .......................................................................................................................................78
4.8  V Positioning Controller Parameters .............................................................................................................................79
4.8.1  3732h - VPOS_FollowingErrorWindow.................................................................................................................79
4.8.2  374Dh - VPOS_RampState...................................................................................................................................79
4.8.3  3761h - VPOS_ActualCommandPosition .............................................................................................................80
4.8.4  3762h - VPOS_ActualPosition...............................................................................................................................80
4.8.5  3763h - VPOS_ActualFollowingError ....................................................................................................................81
4.8.6 3790h - VPOS_MovA.............................................................................................................................................82
4.8.7 3791h - VPOS_MovR ............................................................................................................................................82
4.9 Motor Parameters...........................................................................................................................................................83
4.9.1 3900h - MOT_Type ................................................................................................................................................83
4.9.2 3901h - MOT_Nn....................................................................................................................................................83
4.9.3 3902h - MOT_Un....................................................................................................................................................84
4.9.4 3910h - MOT_PolN ................................................................................................................................................84
4.9.5  3911h - MOT_Polarity ............................................................................................................................................85
4.9.6  3940h - MOT_HALL_Type.....................................................................................................................................86
4.9.7  394Ah - MOT_HALL_ActualPosition.....................................................................................................................87
4.9.8  3962h - MOT_ENC2_Resolution...........................................................................................................................88
4.9.9  396Ah - MOT_ENC2_ActualPosition ....................................................................................................................88

И это только глава специфических настроек  одного конкретного мотора. Мы используем в одном из наших изделий мотор BG45 PI. Там этих параметров дохера и больше.
Чисто по индексам (то, что нам дал производитель "напочитать", подозреваю, что там их больше) от 0x1000.00 до 0x1A00.00, 0x6000.00 - 0x6500.00, 0x4000.00 - 0x4C00.00 0x3000.00 - 0x3A00.00
И давайте, расскажите мне, как вы будете на всех одновременно подключенных 127ми (вы же говорите, что их больше можно) моторах все эти параметры адресовать, опрашивать, настраивать, И, заметьте, все моторы должны одновременно работать ;-)
А CAN шина не резиновая. У нее тоже есть свои временнЫе и скоростные ограничения.

87

RA написал(а):

мне кажется это лишнее. конечный продукт востребован, а значит долбаеб кто-то другой, ну точно не они.

Я не про изготовителей, а про потребителей этого дерьма.
Понятное дело, чем ты хитрожопей, тем больше у тебя способов нае.. сограждан! Вон, померший Жопс как лихо весь мир нае..вал! Или Билли, мать его, Гейтс, который гемор за баксы продает...
Так и эти сволочи: придумали "вундервафлю" и гребут баксы лопатой. Правда, китайцы посообразительней оказались и поняли, что только полный идиот купит абдурину за 10 баксов. Ну и стали клепать абдурины за 3 бакса. Хотя, за такой кусок дерьма на мой взгляд и полтора бакса стыдно брать должно быть!

MasterAlexei написал(а):

Я ж вам все же советую почитать про CANOpen

Читал я про него. И не понимаю, зачем нужно было городить такой дебильный протокол! Особенно ржачно, когда это нагромождение пихают в какую-нибудь элементарщину вроде абсолютного энкодера, где параметров-то — как кот накакал! Дебилизм чистой воды, рожденный в попытке унификаци.
Когда уже дойдет до этих великих инженегров, что любая попытка унификации ведет лишь к усложнению и удорожанию?
P.S. У нас на БТА на нормальной (не дебильному canopen, а человеческому низкоуровневому протоколу) CAN-шине сидит несколько десятков устройств: энкодеры, термодатчики, двигатели... И вся эта махина отлично без сбоев работает, опрос наиболее критичных вещей идет до 30 раз в секунду! И шина загружена лишь процентов на 30!!! Т.е. можно было бы еще больше железяк навешать, но уже столкнулись с ограничением по длине + большое количество устройств все равно понемногу нагружает шину, поэтому лучше использовать топологию "дерево": одна шина, на которой висят хабы, а уже на каждом хабе — устройства. На новых приводах мы так и сделали: четыре железяки сидят за CAN-хабом (moviPLC используем в качестве тупого транслятора туда-сюда, заодно опторазвязка!).

88

Eddy_Em написал(а):

И не понимаю, зачем нужно было городить такой дебильный протокол! Особенно ржачно, когда это нагромождение пихают в какую-нибудь элементарщину вроде абсолютного энкодера, где параметров-то — как кот накакал!

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

Только то и всего - расширяемость системы без танцев с бубном. Кстати, очень ценная фича. Особенно когда есть уже устоявшаяся заводская инфраструктура с парой тысяч устройств, и простой одного компонента оной стоит около лимона денег. Вот уж будет "ржачно" :)
Ну я думаю вы и сами знаете об этом.

Отредактировано MasterAlexei (2019-03-21 10:56:31)

89

На самом деле, есть гораздо более серъёзная проблема завязки на ардуино, чем все эти тараканьи бега за микросекундами и войны остроконечных и тупоконечных мк
Ардуино успел стать де факто стандартом связи с внешним миром для массы софта, для всего вот этого вот любительского "интернета вещей" с бездной протоколов
И гораздо легче делать что-то новое с обратной совместимостью с ардуино, чем радикально новое

90

Унитаз тоже стандарт связи с внешним миром... Но никто же это постоянно не муссирует... Если с ардуйней все так хорошо...  то зачем еще что-то улучшать??? В чем тогда сам вопрос???


Вы здесь » Микроконтроллеры » Старое » Лучше Arduino