forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Микроэлектроника (http://forum.boolean.name/forumdisplay.php?f=175)
-   -   Arduino (http://forum.boolean.name/showthread.php?t=20542)

Phantom 11.01.2017 18:12

Arduino
 
Я тоже ненавижу паять, поэтому большую часть времени делаю так:


EvilOkta 13.01.2017 00:10

Ответ: Статика
 
О! Ардуинщикам привет =) потом покажу кому интересно, что у меня получилось ))

impersonalis 16.01.2017 15:10

Ответ: Статика
 
Цитата:

Сообщение от Phantom (Сообщение 311321)
Я тоже ненавижу паять, поэтому большую часть времени делаю так:


Ну прототип на макетной плате собрал - а дальше? Всё равно паять придётся. Платы (понятно, что не те, что на фото) сам делаешь - или где заказываешь изготовление по схеме? В чём схемы готовишь? Кстати, arduino как-то защищён от возможности считать прошивку с готового устройства и реверсировать её?

По теме: а что насчёт флешек, внешних HDD?

EvilOkta 16.01.2017 16:54

Ответ: Статика
 
Цитата:

Сообщение от impersonalis (Сообщение 311392)
Н Кстати, arduino как-то защищён от возможности считать прошивку с готового устройства и реверсировать её?

вроде есть возможность извлечь .HEX а потом дизасемблировать, но это изврат ИМХО

impersonalis 17.01.2017 13:30

Ответ: Статика
 
Получается, что после заливики программа будет выполняться всегда при наличии питания. Таким образом, чтобы "успокоить" подключённую плату нужно залить "пустышку" или есть кнопка стенд-бай?

EvilOkta 17.01.2017 14:27

Ответ: Статика
 
либо пустышку да, либо самому врезать в цепь питания кнопку ее отключающую. Может и еще способы есть.

St_AnGer 17.01.2017 15:41

Ответ: Статика
 
Ну, на AVR (да и многих других МК, возможно на всех) есть ножка Reset. Дёргая её можно перезагружать МК, а если просто подать постоянную логическую единицу - МК по факту будет в состоянии недо-stand-by. Но лучше программно повесить одну ножку на кнопку и этой кнопкой основную часть программы включать/выключать.

Phantom 17.01.2017 20:01

Ответ: Статика
 
Большинство моих поделок дальше макетки не уходят.
Платы нигде не заказываю и не травлю, если чо-то и паяю, то вот на таких макетках:



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

Прошивки пишу на чистом Си, ардуиновские среду и либы не использую.

Программа, если писать на Си, выполняется как обычно, точка входа - функция main, как только она закончилась, контроллер перестаёт что-либо делать (ну кроме прерываний, наверно). Прерывания - это что-то вроде отдельных функций, которые вызываются по определённому событию. То есть если сейчас выполнялся основной поток программы, то он останавливается на текущей инструкции, выполняется прерывание, а потом программа продолжает выполнение с того момента, где остановилась. Нужно постоянно следить за атомарностью и отключать прерывания во время выполнения операций, для которых важна целостность. Если где-то в основном потоке программы делаем counter++; и в то же время где-то в прерывании есть counter = 0; то всё обязательно в какой-то непредсказуемый момент пойдёт не так, потому что инкремент занимает несколько инструкций процессора и прерывание может вклиниться где-то между ними.

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

mr.DIMAS 17.01.2017 21:46

Ответ: Статика
 
Кстати реверс прошивки их HEX несложен, ибо инструкций у МК немного и алгоритмы там обычно применяются достаточно простые.

Есть еще один подводный камень с питанием МК. Если плавно снижать питание (например подключив к параллельно кондесатор на 2000 мкФ), то при достижении некоторого напряжения МК не может быть в каком-то определенном состоянии и начинает рандомно выполнять инструкции, иногда дело доходит до того, что повреждается прошивка. Я сам с этим столкнулся несколько раз. Теперь использую схему со стабилизатором напряжения (7805) и парочкой керамических конденсаторов маленькой емкости (1-2 мкФ) - это обеспечивает резкое выключение питания процессора при пропадании напряжения на входе стабилизатора.

Phantom 18.01.2017 00:35

Ответ: Статика
 
Офигеть, не сталкивался с таким. У меня пока только у одной ATtiny85 ножка сгорела.

impersonalis 18.01.2017 12:31

Ответ: Статика
 
Цитата:

Сообщение от Phantom (Сообщение 311434)
Большинство моих поделок дальше макетки не уходят.
Платы нигде не заказываю и не травлю, если чо-то и паяю, то вот на таких макетках:

Можно подробнее? Ссылку?

Цитата:

Сообщение от Phantom (Сообщение 311434)
Нужно постоянно следить за атомарностью и отключать прерывания во время выполнения операций, для которых важна целостность. Если где-то в основном потоке программы делаем counter++; и в то же время где-то в прерывании есть counter = 0;

Ну это знакомо. Это понятно. Тут эдакая "блокирующая многопоточность" получается? (Основной поток прерывается, вторичным, но никогда не выполняется одновременно с ним.) Таким образом из примитивов синхронизации - просто нативные переменные-флаги?

Цитата:

Сообщение от mr.DIMAS (Сообщение 311438)
Есть еще один подводный камень с питанием МК.

Я так понимаю - у того же Arduino и прочих каузальных интерфейсных плат всё уже сделано из коробки?

mr.DIMAS 18.01.2017 13:36

Ответ: Статика
 
Вроде бы там уже есть на плате стабилизатор.

