Считаем синус быстро и точно: ч.3 - Практика

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


Читать дальше
  • +6
  • 08 октября 2021, 14:49
  • vix

Считаем синус быстро и точно: ч.2 - Точность вычислений

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




Читать дальше
  • +8
  • 08 октября 2021, 14:43
  • vix

Считаем синус быстро и точно: ч.1 - Теория

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

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


Читать дальше
  • +2
  • 08 октября 2021, 14:39
  • vix

Учим железки разговаривать, или ESP32 DAC и немного таймера

В ходе разработки одного очень интересного устройства (эх, лишь бы силенок хватило) я решил, что будет неплохо, если устройство это будет говорящим. Как нельзя кстати здесь пригодилось наличие в целевом микроконтроллере, ESP32 компании Espressif Systems, двухканального 8-битного ЦАПа.

В этом туториале (если его можно так назвать) я покажу, как можно быстро и довольно просто организовать проигрывание аудиофайла силами микроконтроллера ESP32. Это копия статьи, опубликованной мной на Хабре — так вышло, что инвайт сюда я получил позже, чем опубликовал статью там. На оригинальность не претендую, Америку не открываю.


Читать дальше
  • +2
  • 15 ноября 2020, 12:49
  • x8973

"CeleronTimer" C library топик-ссылка

Библиотека "Программных Таймеров" (реализация синхронных и асинхронных задержек в прошивке микроконтроллера). Особенности: Кроссплатформенность. Микроконтроллеры любой разрядности. Удобное и функциональное API. Нетребовательная к ресурсам МК. Дискретность отсчёта = 1мс. Достаточна для реализации пользовательского интерфейса (и прикладной логики) в устройствах на микроконтроллере.

"CeleronKeyInputLib" C library топик-ссылка

General C library (crossplatform) for "Buttons" and "Encoders" input processing in microcontrollers. Библиотека процедур для интеллектуальной обработки ВВОДА в МК (событий от Кнопок и Энкодеров). Особенности: Кроссплатформенность. Адаптивность к любому железу. Универсальное API. Событийная модель кода обслуживающего интерфейс.

Представляюсь сообществу - меня зовут Вениамин Кейвер.

Добрый вечер. Я — инженер. Правда не инженер-системщик, а инженер-строитель. Хотя строительные системы — тоже себе системы, но сейчас не об этом. Моя специальность — промышленное и гражданское строительство. В строительно-монтажной тусовке это примерно то же самое, что у айтишников — «Инженер-программист». То есть ты можешь быть кем угодно — от эникейщиков и сисадминов до хардкорных ASMачей вроде DI HALTa и гламурных Objective — Cишников с подведёнными бровями и этими Вашими айфонами.
Думаю аналогия понятна.
В институте каждый семестр давали несколько предметов, на изучение каждого из которых можно положить целую жизнь. Собственно о серьёзном хардкоре вроде сопромата и строймеха я даже не задумывался. Дальше я увлёкся технологиями строительного производства — и так там и остался, благополучно минуя проектирование фундаментов, расчёт стальных ферм, расчёт железобетонных конструкций, деревянные конструкции и прочий строительный ассемблер. После института я закрыл своё ИП и отправился работать по разным городам и специальностям. Дома поработал мастером на стройке, потом уехал в северную столицу — там с полгода поскучал за сметами, после устроился в строительную фирму и года полтора по хардкору мы с напарником работали руками — пилили на коленке по каталогам витражи, собирали вручную стеклянные крыши и фасады, всякие стеклянные бани и прочие извращения, не считая всякой мелочёвки вроде трубопроводов из полипропилена, ворот, всяких там окон и дверей. Когда поднатаскались — я открыл строительную контору и сейчас это мой основной источник дохода.
Так уж получилось, что я люблю пиво — люблю до безумия. Соответственно неплохо в нём разбираюсь и сам варю. Точнее со своим напарником, с которым мы витражи собирали на коленке. И так мы с ним заморочились пару лет назад по теме своего пива, что захотели собрать пивоварню. Начали думать, прикидывать, пробовать — и ушли в эту тему на 2 года — причём сейчас явно не окончание плавания! За 2 года мы набили себе столько шишек, наступили на такое количество граблей — что если выложить эти грабли в ряд — то можно было бы скосить половину китайской армии!
Тогда же — позапрошлой осенью в октябре я впервые узнал про микроконтроллеры — про то, что они вообще существуют, и про то, что это в принципе такое. В течении этих двух лет пришлось серьёзно подтягивать знания в области электрических цепей и микроэлектроники в целом. 2 года в формате read-only позволили мне сдвинуть с мёртвой точки пивоварню, чуть разобраться в avr -ках, немного разобраться в си, подтянуть ассемблер, одним из главных достижений я считаю то, что я всё-же разобрался в том, что такое ток, напряжение и как это всё, сцуко, работает!
У меня есть дневник, в котором я записываю всё подряд — там много чего и по электричеству, и по МК, и по пивоварне — я буду потихоньку публиковать части дневника здесь, с конкретными примерами, с вопросами, или с ответами для кого-то. Кроме того, я буду изредка писать и что-то житейское — куда без этого.
Ох, как много текста получилось — но вроде всё по делу.
В общем смысл в двух словах конкретно по тематике сайта: " Я буду пилить мозги для нашей супер-клёвой пивоварни и отдельные решения буду выкладывать здесь, а так же я буду публиковать заметки, которые связаны с этой темой"
Пилить начну на асме, дальше посмотрим.


Читать дальше

WIFI Модуль ESP8266 за 3,5 $ первые впечатления. + мост UDP<-->UART на LUA

На прошлой неделе получил из КИТАЯ 2 WIFI модуляESP8266 по «преступно» низкой цене 3,5$ за штуку.(думаю наши продавцы и курс вскоре исправят этот досадный недостаток :)
Как говорится ESP8266: Революция в мире интернета вещей
Если кто еще не читал про ESP8266, то тут достаточно хорошо все описано.


Читать дальше
  • +5
  • 17 декабря 2014, 21:32
  • alexhi
  • 3

Мои поделки: Универсальная макетная плата для Микроконтроллера (в DIP-корпусе) [ноябрь 2013]

Телефонный звонок:
— Алло, здравствуйте, скажите пожалуйста, есть ли в наличии микросхема XXYY-ZZ?
— Минуточку… Есть, но к сожалению, они сейчас только в DIP-корпусе…
— Да? Спасибо… а как пройти в дип-корпус ?


Макетка со схемой (обзор)

Содержание:

Далее, будет много фоток (все кликабельны и ведут на полноразмерное изображение)...

Читать дальше

Отработка узлов: Часы-Будильник-Таймер-Секундомер на МК ATtiny85V (часть 3)

В Устройстве используется индикация: статическая, на сдвиговых регистрах. Опытные электронщики уже наверняка знают: зачем в той схеме нужен ключ VT1, управляемый сигналом «Ready»? Но я, по началу, не знал насколько он важен...



Читать дальше