ПИД-регулятор, часть 3, фантастическая

А фантастика в том, что он работает. И самое удивительно, что:

  • мне удалось найти внятную статью про них;
  • статья не обманула, и его можно действительно создать, не разбираясь в теории;
  • реализация содержит пяток арифметических команд и какой-то магией стабилизирует скорость!

Continue reading “ПИД-регулятор, часть 3, фантастическая”

ПИД-регулятор, часть 2, лирическая

После того, как механика была готова, я полез в интернет. Погуглил, почитал, покодил.
Программная “модель” вполне себе заработала, и даже коэффициенты подобрать удалось.
Но при попытке зашить это всё в Arduino, что-то пошло не так. Вроде бы всё работало, обороты считались, ПИД выдавал какие-то значения… Но, подобрать коэффициенты так, чтобы обороты стабилизировались, не удавалось.

Continue reading “ПИД-регулятор, часть 2, лирическая”

ПИД-регулятор, часть 1, техническая

Есть у меня редуктор. Вот такой:
Gear

И собрана на нём модель. Которая ездит кругами, ибо скорость у моторчиков разная. Да ещё и крутящий момент отличается 🙂
И захотелось мне сделать ПИД-регулятор.

Continue reading “ПИД-регулятор, часть 1, техническая”

CUPL, part V, немного практики

Есть ПЛИС и желание сделать сравнение адресов. Для определённости, есть ATmega8515, которая имеет 512 байт ОЗУ внутри, плюс регистры, плюс ввод-вывод… Итого, первые 608 байт заняты. Надо сделать так, чтобы для адресов 608-65535 декодер адреса выдавал логическую 1 для выбора нужной микросхемы ОЗУ. Язык CUPL сравнение не поддерживает совсем. Спрашивается – как решить задачу?
Continue reading “CUPL, part V, немного практики”

CUPL, part II

Язык CUPL по сложности находится где-то между PALASM и Verilog. То есть, логические выражения на нём уже можно писать, и компилятор даже попытается их оптимизировать. Есть ещё некие “расширения”, которые позволяют описывать триггеры и разные аппаратные особенности. Плюс конечные автоматы, таблицы истинности и симулятор. А вот сделать простое сравнение больше/меньше простым путём уже не получится. На мой взгляд, самым большим преимуществом языка CUPL является его простота/понятность.
Continue reading “CUPL, part II”

CUPL, part I

Ещё совсем недавно, лет 30 назад, ПЛИС были маленькими, а языки для их программирования простыми. Именно тогда и появился язык Cupl. Однако, если верить Хиллу и Хоровицу, он и сейчас является адекватным для программирования небольших ПЛИС.
Continue reading “CUPL, part I”

Ретро-ПЛИС

У меня есть давняя мечта – подключить память к AVR!
Увы, просто подключить память не интересно, а хочется разнообразия: портов, индикаторов, etc. А значит нужна ПЛИС. Изначально я хотел взять что-то типа EPM3032, но, мне захотелось DIP корпус и очень не хотелось учить Verilog/VHDL.
Continue reading “Ретро-ПЛИС”