Кстати, платы делать не столько сложно, сколько долго. Сначала рисуешь плату в Sprint Layout, потом печатаешь на лазерном принтере, подготавливаешь текстолит (пошкурить нулевкой, прокипятить в воде со стиральным порошком для обезжиривания). Далее переводишь рисунок на плату утюгом, потом начинаешь химичить по вкусу - хлорид железа (III) или персульфат аммония или лимонная кислота + соль + перекись. Медь травится довольно медленно, поэтому надо подогревать раствор и постоянно перемешивать его. Потом идет сверление отверстий, залуживание платы, и наконец пайка деталей. В итоге только на технологическую часть уходит около двух часов при наличии опыта, а на рисование платы в несколько раз больше (в зависимости от сложности, конечно). Так что да, макетка с пятачками это выход, но собранное устройство выглядит как правило неказисто.

Phantom 19.01.2017 07:41

Ответ: Статика
 
Отвечаю на вопросы Импера.

Вот смотри: Сборка на макетной плате разной степени убогости.

В своё время, когда жил с родителями, купил лазерный принтер с задумкой, что может буду травить платы, но на то время это были только идеи, на деле я электроникой почти не занимался. Сейчас у меня принтера нет и ставить его некуда, поэтому изготовлением плат даже не пытаюсь заниматься. Но даже перед тем как паять что-то на макетке с пятачками, я теперь рисую схему в Sprint-Layout, чтобы более компактно разнести все детали па площади платы и правильно развести землю. Ну а на пластиковой макетке собираю прямо на лету из головы. Написание прошивки занимает гораздо большее время, чем собирание деталек на макетке. Поэтому сначала как лего собираешь, а потом уже сидишь за ноутбуком и кодишь. Последнее время задумываюсь сделать беспроводной программатор и UART, потому что провода USB от ноутбука мешают, так как сижу обычно на диване, а ноутбук на коленях.

Синхронизация осуществляется при помощи манипуляции битов в различных регистрах. Есть бит, которым можно разрешить или запретить все прерывания одним махом, но кроме того есть биты в разных регистрах для манипуляции каждым прерыванием по отдельности. По умолчанию в компиляторах Си предлагается к использованию макрос при объявлении функции-прерывания, который блокирует все прерывания при входе в прерывание и разрешает при выходе. Таким образом все прерывания будут выполняться последовательно (прерывание непрерывно, лол). Но при желании можно добиться поведения, когда прерывания будут вклиниваться в другие прерывания, но говорят, что это может привести к проблемам. Я с ассемблером знаком мало, но вроде бы для компилятора вызов каждого прерывания - это довольно напряжная ситуация, потому что это происходит в непредсказуемый момент времени и нужно правильно эти ситуации разруливать. А при нескольких вложенных прерываниях, то ли регистров общего назначения на всё может не хватить, то ли ещё чо-то там. Может кто-то из булочников разъяснит подробнее.

В ардуиноподобных платах ставят стабилизатор на 3.3 или 5 вольт, смотря что требуется. При 3.3 вольт производителем микроконтроллеров не гарантируется стабильная работа на максимальной частоте. Кстати сказать, если вы не делаете систему управления ракетами, то нефиг делать завести ардуину хоть на 25 мегагерцах, хотя производитель рекомендует максимум 16. А если использовать внешний генератор тактовых сигналов, то мне кажется можно и выше. Только при разгоне учитывайте, что микросхема, реализующая UART (это как COM порт в компе, только с 5 вольтами на контактах), не будет работать с некоторыми значениями скорости (как правило слишком высокими). То есть если разгоняемое приложение предполагает работу с UART на высоких скоростях, то тестируйте заранее - будут проблемы 100%. Хотя может если брать не китайскую ардуину с нормальным UART, может проблем и не будет.

ABTOMAT 19.01.2017 19:26

Ответ: Статика
 


Олсо вот такого типа макетки — малаца, если по-быстрому проверить что-то. Но конечно не может быть и речи, чтобы потом на практике такое устройство юзать.




Можно так ещё, максимум-колхоз.

Phantom 20.01.2017 07:33

Ответ: Статика
 
Ни одна моя поделка не выглядела так страшно :-D

EvilOkta 20.01.2017 10:38

Ответ: Статика
 
я пока изучаю базу, пока с китая едут части моей будущей "умной розетки" )) хочу попробовать сделать свой вариант с блекджеком и остальным на базе модуля ESP-01
Ардуинку использовать буду только как RX-TX переходник по сути ))

Phantom 20.01.2017 10:58

Ответ: Статика
 
Цитата:

Сообщение от EvilOkta (Сообщение 311480)
я пока изучаю базу, пока с китая едут части моей будущей "умной розетки" )) хочу попробовать сделать свой вариант с блекджеком и остальным на базе модуля ESP-01
Ардуинку использовать буду только как RX-TX переходник по сути ))

Ты имеешь в виду для прошивки? Иначе зачем вообще нужна ардуина, если у тебя есть ESP, которая сама по себе может реле/симистор включать?

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

EvilOkta 20.01.2017 13:27

Ответ: Статика
 
Цитата:

Сообщение от Phantom (Сообщение 311481)
Ты имеешь в виду для прошивки? Иначе зачем вообще нужна ардуина, если у тебя есть ESP, которая сама по себе может реле/симистор включать?

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

Да для прошивки, взял на пробу самую первую ревизию. Хочу сделать колхозную систему "Умнай Домъ" с сервером на базе ардуино и розетками на базе ESP.
Из фич, которые не реализованы в обычных розетках хочу сделать режим работы по часовым/суточным/сезонным/годовым графикам с обновлением графика на сервере. Управлять все это будет электрическим отоплением. Как то так

impersonalis 20.01.2017 18:36

Ответ: Статика
 
Цитата:

Сообщение от Phantom (Сообщение 311459)
Синхронизация осуществляется при помощи манипуляции битов в различных регистрах. Есть бит, которым можно разрешить или запретить все прерывания одним махом, но кроме того есть биты в разных регистрах для манипуляции каждым прерыванием по отдельности. По умолчанию в компиляторах Си предлагается к использованию макрос при объявлении функции-прерывания, который блокирует все прерывания при входе в прерывание и разрешает при выходе. Таким образом все прерывания будут выполняться последовательно (прерывание непрерывно, лол). Но при желании можно добиться поведения, когда прерывания будут вклиниваться в другие прерывания, но говорят, что это может привести к проблемам. Я с ассемблером знаком мало, но вроде бы для компилятора вызов каждого прерывания - это довольно напряжная ситуация, потому что это происходит в непредсказуемый момент времени и нужно правильно эти ситуации разруливать. А при нескольких вложенных прерываниях, то ли регистров общего назначения на всё может не хватить, то ли ещё чо-то там. Может кто-то из булочников разъяснит подробнее.

Ok. Кажись, в универе кодили такое.

impersonalis 22.01.2017 01:08

Ответ: Статика
 
Цитата:

Сообщение от Phantom (Сообщение 311459)
Но даже перед тем как паять что-то на макетке с пятачками, я теперь рисую схему в Sprint-Layout, чтобы более компактно разнести все детали па площади платы и правильно развести землю.

Уже не первый раз о ней слышу. Лучшая в своём роде?

И что насчёт питания платы не от USB - нужно внешний блок питания готовый приобрести или самому чего собирать выгоднее?

RegIon 22.01.2017 10:36

Ответ: Статика
 
Цитата:

Сообщение от impersonalis (Сообщение 311505)
Уже не первый раз о ней слышу. Лучшая в своём роде?

И что насчёт питания платы не от USB - нужно внешний блок питания готовый приобрести или самому чего собирать выгоднее?

У многих есть стабилизаторы на борту, можно просто от 5+ (до 16 вольт) запитывать. Но все же не советую так делать, если на этом же питании что-то жрущее будет, типо приводов, высокоомных реле или т.д, так как просадки по напряжению могут возникнуть и будут ребуты или проскок тактов. Хотя я от 4.7 питал ардуинку и 2 китайских мотор-редуктора + bluetooth и ничего не происходило плохого.

impersonalis 23.01.2017 02:33

Ответ: Arduino
 
Ну вот случай: собрал я, предположим, схемку на макетке - хочу ПроЭкт обкатать на практике. А в месте использования из питания - только 220v. Что лучше: блок батарей (но ведь там ещё надо обвязку?), понижающий трансформатор от электросети или адаптер для USB от бытовой розетки?

St_AnGer 23.01.2017 02:50

Ответ: Arduino
 
Цитата:

Сообщение от impersonalis (Сообщение 311508)
Ну вот случай: собрал я, предположим, схемку на макетке - хочу ПроЭкт обкатать на практике. А в месте использования из питания - только 220v. Что лучше: блок батарей (но ведь там ещё надо обвязку?), понижающий трансформатор от электросети или адаптер для USB от бытовой розетки?

Обычная usb-зарядка(адаптер). Самый безгеморный вариант.

EvilOkta 23.01.2017 12:30

Ответ: Arduino
 
Цитата:

Сообщение от impersonalis (Сообщение 311508)
Ну вот случай: собрал я, предположим, схемку на макетке - хочу ПроЭкт обкатать на практике. А в месте использования из питания - только 220v. Что лучше: блок батарей (но ведь там ещё надо обвязку?), понижающий трансформатор от электросети или адаптер для USB от бытовой розетки?

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

UPD: Еще, кстати не рекомендуют ардуинку питать от 5 вольт - это по поводу USB. Стабильно работает в диапазоне от 7 до 12В, при пяти может начать логика сбоить при длительной работе. Я бы понижал трансом с 220 до 9 вольт (хотя так как руки из жопы, то в моем проекте идет все равно транс 220/5, а затем еще понижение 5/3.3 для двухступенчатой логики)

pax 23.01.2017 14:10

Ответ: Arduino
 
Эх, есть несколько ардуинок, но так и не добрался до программирования. Возможно когда-нибудь всетаки доберусь.

PS: кстати покупал вот тут: https://ru.aliexpress.com/store/1950989 у них сейчас и сайт на русском есть: http://robotdyn.ru/

Phantom 23.01.2017 17:54

Ответ: Статика
 
Цитата:

Сообщение от impersonalis (Сообщение 311505)
Уже не первый раз о ней слышу. Лучшая в своём роде?

И что насчёт питания платы не от USB - нужно внешний блок питания готовый приобрести или самому чего собирать выгоднее?

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

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

Phantom 23.01.2017 18:05

Ответ: Arduino
 
Цитата:

Сообщение от EvilOkta (Сообщение 311511)
Еще, кстати не рекомендуют ардуинку питать от 5 вольт - это по поводу USB. Стабильно работает в диапазоне от 7 до 12В, при пяти может начать логика сбоить при длительной работе. Я бы понижал трансом с 220 до 9 вольт (хотя так как руки из жопы, то в моем проекте идет все равно транс 220/5, а затем еще понижение 5/3.3 для двухступенчатой логики)

Чо-то я не понял. При питании Ардуины пятью вольтами, после стабилизатора будет около 4.3-4.5 вроде как. 4.5 вольт - это минимально допустимое напряжение, при котором производитель гарантирует стабильную работу микроконтроллера на частоте 20 МГц. В ардуине стоит резонатор на 16 МГц. Мне кажется тут всё норм, если с портов ардуины много тока не тянуть. Понижать до девяти вольт, чтобы потом понижать стабилизатором до пяти - это тратить четыре вольта впустую! ;)

