slava68: (Default)
Языковой пакет для Atmel Studio требует наличия Visual Studio :-(( причём "маленькие" (бесплатные) версии его не устраивают, хочет "профешнл" или "Энтерпрайз". На сайте только веб-установка - за ночь устанавливается. Нашёл, как скачать себе на комп, получилось 4.8 гигабайта - неслабый такой "языковой пакетик" :-(
Но радовался я рано, русская языка всё равно не хочет устанавливаться. Несколько часов читал форумы MSDN, сайты Микрософта и ВижуалСтудио - прямо как наши чиновники отписки пишут - сто страниц "ниочём", я так даже не смог понять, зачем вообще нужен этот программный продукт (Visual Studio 2015). Помню, в 2010 году ставил себе версию VS2010 , тоже не понял, зачем она мне нужна :-)))
CodeBloks - бесплатный и по описанию, умеет всё тоже самое, размер 29 Мегабайт, т.е. в 500! раз меньше.
Как скачать с официального сайта не понял, увидел только, что хотят за этот "довесок" к русской языке для бесплатной программы - $499 :-(

Качаю сейчас 14.8 Гигабайта с самого замечательного сайта на свете - рутрекера (пока писал этот текст, уже скачалось) сразу с "лекарством от меркантильности".

Посмотрю, может быть в этот раз пойму, зачем скачал :-)))
slava68: (Default)
... с бесплатной доставкой :-))




Описание на китайском, но всё понятно:
Read more... )

Ну я то делаю это не ради самого устройства (хотя и ради него тоже), ради получения опыта, самообразования и обучения студентов.
slava68: (Default)
Европейцы теперь не только пули полезные для здоровья безсвинцовые производят, но и компоненты для электронных схем.
http://www.gaw.ru/html.cgi/txt/publ/_ineltek/pb-free/1.htm#1
Есть у меня партия резисторов с посеребрёнными ножками, сфоткаю вечером, так они почернели от времени и их очень трудоёмко задирать пинцетом, чтобы припаять :-(((
slava68: (Default)
Это так возбуждающе :-))) сделать код побыстрее и поменьше размером :-)))

Было время выполнения 231.88 микросекунд на операцию разложения числа в набор сегментов для индикатора, стало 196.0 микросекунд.
Отказался от операторов if... else в пользу switch... case. Но.... это не помогло избавиться от мерцания индикатора, причём никак не могу определить, в какой момент происходит "затык". Поступил "по военному" - запретил прерывания глобально, на время преобразования - всё стало отлично - на индикации (по осциллографу) это никак не сказалось. Теоретически, счётчик тиков должен теперь отставать на 200 микросекунд при каждом преобразовании, но это не так критично, да и исправимо программно (буду просто каждый раз прибавлять это время к переменной)

Стало: http://pastebin.com/Yyqc8fTY
В ассемблере ничего не понимаю, но уже вижу, что стало быстрее. Вот попробую ещё избавиться от "остаток от деления" % - достаточно "дорогая" операция получается :-(
slava68: (Default)
Попалось сейчас на просторах интернета:

Давайте попробую ответить на ваш вопрос со своей колокольни. Да, замечу что интересоваться (теоретически) современным положением дел и крайне поверхностно я начал около года назад, а приобрел впервые "для дома и хобби" Мегу2560 только к середине мая. Но, при этом лет, ой, уже более 25 (1985-1991) занимался разного рода "спектрумами", "специалистами", "океанами-240".. и даже ваял что-то свое на К1802-К1804 и К589, имея небольшой опыт работы на "бортовых вычислителях".

И так почему Ардуино и AVR, а не STM?

Read more... )
slava68: (Default)
Есть код преобразования четырёхзначного числа в символы, отображаемые на семисегментном индикаторе.

Индикация происходит по прерыванию от таймера примерно 45 раз в секунду, этого достаточно, индикатор не мерцает.
Если на время преобразования не запретить индикацию, то время от времени на индикаторе выскакивают "левые" цифры - происходит прерывание на этапе преобразования и отображается "as it is", что не красиво.

