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 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.
На ардуину конкретно код не писал, но примеров уйма на эти микрухи.


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

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