UPD: Хотя в принципе логика тут есть, потому что в документации к стабилизатору AMS1117 фигурирует значение в 6.5 вольт при котором на выходе будет 5. То есть, я так понимаю, на входе должно быть не менее 6.5 вольт для стабильных пяти на выходе. А если уж на входе будет меньше, то на выходе вообще как повезёт.

Но кстати, ничто не мешает при большом желании запитать ардуину ПОСЛЕ стабилизатора. Вдруг в используемом блоке питания уже стоит свой стабилизатор и это заведомо известно. В общем да, надо рассматривать каждый вариант отдельно, если важны стабильность и оптимальность.

Phantom 23.01.2017 18:17

Ответ: Arduino
 
Цитата:

Сообщение от pax (Сообщение 311513)
Эх, есть несколько ардуинок, но так и не добрался до программирования. Возможно когда-нибудь всетаки доберусь.

PS: кстати покупал вот тут: https://ru.aliexpress.com/store/1950989 у них сейчас и сайт на русском есть: http://robotdyn.ru/

Я всё покупаю на алиэкспрессе, причём всегда сортирую и отбираю самый дешёвый товар, не глядя ни на рейтинг продавца, ни на тип доставки. 98% товаров рано или поздно приходит, брака практически нет. Если что-то не приходит или явный брак и товар стоит не 30 центов, а дороже, то открываю спор и деньги возвращают.

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

Я всё хочу получить уровень А4 на Али, но пока никак, не хватает 740 очков на данный момент. Сложно зарабатывать очки, когда большинство твоих покупок - это всякая ардиуноподобная фигня, стоимостью до двух-трёх долларов (за покупки ниже двух долларов очки не дают).

tirarex 23.01.2017 18:43

Ответ: Arduino
 
Забейте на дуины, конечно проект уровня Hello led оно потянет, но уже скоро захочется сконнектить ее с чем то более крупным ( интернетом например), и тут начнутся проблемы.
Лучше сразу брать Esp8266. Тут тебе и pwm и gpio и шины i2c uart итд, а самое главное что ее можно кодить из под arduino ide!
Проц там конечно дикий, за счет чего эта малютка тащит Wifi стек, крутит сервера (веб, веб сокетс итд) и еще время остается.

ps http://mysku.ru/blog/china-stores/48213.html

Phantom 23.01.2017 19:40

Ответ: Arduino
 
Цитата:

Сообщение от tirarex (Сообщение 311521)
Забейте на дуины, конечно проект уровня Hello led оно потянет, но уже скоро захочется сконнектить ее с чем то более крупным ( интернетом например), и тут начнутся проблемы.
Лучше сразу брать Esp8266. Тут тебе и pwm и gpio и шины i2c uart итд, а самое главное что ее можно кодить из под arduino ide!
Проц там конечно дикий, за счет чего эта малютка тащит Wifi стек, крутит сервера (веб, веб сокетс итд) и еще время остается.

ps http://mysku.ru/blog/china-stores/48213.html

Абсолютно не согласен. У меня есть и ESP8266, и Raspberry PI, но применение я пока нашёл только для ардуино. Arduino IDE я не использую, пишу на Си. И насколько я знаю по портам ATmega имеет более широкие возможности, чем ESP8266 (например 4 PWM канала).

Вот делал я самодельный эмбилайт. За каким фигом там нужна ESP8266? А для некоторых интересных штук никакой микроконтроллер и вовсе не нужен. Вот, например, левитатор. К сожалению на ютубе нет, поэтому как видео в посте не могу выложить.

tirarex 23.01.2017 20:46

Ответ: Arduino
 
Цитата:

Сообщение от Phantom (Сообщение 311522)
Абсолютно не согласен. У меня есть и ESP8266, и Raspberry PI, но применение я пока нашёл только для ардуино. Arduino IDE я не использую, пишу на Си. И насколько я знаю по портам ATmega имеет более широкие возможности, чем ESP8266 (например 4 PWM канала).

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

А на счет портов - были бы деньги :-D
У меня давно лежит по сути готовый проект esp8266 в формате Arduino UNO с полностью импульсным питанием, контроллером для лития, с поддержкой шима на всех gpio и полноценными 8шт ацп 16бит.
(цена такого девайса выходит не многим больше, +-280р)

Цитата:

Сообщение от Phantom (Сообщение 311522)
Вот делал я самодельный эмбилайт. За каким фигом там нужна ESP8266? А для некоторых интересных штук никакой микроконтроллер и вовсе не нужен. Вот, например, левитатор. К сожалению на ютубе нет, поэтому как видео в посте не могу выложить.


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


А вообще https://vimeo.com/125238491 (только с wifi)

mr.DIMAS 23.01.2017 21:22

Ответ: Arduino
 
Солидарен с Phantom. В большинстве штуковин с мк, больше ATtiny или ATMega совершенно не нужно. Кому не хватает выводов, используйте динамическую адресацию.

Я очень рад тому, что мк отсеивает желающих говнокодить на нем используя js или python - человек натыкается на си и бросает свои потуги, ну или говнокодит на ардуино и жалуется что ему не хватает 8-32 кб ппзу и <2 кб озу для своей поделки.

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

Phantom 23.01.2017 22:06

Ответ: Arduino
 
Цитата:

Сообщение от tirarex (Сообщение 311523)
А на счет портов - были бы деньги :-D
У меня давно лежит по сути готовый проект esp8266 в формате Arduino UNO с полностью импульсным питанием, контроллером для лития, с поддержкой шима на всех gpio и полноценными 8шт ацп 16бит.
(цена такого девайса выходит не многим больше, +-280р)