Запретил отображение до окончания преобразования - получились "дырки" :-( экран пригасает на мгновение, но это заметно, это некрасиво.


Вопросов, собственно два:
1. Поможет ли мне, если переписать часть кода "преобразование" на ассемблер ?
2. Кто поможет мне это сделать ? т.к. ассемблер я пока совершенно не изучал :-)

- можно на это забить, т.к. информация будет изменяться не чаще 1 раз в 30 секунд, либо при нажатии кнопки. т.о. можно получить подтверждение нажатия кнопки миганием индикатора - получится не баг, а фича :-)))

Для справки, часть кода вывода информации на индикатор:
Read more... )
UPD: простые и полезные основы оптимизации кода для AVR: http://microsin.net/programming/avr-troubleshooting-faq/tips-and-tricks-to-optimize-c-code-for-8-bit-avr.html
попробую сейчас оптимизировать свой кусок кода для увеличения быстродействия.

UPD2: Вот так видит этот код AtmelStudio7 http://pastebin.com/c4r04ZBr
время выполнения этого куска кода 227.88 микросекунд, период индикации у меня 25 миллисекунд. Непонятно, почему происходит наложение :-(((
slava68: (Default)
:-)))
Вот так вот, с первого раза получилась относительно качественная печатная плата :-) Реально, теперь, набравшись небольшого опыта, можно делать печатные платы за пару часов. На макетнице паять много дольше, и главное, что на макетнице я сам потом разобраться не могу, уже через месяц.

Этот пост, не "письками меряться" а как заметка на будущее для себя любимого :-))

Далее, только для членов нашего тайного общества:

картинки и тексты )

UPD: Нашёл причину проблемы с "reset", оказывается была "сопля" припоем!!! (стыд и позор мне) между 29 и 30 ножкой. Нашёл почти случайно, как только я задействовал инициализацию порта "D", плата "умирала". Осциллограф показал, что кто-то сразу после загрузки дёргает "reset". Вычислил программно "кто" - "D0", глянул в распиновку микросхемы, выводы соседние. Посмотрел в лупу - увидел. Поправил, вернул резистор 15к. Всё Ок.
slava68: (Default)
Все картриджи в принтерах старые и перезаправленные по пять раз.
Выбрал самый лучший, напечатал на обычной бумаге, перевелось отлично. Мне больше понравился способ прижимать руками, а не утюгом.
Утюг нагретый кладём вверхплатформой, на него кусок фольгированного стеклотекстолита, на него бумажку с рисунком и в теплых перчатках, пальцами проглаживаем рисунок.
После смывания бумаги получился рисунок тонера на плате. Неплохо, но волокна бумаги впеклись в тонер и дорожки стали с ворсинками, как инфузории :-(

Попробовал фотобумагу для струйника - она оказалась "пластиковая", начала плавиться прямо под пальцами :-(
Сейчас купил глянцевую бумагу для лазерного принтера. Переделал все, где возможно, дорожки на большую толщину.

Новый картридж для МФУ Xerox PE220 стоит 8000 рублей за оригинал и 6000 рублей за аналог :-(
Можно плату заказать китайцам.
Если посчитать, всё, что нужно для самодельного изготовления.....
slava68: (Default)
Впервые удосужился, нарисовал :-))) Попробую завтра изготовить с помощью "лазерного утюга". Обычно всегда делаю свои разработки на макетнице, на пи*дюльках :-))


Между делом Протеус поосваивал, может быть пригодится в дальнейшем.


может быть даже перед студентами завтра поумничаю :-)

Схемка простенькая, "двухканальная управлялка чем-нибудь в зависимости от температуры".
Два независимых порога сравнения хранятся в EEPROM. Возможность подключить внешний датчик с отключением внутреннего.
Индикация температуры и режимов работы.

