"Умная" кнопка для управления лазером на 6-и ногом МК

Тема в разделе 'Другие интересные разработки', создана пользователем suslox, 26 мар 2013.

  1. suslox

    suslox Пушистикс Staff Member

    Данная поделка - это дальнейшее развитие темы с превращением кнопки без фиксации в кнопку с фиксацией, которая началась со схемы на MAX16054: http://lasers.org.ru/forum/threads/кнопка-с-фиксацией-на-базе-ИМС-max16054.3511/

    В связи с тем, что MAX16054 слишком дорогая, было решено сделать еще вариант данной схемы. Сначала была мысль сделать на логике в миниатюрных корпусах, уже была начерчена схема и тд, но потом возникла мысль все же поставить маленький МК и добавить в схему дополнительные возможности.

    Хотелось использовать 6-и ногие МК от Атмел, но они оказались в 2-3 раза дороже, чем маленькие МК от Microchip, и в итоге выбор пал на PIC10F220 в корпусе SOT-23-6.

    Схема макета проста и пояснений не требует:
    [​IMG]

    Для ее проверки были сделаны платки:
    [​IMG]

    [​IMG]

    В собранном виде:
    [​IMG]

    [​IMG]

    Программа, зашитая в МК, работает следующим образом:

    После включения питания МК находится в спящем режиме. На выходе (GP1) установлен лог. 0, светодиод на выводе GP0, дублирующий уровень на выходе погашен.
    После нажатия на кнопку без фиксации, подключенную к GP3, МК устанавливает на своем выходе лог. 1 и зажигает дублирующий светодиод.
    Далее работа схемы зависит от положения перемычки на выводе GP2.
    Если вывод GP2 подключен к земле, то МК будет держать на своем выходе лог. 1 до тех пор, пока не будет нажата кнопка или не будет снято питание.
    Если вывод GP2 подключен к линии питания (т.е на нем установлена лог. 1), то после включения МК начинает обратный отсчет порядка 180 сек, по окончанию которого самостоятельно переходит в состояние сна, установив предварительно на выходе лог. 0 и погасив дублирующий светодиод.
    Также в схеме имеется функция контроля напряжения питания, реализованная с использованием внутреннего АЦП, причем напряжение питания программной коммутацией подано на вход АЦП прямо внутри МК. Если напряжение питания опускается ниже примерно 2.9В, МК дважды с периодом 2 сек "мигает" уровнем на выходе и на дублирующем светодиоде и затем выключается и уходит в сон. Функция контроля напряжения питания работает при любом положении функциональной перемычки.

    На плате макета размещена гребенка контактов, предназначенная для внутрисхемного программирования МК. Распиновка сделана под программатор PicKit2.
    [​IMG]

    Прошивку в HEX выложу чутка позднее, в ней еще один маленький момент допилить надо...

    Благодарности:
    DeltaDesignRus за изготовление платок для макетирования.
    Josia с форума Радиокот - за написание прошивки для МК.
    murlb|ka с форума Радиокот - за помощь в прошивке МК и предоставлении программатора.
     
    Российская Федерация нравится это.
  2. Artemka

    Artemka Администратор Staff Member

    Круто) теперь только все это запаять на мини плату 5х10мм и вперед! Для какого лазера?
     
  3. suslox

    suslox Пушистикс Staff Member

  4. DeltaDesignRus

    DeltaDesignRus Пользователь

    Весьма интересно, ща искать чем их шить)))
     
  5. chem_kot

    chem_kot Модератор Staff Member

    Забавно :) Но сейчас полетят лопающиеся помидоры...
    В МК можно было добавить функцию контроля разряда АКБ, можно было сделать "умную кнопку" с хитрой последовательностью нажатий для включения, можно было добавить несколько режимов работы, использовав ШИМ - почему это всего лишь кнопка с фиксацией?:)
    Второе - зачем в конечном утройстве выводить штырьки для единоразовой прошивки? предсматриваешь маленькие пятачки на плате, паяешь, припаиваешь кусочки чудного МГТФ и припаиваешь их к разьему. Можно даже использовать комбинацию PLS-штырьки+термоклей... а потом отпаиваешь или отрываешь, как удобнее.
     
  6. suslox

    suslox Пушистикс Staff Member

    ммм???
    "Также в схеме имеется функция контроля напряжения питания, реализованная с использованием внутреннего АЦП, причем напряжение питания программной коммутацией подано на вход АЦП прямо внутри МК. Если напряжение питания опускается ниже примерно 2.9В, МК дважды с периодом 2 сек "мигает" уровнем на выходе и на дублирующем светодиоде и затем выключается и уходит в сон. Функция контроля напряжения питания работает при любом положении функциональной перемычки."

    вот эта идея довольно интересна в целях защиты от случайных нажатий..

    потому что больше ничего по сути не требовалось)

    так это же лишь макет! в конечном устройства мк будет запаян прямо на плату с драйвером и там реально будут или прощадки для прошивки или будет запаиваться уже заранее прошитый мк
     
  7. ОхотниК

    ОхотниК Пользователь

    классная штука, на ебае эти пики копейки стоят - 100р за 5шт.
     
  8. EVIL_USER

    EVIL_USER Модератор Staff Member

    Мелкий контроллер интересен, иногда бывает нужен.
    Если добывается проще чем тини10, то, вероятно даже имеет смысл под это дело пики раскурить.

    в остальном...
    Только мне кажется что это как-то не спортивно?
    Можно поинтересоваться, что ты здесь сам то сделал?)
     
  9. suslox

    suslox Пушистикс Staff Member

    :)совместное производство в некоторой мере. я ничего зазорного тут не вижу)
    мое тут сама затея, алгоритм работы, сборка макета, покупка мк и тд)))

    насчет спортивно или нет: я не умею писать под пик вообще (по атмелам определенные познания имею) и программатора у меня под пики нет. поэтому пришлось привлекать людей к написанию по и предоставлении программатора:)
     
  10. }|{B@N

    }|{B@N Пользователь

    Годная идея. Эти пики действительно дешевле MAX16054. Что касается макетки, на мелких платках действительно лучше не делать штырьков. Идеальный вариант-pogo pin, которые можно бесплатно надёргать из трупов мобилок, или платно на ибее. Вот вариант применения. Меньше и удобнее штырьков.
     
  11. EVIL_USER

    EVIL_USER Модератор Staff Member

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

    В общем, не понимаю и не одобряю.

    ЗЫ: Если я молчу в потенциально интересной теме, занчит я что-то нехорошее хочу сказать про зайцев. Не надо из меня это клещами тянуть.
     
  12. suslox

    suslox Пушистикс Staff Member

    }|{B@N, спасибо за идеи)

    EVIL_USER, извини, что потревожил. больше с такими вопросами обращаться не буду.
    просто я никогда в жизни и не думал, что обычная просьба высказать свое мнение может вызвать настолько негативную реакцию...:confused::oops:
     
  13. Rotgar

    Rotgar Пользователь

    Так интиресно где тиньки в SOT-23 покупаете? У меня ушло 7Кб на управление лазером юзал Attiny85. И нахер с PIC мудрить вы что сотнями драйверов собираете какая разница сколько обойдётся драйвер 200 руб или 300.
     
  14. EVIL_USER

    EVIL_USER Модератор Staff Member

    7Кб? Ты на ардуине штоле писал? Или ты действительно на 7кб нормального кода наворотил? Да у тебя лазер должен свистеть пердеть и плясать под музыку тогда)

    У меня в 7 Кб опрос акселерометра по i2c и запись данных на флешку (причем с файловой системой) влезала.
     
    suslox нравится это.
  15. suslox

    suslox Пушистикс Staff Member

    тиньки в сот-23 я как раз и не покупал. =)

    спокойнее!:) просто DeltaDesignRus просил сделать подешевле, вот и все)
     
  16. Rotgar

    Rotgar Пользователь

    Но 7Кб оно так вышло. Быстро и функционально. А вообще у меня уходит около 2Кб на обработку нажатия кнопки (длинное и короткое нажатие, короткое отпускание) далее таймеры наработки отдыха, лимиты работы, счётчик нажатий, включений, конфигурация портов для удобства разводки, лимиты включений нажатий за определённое время, блокировка кнопки, переключение режима включения через отключение питания, режим мигалки с очень широким пределом регулировки, переключение мощности в обоих режимах. Вообще я недавно прогю МК после настоящий системы сложно остановиться и код растёт на глазах. ПК то потянет столько угодно. И может так много выходит из-за компилятора. Хотя данная данный вариант я писал для лазера и фонарика и юзаю и там и там без переделок только в конфиге поставить нужные параметры. Да кода у меня всегда получается много.
    Не знаю как у вас бы меньше вышло.
     
  17. EVIL_USER

    EVIL_USER Модератор Staff Member

    Ну значит и правда тот самый случай когда свистит, пердит и под музыку пляшет))

    Но два кила на обработку кнопки? Как-то излишне жирно, вам не кажется?
    Конфигурация портов? На тини85, 4 байта, нет? Или что-то другое имеется в виду?


    А чтобы сильно не разгоняться, очень дисциплинирует тини13) Там порой за каждый байт бьёшься.
    Для фонариков и лазеров имхо этот тини13 самое оно.
    На 85-ом у меня всякая жесть вроде WAV плеера и USB генератора паролей работает (хотя то чужие проекты с минимальными моими изменениями). А сам я больше 3-х килов чисто своего кода ниразу ниасиливал (использование жирных вражеских библиотек не в счет, там хоть 100 забить можно).

    ЗЫ: вот из-за таких товарищей как Вы, нам уже и не хватает гига оперативы на десктопе... )
     
    suslox нравится это.
  18. Rotgar

    Rotgar Пользователь

    Да мой проект сейчас миним 850мБ оперативы ест и мне пофиг что он грузит 2 ядра а может и 3 загрузить. Конфигурация портов это назначение в прошивке ставится ассоциации порта с его функциональностью. Пример: 6 выв преобразователь, 5 нагрузка, 2 режим но или скажем: 2 преобразователь, 5 шим, 6 индикатор. Можно ставить произвольную конфигурацию. Я меньше тинек 85 не юзал и не собираюсь. Но попробуйте обработку кнопки сделать более компактным. Правда я часто юзаю Single.
    Но может не 2 это я так примерно определил когда проект начинал. Но у меня требования к железу растут быстрее железок и кого не устраивает пусть не юзают. Вообще пока мы пытаемся сравнить несравнимые вещи сравнивать надо оконечную одинаковую функциональность и потом говорить у меня то в 3 раза меньше учись. Я могу дать проект и сами посмотрите что там. Правда я его не завершил по полной задумке как занят другим но всё работает.
    А раз дело касается програмного управления то я разгоняюсь до предела и пихаю всё чем можно управлять только будет имею такой скудный 1 кнопочный интерфейс. Да еще забыл добавить что управление идёт полным требованиям к железу временные задержки включений/переключений гарантирют высокую надёжность и неубиваемость, пример: сначала нужно включать нагрузку потом преобразователь, выключать преобразователь потом нагрузку, при переключении режима выключать преобразователь на время. В моих драйверах повышалках нужно делать именно так. Я и ДУ сделал с записью сигнала и сравнение вместо того что бы в протокол вникать, результат всё работает протокол не важен любой сигнал можно записать, зыы у меня есть фонарик с ДУ:lol: что ж раз там atmega328p стоит можно же развлечься. И кому как мне моё время дорого а не память МК.
    Так же я еще не сделал умный режим пот с ним кнопка станет на самом деле умной.
     
  19. EVIL_USER

    EVIL_USER Модератор Staff Member

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

    По поводу сравнения одинакового функционала. Ну если есть желание, можно попробовать.
    Давайте я, например, опишу что я делал, а вы попробуете повторить.

    Значит просто фонарик. Одна кнопка.
    После подачи питания, контроллер сразу уходит в PWR_DOWN, где и пребывает, пока не трогают кнопку.
    Из режима ожидания короткое нажатие включает фонарь. Длинное включает строб. Строб отключается по отпусканию кнопки.
    Во включенном виде, короткое нажатие выключает фонарь. Длинное - регулировка яркости.
    Яркость начинает плавно изменяться от максимума до минимума и обратно. По отпусканию кнопки останавливается.
    При следующем включении включается тот уровень яркости, на котором выключили. Сохранение в EEPROM не нужно, после замены батареек можно и скинуть на дефолт (хотя, много места не займет).

    Теперь про строб. Там не меандр, там треугольник (на глаз почти не отличимо от синусоиды).
    Причем треугольник с постоянно изменяющимся периодом. Частота 7-11Гц, на одной частоте дается от 3-х до 7-и периодов. Частота и количество периодов выбираются псевдослучайно.

    Частота ШИМа такая чтобы даже при большом желании было невозможно разглядеть как он мерцает.

    Если что-то не вполне понятно, могу видео работы девайса скинуть.
     
  20. Rotgar

    Rotgar Пользователь

    Хи но я конечно не так уж прямо но в принципе всё просто в повторении проблем не будет но только после сборки одного девайса. Тогда вопрос про изменение яркости количество уровней? Но ШИМ то на 8мГц будет достаточной что бы не мерцало:cool:. А вот для точного повторения строба лучше бы какую то диаграмку нарисовать хотя всё понятно но так на всякий.
     

Поделиться этой страницей