Ты тут что-то недоговариваешь и вводишь людей в заблуждение. Перечисли список периферии, которую пришлось подключить дополнительно к ESP8266, чтобы всё это заработало. ШИМ программный? Какая у него частота? Он работает одновременно с операциями Wi-Fi? Какая частота семплирования у АЦП? Если же всё это реализуют отдельные железки, подключенные по i2c или вроде того, то это всё можно подключить к любому микроконтроллеру, включая ардуино.

Мы же обсуждаем разницу между ESP8266 и Ардуино. Если нужен Wi-Fi, то безусловно надо брать ESP, если Wi-Fi не нужен, то ATmega (или даже ATtiny) или STM32 (с ним я пока не работал, потому что как правило возможностей ATmega328 хватает).

tirarex 24.01.2017 01:26

Ответ: Arduino
 
Цитата:

Сообщение от Phantom (Сообщение 311525)
Ты тут что-то недоговариваешь и вводишь людей в заблуждение. Перечисли список периферии, которую пришлось подключить дополнительно к ESP8266, чтобы всё это заработало. ШИМ программный? Какая у него частота? Он работает одновременно с операциями Wi-Fi? Какая частота семплирования у АЦП? Если же всё это реализуют отдельные железки, подключенные по i2c или вроде того, то это всё можно подключить к любому микроконтроллеру, включая ардуино.

Ессесно все на внешних девайсах, для шим PCA9685 , для adc пара ADS1115. Факт в том что в итоге я получаю устройство с более интересным функционалом чем дуина, а благодаря либам на все то добро не требуется устанавливать что то и крутить нестандартные команды.


Цитата:

Сообщение от Phantom (Сообщение 311525)
Мы же обсуждаем разницу между ESP8266 и Ардуино. Если нужен Wi-Fi, то безусловно надо брать ESP, если Wi-Fi не нужен, то ATmega (или даже ATtiny) или STM32 (с ним я пока не работал, потому что как правило возможностей ATmega328 хватает).

Как только ты пересилишь себя и разберешься с кодингом под есп, ты поймешь что связь с внешним миром очень полезная штука, а пока ты не разобрался, тебе будет хватать дуины.
(сам переезжал на stmf32, но никаких больших преимуществ между ней и стариком Atmega328 я не заметил)

Phantom 24.01.2017 02:03

Ответ: Arduino
 
Цитата:

Сообщение от tirarex (Сообщение 311527)
Как только ты пересилишь себя и разберешься с кодингом под есп, ты поймешь что связь с внешним миром очень полезная штука, а пока ты не разобрался, тебе будет хватать дуины.
(сам переезжал на stmf32, но никаких больших преимуществ между ней и стариком Atmega328 я не заметил)

У тебя логика какая-то обратная. Я не начинал разбираться с кодингом под ESP как раз потому, что пока не придумал, где бы мне понадобился Wi-Fi. Вот как только придумаю, тогда и сяду разбираться. У меня даже в коробочке лежат и ждут своего часа несколько модулей ESP8266 в разных вариациях.

impersonalis 24.01.2017 12:57

Ответ: Arduino
 
Цитата:

Сообщение от Phantom (Сообщение 311522)
самодельный эмбилайт

Как ощущения при просмотре - даёт дополнительное погружение?
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 1234 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

Phantom 24.01.2017 13:50

Ответ: Arduino
 
Цитата:

Сообщение от impersonalis (Сообщение 311532)
Как ощущения при просмотре - даёт дополнительное погружение?

Эмбилайт клёво, всем, кто приходил в гости, нравилось, просили сделать так же. Летом поменял телик с 27" на 65", теперь даже не знаю как на него навесить это всё. Лишний раз его со стены даже снимать не хочется, одному это сделать нереально никак, нужно, чтобы кто-то помогал. Кроме того он висит максимально близко к стене, а снизу он имеет утолщение, там некуда ленту со светодиодами технологично закрепить. Но я ещё когда ремонт делал, продумал кабель-канал, чтобы вокруг телика по всему периметру никаких проводов не видно было. Уже тогда думал сделать эмбилайт по всему периметру. Может когда-нибудь. Только теперь уже буду брать другие светодиоды, более технологичные, чем WS2812B.

P.S. Жена моя и не скрывается ни от кого, как и я.

impersonalis 25.01.2017 15:16

Ответ: Статика
 
Цитата:

Сообщение от Phantom (Сообщение 311517)
Просто когда мне надоело рисовать в тетрадке ручкой и перерисовывать по пять-десять раз, я подумал, что неплохо бы воспользоваться какой-то программой. Эта была первой, какую нагуглил. Пока что я в ней нарисовал две платы, меня устраивает.

Что-то я так и не нашёл сайта, где её можно официально купить (сайта авторов). Но, как я понимаю, она не бесплатная?

EvilOkta 25.01.2017 16:14

Ответ: Статика
 
Я вообще для рисования использую Fritzing, это конечно извращение, но в принципе для моих нужд пойдет. В чем плюсы:
1) Можно визуализировать схемы подключения в том числе и на макетной плате
2) Есть вариант посмотреть собранное в принципиальной схеме
3) *для извратов* можно трассировать дорожки для подготовки печатной платы, не пробовал но сама возможность радует.
Использую для визуализации собранных схем в своих уроках

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

St_AnGer 25.01.2017 17:22

Ответ: Arduino
 
Использую Proteus (ISIS и ARES) для создания схемы, её симулирования и разводки для последующего создания готовой платы. Пока что не встречал инструмента мощнее, в котором попутно ещё и обкатать всё сходу (при этом можно даже для МК писать прошивки не выходя из симулятора, крутотень же!).
Последним вот чего наваял (забыл ещё написать, что есть экспорт 3d модели):