Если устройство окажется интересным, то переразведу плату на SMD компоненты. Будем миниатюрной :-))) Может быть даже почти вся , кроме силовой части, поместится сзади индикатора.
slava68: (Default)
Вчера дошёл до такого момента, когда искать ошибку в коде, написанном в "блокноте" становится всё сложнее и сложнее :-(
Три прерывания, два таймера. Что там в регистрах - черт-ногу-сломит.
Использовал семисегментный индикатор для вывода отладочной информации - очень неудобно просматривать на нём два байта в бинарном виде :-)))
-----------
Устройство проектируемое, должно быть самым энергосберегающим, насколько это возможно, т.е. спать почти всегда, кроме выполнения работы и взаимодействия с оператором. Следить, когда температура понизится ниже нормы или повысится выше, чем задумано. Далее по этой информации управлять двумя релюхами на двух порогах срабатывания. (типа, "больше/меньше верхней границы" и так же нижней) Например, если зимой погас газовый котёл на даче, то слать СМС "Приезжай скорее, дорогой хозяин, будем сливать воду", Или "Что-то стало слишком жарко... может быть пожар начался ?"
Границы в EEPROM программируются с двух кнопок. Весь интерфейс "двухкнопочный" - короткое нажатие, длинное, супердлинное, две кнопки сразу. Можно ещё "даблклик" реализовать, только пока нет ему применения.

Уже два раза по полдня ловил косяки: первый - из-за плохого самочувствия написал код работы с таймером2 по даташиту от другой микросхемы. Исправил через 5 часов.
Второй раз, положился на быстрый поиск в интернете кодирования переднего и заднего фронта INT0 INT1 - в итоге, информация в интернете оказалась неверной. Повлияла на структуру алгоритма программы, два часа поиска причины неправильной работы. В итоге - прочитал Даташит - исправил. Работает.

сломать мосх )
Хочу попробовать освоить WinAVR GCC — мощный оптимизирующий компилятор. Полный опенсорц, кроссплатформенный, в общем, все радости жизни. Еще он отлично интегрируется в AVR Studio позволяя вести отладку прямо там, что адски удобно, наверное :-)

WTF !