Это плата для сервоприводов моего робота (в 3d показана "эволюция" разработки от большой к маленькой). Родные почти на всех сервах погорели, потому пришлось придумывать свою, с портвейном и куртизанками (в лице, как минимум, отдачи в "сеть" робота текущего положения качалки и вообще - общения серв друг между другом и с пижевикой). Размер платы мизерный, потому такое расположение элементов и стрёмная разводка дорожек. Осталось всё это дело сбацать для теста, а потом сбацать 20 таких рабочих плат... И надеяться на то, что не погорят моторчики в сервах, иначе все старания будут напрасны :-D но если они погорят, то тогда будет реализован полный потенциал платы - найду 12в моторы (что бы тока хавали в 2.5 раза меньше), тогда не нужно будет изобретать блок питания на 5В 40А (200 ВТ минимум, при размерах с кредитку) для питания всех серв :-D

Phantom 25.01.2017 20:15

Ответ: Статика
 
Цитата:

Сообщение от impersonalis (Сообщение 311563)
Что-то я так и не нашёл сайта, где её можно официально купить (сайта авторов). Но, как я понимаю, она не бесплатная?

Вот по ходу официальный сайт, цена: 49,90 €.
Но там ещё с версиями путаница какая-то, вот цитата с cxem.net:
Цитата:

Язык программы немецкий или английский. Отечественными энтузиастами был создан полностью работоспособный русифицированный вариант программы, получивший в сети наименование Sprint-Layout 6 (но не имеющая какое-либо отношение к официальной 6-ой версии, выпущенной в 2013 году). Интерфейс был изменен для большего удобства, добавлено большое количество электронных компонентов и сохранена совместимость со всеми оригинальными версиями Sprint-Layout до 5-ой версии.
Судя по всему, я использовал пиратскую версию, потому что определённо помню, что никому за неё не платил.

Phantom 25.01.2017 20:21

Ответ: Статика
 
Цитата:

Сообщение от EvilOkta (Сообщение 311564)
Я вообще для рисования использую Fritzing, это конечно извращение, но в принципе для моих нужд пойдет. В чем плюсы:
1) Можно визуализировать схемы подключения в том числе и на макетной плате
2) Есть вариант посмотреть собранное в принципиальной схеме
3) *для извратов* можно трассировать дорожки для подготовки печатной платы, не пробовал но сама возможность радует.
Использую для визуализации собранных схем в своих уроках

Не слышал про эту программу, но когда вбил в гугле в поиск по картинкам, нашло много таких картинок:



Видел такие картинки, даже было интересно как их делают, но не настолько, чтобы лезть гуглить.

А что за уроки?

Phantom 25.01.2017 20:29

Ответ: Arduino
 
Цитата:

Сообщение от St_AnGer (Сообщение 311565)
Использую Proteus

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

P.S. Жаль у меня осциллографа нет. Бывает нужен редко, поэтому как-то жаба душит его покупать. Да и хз какой выбрать.

EvilOkta 26.01.2017 00:06

Ответ: Статика
 
Цитата:

Сообщение от Phantom (Сообщение 311568)
Не слышал про эту программу, но когда вбил в гугле в поиск по картинкам, нашло много таких картинок:



Видел такие картинки, даже было интересно как их делают, но не настолько, чтобы лезть гуглить.

А что за уроки?

Да, картинка из той самой проги. Уроки на канале в подписи, пока немного (только начинаю) но планирую больше.
На канале кроме ардуино много и другого, если что )

St_AnGer 26.01.2017 13:20

Ответ: Arduino
 
Цитата:

Сообщение от Phantom (Сообщение 311569)
А я ни разу эмуляторами не пользовался, сразу всё в железе собираю. Не вижу для себя смысла в эмуляторах. Сейчас собрать на пластиковой макетке по времени занимает почти столько же, сколько и нарисовать в программе.

У меня под боком радиомагазина нету, а вот такие схемки как я привёл выше ВНЕЗАПНО могут потребовать опробовать в действии разные детали (те же транзисторы, или какие-нибудь декодеры, или, вообще, МК), которых у меня в наличии нет. Так что, для меня эмулятор крайне полезная штука, позволяет "собрать" быстро устройство не задумываясь о наличии деталей, всё протестировать, обдумать, а главное - собрать реальное устройство сразу в требуемом размере. Ну, и, можно не думать, что ты вот что-то не туда прирукожопишь и оно полыхнёт синим пламенем (а у меня такое было - пол дня навесным монтажём на макетке собирал сложную схему, собрал красиво, должно было работать просто чудесно, но где-то случилось КЗ, и, при подключении аккума на 12В и 120А пиковой токоотдачи, у меня испарилась половина навесных "дорожек" и погорели драгоценные для меня 74HC595 в купе с ATMEGA328-20PU). Да и разводить схему горррраздо проще собрав её в эмуляторе - оно может либо само развести (но не пользуюсь, ибо размеры получаются эпически-большие), либо показать куда и от куда проводники должны идти (возможно, другие программы тоже так делают, просто ничего кроме Протеуса не пробовал).

Phantom 26.01.2017 19:13

Ответ: Arduino
 
Я постоянно на алиэкспрессе заказываю детали и комплектующие, на почте уже паспорт не спрашивают, в лицо знают. Постоянно приходит не одно, так другое, так что постоянно есть с чем новеньким поиграться. Но вообще понятное дело, каждому своё. Если пилишь какой-то глобальный проект и детали нужны здесь и сейчас, то эмулятор, наверное, выход. А на радиорынке местном я только МГТФ провод покупаю.

L-ee-X 27.01.2017 00:45

Ответ: Arduino
 
Да, осциллограф очень важен для мк и работой шим. Я в свое время собирал ИК станцию на Atmega16, писал отдельный софт на ПК для управления станцией. И все это работаеь через com порт. Станция была собрана, верхний и нижний подогрев, регулеровка мощности верхнего и нижнего подогрева. Установка термопрофилей. Термопары использовал K типа уже с компенсацией холодного спая, на микросхеме max6675. Их три штуки стояло. Верх, низ ну и сама плата соответственно которую жарим. Времени на сборку и написания прошивки потратил много, но результатом очень доволен остался. :) вообщем атмега очень нужная вещь :)

impersonalis 27.01.2017 01:29

Ответ: Arduino
 
В общем с прогами - только платные варианты?

L-ee-X 27.01.2017 04:24

Ответ: Arduino
 
А зачем вообще ардуину использовать? Проще уже сам кристал купить, программатор и варганить, что душе угодно :) прошивку я писал на атмел студио. И она бесплатная.

Phantom 27.01.2017 04:38

Ответ: Arduino
 
Цитата:

Сообщение от L-ee-X (Сообщение 311575)
Да, осциллограф очень важен для мк и работой шим.

Осциллограф более важен при работе с аналоговыми цепями. Для работы с цифровыми схемами более полезен будет логический анализатор. Я делал на AVR очень просто, с максимальной возможной скоростью отправляем в UART значение какого-либо порта (логические уровни восьми ножек), и можем наблюдать с ПК восемь сигналов одновременно. ШИМ на десятках килогерц конечно не проанализируешь, но во многих задачах выручает. В общем-то я не представляю, зачем анализировать ШИМ. Разве только если ты его в аналоговый сигнал фильтром превращаешь и важна точность этого сигнала.

Phantom 27.01.2017 04:40

Ответ: Arduino
 
Цитата:

Сообщение от impersonalis (Сообщение 311576)
В общем с прогами - только платные варианты?

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

Phantom 27.01.2017 04:45

Ответ: Arduino
 
Цитата:

Сообщение от L-ee-X (Сообщение 311579)
А зачем вообще ардуину использовать? Проще уже сам кристал купить, программатор и варганить, что душе угодно :) прошивку я писал на атмел студио. И она бесплатная.

Я так и начинал, с ATtiny85 (маленький микроконтроллер с восемью лапами, но как бонус на нём есть ШИМ на частоте до 250 килогерц, если память не изменяет, чего ни на одной ATmega вроде бы нет). Но очень скоро понял, что ардуино мини и ардуино нано гораздо удобнее. Паять на самом деле я ненавижу, поэтому 99% времени провожу за пластиковой макеткой. Прошиваю до сих пор через программатор, загрузчик не использую. Пишу в Notepad2 + WinAVR.

L-ee-X 27.01.2017 16:42

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

L-ee-X 27.01.2017 17:41

Ответ: Статика
 
Цитата:

Сообщение от impersonalis (Сообщение 311505)
Уже не первый раз о ней слышу. Лучшая в своём роде?

И что насчёт питания платы не от USB - нужно внешний блок питания готовый приобрести или самому чего собирать выгоднее?

В моём случае от питания от USB были просадки, все работало, но данные по ком порту с потеряй приходили. Долго ломал голову пока не подцепил осциллограф и не увидил что пакеты приходят не полные. Виной всему было питание от usb

Цитата:

Сообщение от Phantom (Сообщение 311582)
Я так и начинал, с ATtiny85 (маленький микроконтроллер с восемью лапами, но как бонус на нём есть ШИМ на частоте до 250 килогерц, если память не изменяет

ШИМ можно написать и программный, если нет аппаратного. И прикрутить его к любой ноге.

Где то видео видел тип управлял 760 светодиодами на атмеге 16 вроде бы :-D вот это да, я даже боюсь на код взглянуть)))

Phantom 01.02.2017 20:16

Ответ: Статика
 
Цитата:

Сообщение от L-ee-X (Сообщение 311587)
ШИМ можно написать и программный, если нет аппаратного. И прикрутить его к любой ноге.

Где то видео видел тип управлял 760 светодиодами на атмеге 16 вроде бы :-D вот это да, я даже боюсь на код взглянуть)))

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

В большинстве микроконтроллеров AVR 8-битный ШИМ работает максимум на 62.5 килогерц. Согласно википедии в усилителях D класса используется ШИМ на частоте 500 килогерц, но я подозреваю, что бывает и больше. Если реализовать программный ШИМ, то частота будет в разы меньше 62.5 килогерц. Ну а если вспомнить рекомендации товарища Найквиста, то мы поймём, что максимальная частота воспроизводимого звука будет в два раза ниже, чем частота дискретизации (а частота дискретизации не может быть выше, чем частота ШИМ, в идеале частота ШИМ должна быть в разы выше). И в итоге мы не получим никаких стандартных 44100 герц дискретизации, да даже 8000 герц не получим!

В предыдущем посте я упоминал микроконтроллер ATtiny85 (есть варианты: ATtiny25/45/85), в котором есть уникальная фича (среди микроконтроллеров Atmel по крайней мере) умножения частоты. Это позволяет использовать восьмибитный ШИМ на частоте 250 килогерц, что уже теоретически может дать неплохое качество воспроизведения звука. Чтобы не быть голословным, вот вам таблица:


извиняюсь за качество, хостинг картинок такой

В самой последней колонке находим разрешение 8 полных бит, а в самой левой колонке смотрим частоту.