Mar. 14th, 2016 12:00 am
slava68: (Default)
Весь день сегодня писал программу по даташиту от другой микросхемы :-(((
Вот что значит приболеть немного :-)
В Протеусе 8.1 ошибок не выдавало, но зависало в обработчике прерывания, никак не мог понять в чём беда, а потом я его обновил на 8.4 и всё перестало работать, вываливает кучу ошибок, типа TCCR2A не задекларированная функция в этом цикле , main.c:44: warning: 'TIMER2_COMPA_vect' appears to be a misspelled signal handler.
Я уже несколько компиляторов сменил, вставляю этот код в Ардуино - всё работает 8-0.

И вот только десять минут назад, на каком то форуме, внизу мелким шрифтом увидел, что в Atmega 8L регистры таймера, оказывается, называются иначе, исправил, пропали ошибки.
slava68: (Default)
Самый лучший ресурс, который мне попался за 3 дня изучения интернета:

https://startingelectronics.org/tutorials/arduino/ethernet-shield-web-server-tutorial/web-server-LED-control/

Всё понятно, наглядно, с примерами от простого-к-сложному.
slava68: (Default)


Первые 17 минут - демонстрация возможностей языка разметки HTML в уже загруженной странице - клацание по ссылкам, смена тем, адаптивность.
17:27 - power management
18:37 - графики
20:15 - демо осцилографа
21:02 - ваттметр
22:00 - работа с устройством (паяльная станция)
23:30 - подсистемы
24:00 - сенсоры
24:50 - cd карта
25:10 - сеть


Про исправления для "кривой" штатной библиотеки: https://geektimes.ru/post/259898/
slava68: (Default)
Задолбался уже переставлять карточки в трёх двухкарточных телефонах. То СМС из банка нужно получить, то проверить, что баланс карты не ушёл в минус и её не отключат неожиданно.
На Авито теперь объявления платные и приходится поддерживать по 10-15 аккаунтов на разные номера телефонов с переадресовками на один.

Задумал сделать "хранилище" на 20 SIM-карт с подключением к Ардуинке. Она будет их подключать к GSM модему и регулярно проверять необходимые параметры и получать SMS в автоматическом режиме.


З.Ы. не успел эту идею как следует придумать, как уже появился покупатель на такой девайс.
slava68: (Default)
по дисциплине "Цифровая обработка сигналов"
Набросал кодик http://pastebin.com/n30iKppt цифровой фильтр "скользящее среднее" на примере управления сервоприводом через фоторезистор.
slava68: (Default)
Неудачный результат, тоже результат... (с)

Чудо-транзисторы на 350 Ампер приехали вчера.

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

2 микросекунды на переключение, это 500кГц , но не заработало :-(
Почему то не потянула оптопара включать драйвер полевого транзистора :-(
Пришлось на драйвер пустить сигнал сразу с микроконтроллера. Оказывается Arduino выдерживает 12 вольт на входе порта :-)

Дома управлял маленьким моторчиком. Скорость практически не регулировалась, но на осциллографе я увидел вот такую фигню:

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

более 100 вольт обратного напряжения на транзистор, рассчитанный на 75 вольт.
Закономерно, что транзисторы сгорели и превратились в чудесные проводники, двигатель стал крутиться независимо от сигнала ШИМ.

Досадно, ну ладно. Выводы:
- транзисторы IRFP4368 реально коммутируют 200 Ампер, ножки не отгорают, транзисторы даже не греются на частотах до 500Гц.
- двигатель немного управляется, но не так, как предполагалось :-(
- при увеличении частоты переключения свыше 1кГц, транзисторы начинают греться. Передний и задний фронты "наклоняются", в этот момент транзистор имеет "большое сопротивление".
- Если подключить параллельно двигателю конденсатор 3000 Мкф, то у него отгорит ножка :-))) но потом его можно снова подключить :-) и двигатель перестаёт реагировать на ШИМ и частоту. Работает так, как просто от аккумулятора.
- когда в транзисторах пробивает защитные диоды, двигатель не реагирует на попытки управления им, крутит на полной скорости. Происходит это примерно на третьей минуте работы.
- в интернете ничего не нашёл, про управление скоростью вращения мощного двигателя постоянного тока на постоянных магнитах с маховиком на валу. А нужно будет ещё и реверс сделать. Вот, только такую книжку:
- может быть попробовать другой двигатель, с катушкой возбуждения ?
slava68: (Default)
приделал SD-карточку к термометру. Записал показания с частотой дискретизации 1 секунда.

опустил градусник в кастрюлю, налил молока, нагрел до необходимой температуры, немного остудил.


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



Я его порезал на кусочки и размешал.
Из 11 литров молока получилось три кусочка сыра.



115 грамм с травами. Будем постепенно пробовать вкусовую сочетаемость этого сыра с разными травами.
357 грамм будет лежать две недели. Начинаем эксперимент с выдержкой сыра.
1670 грамм съедим за несколько дней в виде "молодого сыра". 12 часов лежал под гнётом 19кг.

Оказывается, сыроделие - это совсем не сложно, и при наличии подходящего оборудования очень увлекательный и ненапряжный процесс :-)
Нужно будет купить форму для большой головки сыра.
slava68: (Default)
Снова делаем сыр. и мне показалось, температура кастрюли повысилась на 1 градус Цельсия, когда образовался сырный сгусток. Надо будет обязательно проверить в следующий раз, и если это действительно так, то можно будет сделать звуковую сигнализацию, что "уже готово" :-)
slava68: (Default)
​Я сделал управление частотой и скважностью ШИМ

http://pastebin.com/jBPRM5vQ

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

Profile

slava68: (Default)
slava68

August 2025

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 3rd, 2025 06:42 am
Powered by Dreamwidth Studios