Но у этого микроконтроллера проблема в том, что несмотря на умножитель частоты, он урезан по всем остальным фронтам: он восьмивыводной, пинов катастрофически ни на что не хватает, нет аппаратного SPI. Я не понимаю, почему Atmel не реализовал эту фичу в популярных моделях ATmega, наверно, здесь скрывается какой-то маркетинг.

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

Но есть нюанс.

8-битный звук звучит очень паршиво, тут дело уже не в ШИМ, а просто в потере информации об амплитуде. Можно увеличить разрядность путём уменьшения частоты ШИМ, но на каждый выигранный бит разрядности мы теряем в частоте вдвое. Мы не можем себе позволить потерять в частоте даже в два раза, так как 62.5 / 2 = 31.25 килогерц, а это меньше стандартных 44.1 (а ведь мы стремимся хотя бы к минимальным стандартам).

Поэтому можно использовать два ШИМ канала для теоретического увеличения разрядности вдвое! На практике невозможно добиться точного 16-битного звука из-за существующего сопротивления переходов выходных ключевых транзисторов внутри микроконтроллера, разброса параметров и прочего несовершенства этого мира, но тем не менее при помощи многооборотного подстроечного резистора мне удалось получить достаточно чистый звук без артефактов, пусть с точностью не в 16 бит, но по крайней мере в 13-14 я так думаю.

Вы думаете, что это всё? Нифига подобного, если разогнать микроконтроллер путём подключения внешнего генератора или заменой резонатора эдак на 24-25 мегагерц, то получится реализовать 1613(14)-битный стерео звук! Кроме того таким образом ещё и частота ШИМ увеличится в полтора раза. Жаль у меня ATmega стабильно не заработала на 25 мегагерц. Возможно с внешним генератором вышло бы лучше, но не хочется плодить сущности. Тем более стерео звук мне пока не нужен. Поэтому эти эксперименты я пока отложил.

В соседней теме я рассуждаю о том, что хочу попробовать воспроизводить звук ЦАПом MCP4725. Он дешёвый, но 12-битный. В этом варианте я вижу плюсы в том, что не потребуется точная настройка конечного устройства по сравнению с двумя 8-битными ШИМ каналами, и кроме того здесь вообще не будет ШИМ, а значит не нужно фильтровать несущую частоту, да и настоящий ЦАП - это всегда лучше, чем ШИМ.

Начинал пост как ответ, а в итоге почти статья получилась. :cool:

Phantom 01.02.2017 20:45

Ответ: Arduino
 
Вот, кстати, нашёл свой архив с аудиозаписями экспериментов. Там три записи.
1) Пример 8-битного звука, конвертирован в моно из flac.
2) Пример 16-битного звука, конвертирован в моно из flac.
3) Пример звучания файла из пункта 2 при помощи двух ШИМ выходов AVR по технологии, описанной в предыдущем посте. Звук передавался с компа по UART при помощи node.js. Запись велась через линейный вход звуковухи Саундбластер.

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

EvilOkta 02.02.2017 11:08

Ответ: Arduino
 
а мне вчера приехал стабилизатор AM1117, который наконец дает мне возможность подключить ESP к ардуино без проблем с питанием для первых экспериментов.
Я конечно не такой знаток в микроконтроллерах, но интересно блин )))

tirarex 02.02.2017 11:58

Ответ: Arduino
 
Цитата:

Сообщение от EvilOkta (Сообщение 311662)
а мне вчера приехал стабилизатор AM1117, который наконец дает мне возможность подключить ESP к ардуино без проблем с питанием для первых экспериментов.
Я конечно не такой знаток в микроконтроллерах, но интересно блин )))



Артем Валерьевич 02.02.2017 12:00

Ответ: Arduino
 
А как прицепить 24 вольтовый шаговик к ардуине?


Evgen 02.02.2017 14:56

Ответ: Arduino
 
Попробуй через L293d. http://arduino-diy.com/arduino-shagovyy-dvigatel-osnovy.
Главное чтобы шаговик не ел более 400мА на обмотку. Для мощных движков можно использовать L298n.
На ардуину конкретно код не писал, но примеров уйма на эти микрухи.

Phantom 02.02.2017 17:49

Ответ: Arduino
 
Или транзисторами от материнки как я, они в пиках до 50 ампер выдерживают, судя по даташиту. При температуре 100 градусов по Цельсию до 35 ампер.

Evgen 03.02.2017 09:56

Ответ: Arduino
 
Цитата:

Сообщение от Phantom (Сообщение 311669)
Или транзисторами от материнки как я, они в пиках до 50 ампер выдерживают, судя по даташиту. При температуре 100 градусов по Цельсию до 35 ампер.

Транзисторами не пользовался. По поводу микрух, радиатор не помешает, хотя я его никогда не ставил. Так же есть отечественный аналог данной микросхемы с характеристиками по току 0,6А на обмотку от НТЦ СИТ . Даташит на русском К1128КТ4, можно почитать, что к чему. Ну и шилды есть готовые на l293d для ардуины на ebay. Сам ардуиной не пользуюсь просто знаю.

P.S. А так при полупроводники достаточно чувствительны к температуре, до 100 градусов я бы не доводил :)

Артем Валерьевич 03.02.2017 14:02

Ответ: Arduino
 
Все это конечно хорошо, только двигло у меня на 24 вольта

St_AnGer 03.02.2017 14:30

Ответ: Arduino
 
Цитата:

Сообщение от Артем Валерьевич (Сообщение 311682)
Все это конечно хорошо, только двигло у меня на 24 вольта

Ну и что? L298 и L293D - до 36 вольт могут проводить на двигло, емнип. 5 вольт с МК сигнал управляющий только. Тебе только источник питания 24 вольта найти/сделать надо.


Часовой пояс GMT +4, время: 12:41.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot