ололо, оно живое!!!11


12e3c6b7162f

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

Вообщем оно ожило (блеат! ))) ) Почти пол года постигания инженерных изысков и вуа-ля, первый турбо-моторчик завелся на моем сконструяченом блоке управления

Прошивка от вемса, софтина для он-лайна оттуда-же, плата целиком своя, схема сильно допилена напильником

m50b25 turbo

(на заднем плане еще Юркин адов раллэ-компагтэ прогазовался разок)

При первом же выезде эта чудо-хрень на стероидах порвала кардан закрутив его в узелок ))) Надо бы донастроить и заехать на стенд померить сколько же лысы и момента получилось, раз железные палки узлами крутит ))

z_66878d30z_c8697d25

я ведь на плате русским языком самому себе написал

11

не помогает ))))))))

это все призрак залитого маслом стива джобса )))

DSC09040

Рубрика: Без рубрики | Оставить комментарий

Нет повести печальнее на свете чем повесть о запоротом портрете ))


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

Вообщем вот все что смог нарыть из того, что понравилось лично мне (вроде кликабельны)

1636544IMG_66791459738IMG_6693-2kr10kr11x_3a1d5755x_6a690e08x_6fc5fa85x_7dcdf5dbx_17ea261fx_41d3ce4bx_81e2d295x_d292d047x_2961f4c0x_09481dbdx_aa67b2a1x_acda9e8a23x_dbefbc60ddx_e1bcc5ecx_f945c0afx_fab2de30

1209247

1126847

и собственно усе о_О

Вообщем принимаются идеи по выходу из творческого кризиса, способные раздушить мою жабу на хассель … с другой стороны он же опять-же будет пылиться на полке (

Пойду съем негрустина ))

Рубрика: Без рубрики | Оставить комментарий

Сверление печатных плат на самодельном ЧПУ


Долго описывать процесс опять времени нет (пол четвертого утра блин), станок самоделка из вчерашнего поста, переломав все фрезы (ыыы Улыбка ) решил немного посверлить

Сверление печатных плат на ЧПУ самоделке

Жесткости по Z сильно не хватает (собственно посему и поломал фрез пачку – при касании меди фреза пробивается сквозь нее только под некоторым усилием, которого в дальнейшем достаточно для слишком сильного погружения – либо менять форму фрез либо усиливать Z – второе более логично и завтра попробую начать), при сверлении очень сильно не хватает и жесткости сверла (сверление без керна, сверло “танцует” особенно после того как подзатупилось – это китайская фиговина которой хватает на 20-30 дырок от силы) – это легко побороть либо уменьшив длину сверла (тупо зажать оставив меньший отрезок рабочим) либо поняв как в artcam’е можно изменять скорость для точки касания сверлом материала (т.е. что-бы при касании скорость погружения была минимальной скажем первые 0.1-0.3 мм, а потом уже становилась обычной)

Станок работает на 40% скорости – забыл в арткаме поменять скорость сверления и тупо поменял общую скорость в мач3, благо что глобальных перемещений нету. Скорость работы легко поднять в 2-3 раза во-первых собственно вернув 100% скорость для Х-Y и для перемещения Z вверх (вообщем оставив низкую скорость только на погружение сверла), во-вторых уменьшив “безопасную высоту сверла” с 5мм до например 2мм (это высота на которую уезжает сверло в момент перемещения от дырки к дырке) и в-третьих убрав лишнюю глубину сверления (сейчас выбираются 4 мм – чегой-то меня переглючило что текстолит толстый у меня)

Вот

ПыСы в качестве шпинделя работает proxxon 50 – до сего дня я либо сверлил мощным хитачевским шуроповертом в режиме дрели, либо на работе на старом совеццком станке сверлильном, сегодня первый раз попробовал сей проксон (в руках держа т.е. без станка) … я офигел от того, что может даже китайское сверло на скорости 20,000 оборотов при отсутствии люфтов в приводном механизме (шпинделе собственно) и отличном цанговом патроне (родной проксоновский) … во-первых сверлить стало в 10 раз быстрее и 10 раз легче чем шуроповертом, а во-вторых в 5 раз быстрее и 5 раз легче (!) чем на станке … я совершенно не ожидал такого результата – если раньше сверловка печаток была мукой, то теперь это почти развлечение, притом сверлил опять-же без кернения по чистой меди (сверло кстати не “танцевало” – рука не нуждается в хитрых настройках арткама для регулировки скоростей Улыбка ) Понятно что на дырках больше 10 мм проксон станку проиграет, но на 0,5-1мм точно выигрывает, на неделе попробую 3 и 5мм как наиболее ходовые у меня лично

Рубрика: Без рубрики | Оставить комментарий

Самодельный фрезерный станок


Продолжение темы о печатных платах на плоттере )

Сейчас писать сил нет, вообщем почти собран и почти работает, завтра надеюсь уже фрезернуть первую плату

Пока только видео в хронологическом порядке (интересные в конце соотв)

Проверка оси Y
Проверка оси Z
Оси X и Y
Первый запуск–проход мимо, фрез, возврат в ноль, сверление
Второй запуск–второй проход (проверка повторяемости)
Ручной и авто режимы управления
Mach 3 запущенный в радмине и рулящийся с ноута (НЕ управляйте станками в ручном режиме из под радмина–лагает часто и ходы “залипают”–можно кого-нить убить случайно если станок большой )
Рубрика: Без рубрики | 3 комментария

Печать печатных плат … на плоттере!


Всегда хотел автоматизировать процесс создания печатных плат – чтоб нажал на кнопку и через некоторое время достал готовую плату ) В итоге было принято решение собрать простенький фрезерный станок с ЧПУ. Решение то принять просто, а вот как его собирать было совершенно не понятно )) Да в интернетах много тематических форумов, а на ютубе есть вкусные видяшки, но беда в том что на форумах бОльшая часть теоретиков и масса инфы “это работать не будет” при этом мЕньшая часть практиков доказывает что “это спокойно работает” – вообщем проторенной дорожки к успеху увы нет – есть куча путей но точного ответа “это хорошо и правильно” увы нет. В итоге для начала решил купить перьевой плоттер на тему посмотреть как оно работает _по правильному_ (а плоттер обеспечивает три трудно достижимые вещи – отличную точность и повторяемость, отличную скорость, смену инструмента, правда при этом он понятное дело не может работать с какой-либо более-менее серъезной нагрузкой). Погуглив нашел единственное обьявление о продаже – заманчивый Houston Instruments 1117 — списался, созвонился, поехал покупать. При покупке мне попутно предложили прикупить еще и куски недоделанного самодельного станочка – ессно я согласился, т.к. сильно был удивлен что при как минимум пяти решениях “это работать не будет и это не правильно” заготовки имели очень незначительные люфты – т.е. работать по идее должны были как-раз очень хорошо ))

Покрутив в руках плоттер, передумал разбирать его на логику (а логика у него хороша – рулится HPGL’ем по lpt и com, совместим с hp 7475a (т.е. можно печатать сразу из автокада) и с 880ым roland’ом (т.е. можно печатать из всего остального) – по сути переделать выходные мосты для управления моторами помощнее, придумать как организовать делитель для координат (у плоттера привод ременной, в станке хотелось пару гайка-винт которая попутно работает редуктором) и можно собирать самый просто-управляемый станок в мире – принтер по сути (а для фрезеровки плат 3ья ось то по сути и не нужна) без сложных CAM’ов и необходимости все держать в G-кодах) ибо был он больно хорошо собран и отлично работал по прямому применению. Как результат решил сделать логику самостоятельно (к заготовке прилагался и комплект силовых драйверов и интерфейсная плата, но не было ни доков ни софта – чем разбираться проще сразу собрать с нуля под стандартный step-dir и пользовать унифицированный софт типа mach 3) и вообщем не трогать плоттер а делать нормальный фрезер. Логику ессно было принято решение делать на плоттере ))) Несколько дней ушло на эксперименты с чернилами (увы нормального пера мне в комплекте не досталось) – в инете ходили слухи что при травлении в хлорном железе хорошо работает стадлеровкий люмоколор красного цвета, но ни такого маркера ни чернил отдельно я увы в продаже в питере не нашел – под заказ за многоденег покупать не стал, в итоге были переброваны кучка еддингов – остановился на 404ом (обычный, 4048 смывается водой) с толщиной 0.75 – этого хватает для рисования SOIC но не хватает (слишком жЫрно) для рисования SSOP, впрочем в логике фрезера ssop и не нужен. На фото DIP корпуса на переднем плане и SOIC на заднем

IMG_3643

В свежей горячей хлорке чернила еддинга смываются, в итоге пришел к тому что надо делать три прохода подряд (просто отправлять печать три раза сразу) – тогда слой получается пожирнее и чернила выживают травление довольно не плохо

Вот рисование первого и второго проходов, заодно котэ и цабак )

Первый проход

 

А вот второй проход – можно оценить повторяемость

Второй проход, со звуком )

 

Попутно была обкатана технология печати двух сторонних плат (на совмещение уходит секунд 30, совмещение получается идеальное!), потом расскажу если будет интересно.

Поигравшись с маркерами понял что это все не то, надо либо лаковый маркер (есть у еддинга но не нашел в наличии тонких (кроме как в чип-и-дипе по 400 рублей при условии что везде они заявлены по 80-100), заказывать было лениво) либо перо с лаком. В итоге заправил 404ый еддинг обычным подкрашенным цапон-лаком … получилось отлично )) НО лак немного более текуч (даже если его консистенция, которая подбирается пропорциями растворителя, довольно густа) и надо брать маркер с головой тоньше.

На фото видны переходные процессы в местах касания маркером платы, надписи выполнены вручную (забыл про них)

IMG_3728IMG_3729IMG_3731

Во время травления лак становится блестючим и хорошо видно его состояние:

IMG_3743

После травления и смывки:

IMG_3749

Надо совершенствовать технологию нанесения лака – видно что поверхность под лаком сохранилась идеально (остались даже шероховатости от губки) но появились два протрава (не критичных совершенно ибо не сквозных) – видимо в этом месте лак лег тонким слоем

IMG_3752

В целом технология печати плат на плоттерах вполне себе рабочая, надо собрать металлическое (ибо лак разъедает пластик очень оперативно) перо с рабочим кончиком в 0.3мм (а это не сложно вообщем-то) и разобраться почему ARES печатает что хочет (видны и залитые отверстия в дип корпусе в последней плате и кривоватые SMD площадки – при печати из автокада все площадки и дырки в выводных элементах печатаются ОТЛИЧНО но блин у меня много схем в ARES’е и хотелось бы победить его (а он в кад экспортируется ооочень криво). Проблема с вертикальными штрихами уйдет при нормальном пере – это перекос эддинга в каретке – он тоньше чем надо а выбрать скотчем люфт малореально.

По факту почти готов фрезерный станочек и плоттер видимо будет заниматься дальше чем ему положено – рисовать и раскрашивать, благо теперь будет что ))

Рубрика: Без рубрики | Оставить комментарий

Делаем человекоудобный интерфейс для megachip.ru


Есть в питере такой магазинчик – МегаЭлектроника – магазинчик как магазинчик, но есть у него два больших плюса – много чего есть в наличии прямтутипрямсчас (что для питера редкость) и адекватные цены. Но есть у этого магазинчика и один огромнейший минус, даже минусище – найти в его каталоге на сайте ХОТЬ ЧТО-ЛИБО мягко скажем проблемно – поиск простой резюковой сборки на пол Ома, способной рассеять 8 Ватт в тепло, занял у меня например … минут 30. Да можно быстрее конечно, но я искал 1) в наличии 2) с минимальным количеством компонентов 3) с минимальной ценой. Задачка же найти например диодик на 50 Вольт и 4 Ампера с минимальной ценой и доступностью “прям сегодня” ставит в тупик всех, кто не может усидеть на стуле листая 18 страниц диодов Шоттки + 19 страниц “диодов быстрых” и еще кучку страниц разных подходящих диодов

Вообщем родилась идея сделать программульку, которая позволила бы общаться с каталогом удобно, а именно делать три простые вещи:

  1. Сортировать по цене
  2. Сортировать и фильтровать по наличию
  3. Связывать между собой несколько категорий (не те-же диоды например все в одну группу объединить)

В итоге за вечер родилась вот такая замечательная программулька (как видите я даже не дал ей название пока – называется радостно Form1 Широкая улыбка) (все картинки кликабельны — некоторые в экран не влезают в тексте):

image

Итак, давайте я по порядку расскажу что она умеет и заделюсь собственно таким чудесным чудом

При открытии программки мы уныло наблюдаем сайт мегаэлектроники и созерцаем вот такую табличку

image

Это программка открывает каталог и считывает все категории. Сразу оговорюсь – пока доступны ТОЛЬКО категории из раздела “Активные компоненты” – остальные я добавлю попозже, просто мне они были не нужны )))

Итак программка загрузила данные, и табличка пропала – по скорости загрузки кстати вы можете определить насколько удобно вам будет работать с режимом “автосканирование всех страниц” – на нормальном соединении загрузка каталога занимает всего 1-3 секунды. Оговорюсь еще раз – программа лопает довольно много траффика, увы по другому никак (по крайней мере в рамках “lazy coding” – ленивого программирования без претензий на шедевры)

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

image

Тут представлены все разделы “Активных компонентов” Давайте для примера выберем “Диодный модуль”

Теперь давайте я расскажу немного о меню в верхней части экрана:

image

Выбор раздела (например “диодный модуль”) сделает раздел активным т.е. следующую операцию, программа произведет именно с этим разделом.

Кнопка “добавить в выборку” добавит выбранный раздел в ту самую человекопонятную таблицу, ради которой все и затевалось.

Кнопка “Очистить выборку” сотрет все данные из таблицы

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

Кнопка “Удалить ВНЕ наличия на складах (1+2)” удалит из уже созданной выборки все позиции которых нет складах – ни первом ни втором, соответственно кнопка “Удалить ВНЕ наличия на складе 1” удалит все позиции которых нет на первом складе (у мегаэлектроники склад 1 это склад в питере – т.е. можно приехать, заплатить и забрать. Склад 2 это склад видимо в москве – доставка от туда занимает 2-3-4 рабочих дня)

Галочка на “Показывать картинки” заставит систему показывать картинки в таблице с данными. Картинки кешируются и лишний раз не загружаются (можно раз в недельку удалять папку на случай если мегаэлектроника вдруг решила обновить какие-то картинки у себя на сайте)

Галочка на “Сканировать все страницы” заставляет программу проходить по всем страницам в разделе – например если диодах Шоттки 18 страниц, то программа пройдет по всем из них собирая все диоды Шоттки в каталоге. Разумно эту галку держать включенной ибо в ней цимус программы )

Галочка на “Очищать выборку при каждом запросе” будет автоматически понятно что очищать выборку при каждом добавлении раздела в таблицу данных – ее разумно включить если вы хотите смотреть только по одной категории за раз

Итак, давайте уже наконец что-нить посмотрим! “Диодный модуль” мы выбрали, а значит надо нажать на кнопку “Добавить в выборку”!

image

После нажатия на “Добавить в выборку” программа перейдет на вкладку “Данные” и начнет заполнять таблицу данных. Если раздел занимает больше одной страницы, то программа перейдет обратно на вкладку “Сайт” (если включена опция сканирования всех страниц) и будет отображать прогресс заполнения таблицы – вообщем будет видно как переключаются страницы на сайте! Как только программа закончит проход по всем страницам, исчезнет красная табличка с надписью “Загрузка данных” и можно будет перейти на вкладку “Данные” (вообще программа должна это делать сама но почему-то не хочет ))). Там мы увидим вот это:

image

А именно – название раздела (“Диодный модуль”) и таблицу с его содержимым:

Графа “Артикул” (самая правая – по умолчанию сжимается сильно, потом поправлю) показывает собственно артикул по каталогу меги – можно написать на бумажку и в магазине заказать (по телефону не принимают заказы увы а инет-магазом я пользоваться не люблю – он то не работает на выходных то еще чего – а мне обычно надо оперативно очень – приехал, увидел, победил ))) )

Графа “Наименование” показывает название компонента

Графа “Производитель” собственно производителя, иногда эту графу немного колбасит и производитель показывается после слова “производитель” – я знаю об этом баге и когда-нить его поправлю

Графа “Корпус/Параметры” – сюда скидывается тип корпуса (кстати не доступный пользователям оперы например) и все характеристики что мега соизволила забить в каталог – позиций с характеристиками весьма мало и заморачиваться на их систематизацию я не стал, если навести мышкой на ячейку с параметрами то они отобразятся во всплывающем окошке:

image

Графы “Склад 1” и “Склад 2” показывают актуальное наличие компонентов на складах

Цена” понятно показывает цену

Графа “Показать описание” интерактивная – нажмите на ссылку внутри ячейки и у вас откроется браузер со страничкой меги для этой позиции

Графа “Показать даташит” аналогично содержит ссылку на даташит компонента, но только в том случае если мега его добавила на страницу описания, автопоиска и подбора даташитов нету

Графа “Погуглить” содержит аналогично кликабельную ссылку для автоматического поиска компонента в гугле (например даташит найти)

Все графы активны – можно выделять и копировать текст, менять положение граф относительно друг друга (например сделать графу “Цена” первой простым перетаскиванием), по всем графам можно сортировать – ура! теперь можно спокойно найти самый дешевый диодик в наличии в питере – давайте покажу как:

Цель – найти диод, быстродействующий или Шоттки, в питере, в наличии, дешевле 10 рублей в количестве больше 20 штук – сложно? нет! легко!

Нажимаем на “Очистить выборку” (мы же уже добавляли туда “Диодные модули”, а они нам больше не нужны)

image

Выбираем в выбиралке разделов “Диод Шоттки”

image

Убеждаемся что галочка на автосканировании страниц включена

image

Нажимаем “Добавить в выборку”

image

Ждем пока не погаснет “Загрузка данных”

Выбираем раздел “Диоды быстродействующие”

Нажимаем на “Добавить в выборку”

Ждем пока не погаснет “Загрузка данных”

Переходим во вкладку “Данные”

image

Нажимаем на “Удалить ВНЕ наличия на складе 1”

image

Сортируем по цене (просто нажав на заголовок колонки “Цена”)

image

Из тех что стоят дешевле 10ки мысленно выбираем тех что больше 20 штук в наличии

Сложно? Элементарно!

Как-нить потом продолжим ) Предлагайте полезняшки которые вам нужны/полезны!

Вот ссылки на программку (кто расскажет как заливать файлы на вордпресс станет суперчеловеком!)

http://www.npfpol.ru/ext/megachipInstaller.zip (Версия с инсталлятором под NET4)

http://www.npfpol.ru/ext/megachipNET4.zip (Версия без инсталлятора под NET4)

http://www.npfpol.ru/ext/megachipNET35CP.zip (Версия без инсталлятора под NET3.5)

http://www.npfpol.ru/ext/megachipNET2.zip (Аналогично под NET 2.0)

Программка написана на C# и соответственно требует наличие NET Framework, изначально писалась под NET4 (так уж по умолчанию у меня настроена VisualStudio) но сделал сборки под 2.0 и 3.5 — по идее они полностью рабочие (если конечно оно вообще под них пересобралось — смущает меня одинаковый размер у файлов ))) В любом случае под NET4 у меня оно работает без проблем. Вариант с инсталлятором должен сам утянуть из инета все нужные компоненты и их поставить … в теории — я не пробовал т.к. нет машинки без NET под рукой )

Рубрика: Без рубрики | Метки: , , , , , | 5 комментариев

Создание своего корпуса для модели ISIS (Proteus), продолжение


Итак продолжим вчерашние изыскания (https://orlovsn.wordpress.com/2011/01/05/ares-custom-package/) по созданию своего корпуса для ISIS/ARES. Корпуса для ARES мы создавать научились, теперь давайте прикрепим наш корпус к модели в ISIS (Proteus)

Штатные модели в ISIS можно разделить на три класса – модели реальных устройств (например 74HC595), модели виртуальных устройств (например осциллограф или Voltage probe) и моделируемые примитивы. Моделируемые примитивы это условные модели реальных устройств, без привязки к конкретной марке устройства – например устройство RESISTOR из библиотеки ASIMMDLS это условная модель резистора, которая как и положено имеет сопротивление, но не имеет ни корпуса ни производителя ни чего-либо еще. С резистором все просто — при импорте в ARES, система сама предложит выбрать для него корпус и сама его радостно привяжет – действительно, резистор то привязать не сложно, а вот с нашим 7ми сегментным индикатором все несколько хуже – если просто импортировать схему с его участием в ARES, то мы … его не увидим, даже если снять галку в его свойствах с “Exclude from PCB layout”. Это плохо, но мы это исправим!

Итак для начала открываем ISIS и создаем новый документ, добавляем новый компонент из библиотеки

image

Наш дисплей лежит в категории “Optoelectronics” в подкатегории “7-Segment Displays”, моделька называется 7SEG-MPX2-CA, его и добавляем на схему

Выглядит он вот так:

image

Тут нас ждет маленькое (а для кого-то и большое!) разочарование – у модели всего один комплект выводов A-G, и поделать с этим увы если что-то и можно, то довольно сложно (я лично простого пути увы не нашел, а учить isis sdk ради пары нужных мне моделек откровенно говоря желания не возникло). С другой стороны, многие (и я в их числе) используют только один комплект выводов в 7ми сегментных дисплеях, подключая второй комплект (для 3х цифровых дисплеев и третий и так далее) ножек к первому и выбирая включаемое число ножками 1/2(/3 для 3х цифрового и т.д) – в общем это стандартная практика позволяющая экономить ноги микроконтроллера или сдвиговых регистров, так что беда то в целом и не беда, но надо немного переделать наш вчерашний корпус. Открываем ARES, создаем пустой файл, размещаем на нем наш корпус 7S2D, выделяем его нажав правой мышкой например на вывод под ножку (напомню что нажимать надо в серую “дырку” по центру вывода) и выбираем Decompose Tagged Objects

image

Это разберет наш корпус на составляющие

Я долго пытался сообразить как добавить нетлист к модели, но так и не сообразил, к счастью на радиокоте подсказали что если назначить пинам в корпусе одинаковые номера, то они станут автоматически объединяться при автоматической прокладке дорожек! Разобрав корпус лезем в даташит и смотрим какие ноги с какими нам надо объеденить:

image

Это пин-аут нашего дисплея, видно что номер пина А1 = 15, а номер пина А2 = 10 т.е. что-бы они автоматически объединялись в одну дорожку, надо номер 10 заменить на 15, и так со всеми парными буквами (12 меняем на 13, 8 на 1, 6 на 3 и т.д). В результате у нас получается вот такой набор пинов в корпусе:

image

Корпус готов, надо его снова собрать – выделяем все элементы, кликаем правой мышкой и нажимаем Make Package – заметьте что надо выделять не только пины и ободок корпуса, но и название (строчку NAME=7S2D)!

image

При сборке корпуса система сама подхватит имя, описание и все опции что мы вводили при начальном его создании, при нажатии на ОК в окошке диалога создания корпуса, система спросит действительно ли мы хотим обновить уже имеющийся в библиотеке корпус с таким названием … да хотим! )

image

Надо нажать на Yes, система спросит обновить ли все вхождения корпуса в текущем документе – не критично но лучше тоже нажать на OK

image

Теперь возвращаемся из ARES в ISIS, где нам надо нашу модельку дособрать! Насколько я понял, ряд свойств модели, ISIS использует только при создании собственно модели, и редактировать или добавлять их к уже готовому устройству увы бесполезно. Итак клацаем правой мышкой на нашем дисплее и нажимаем на Decompose

image

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

image

Аккуратно нажимаем на текст с кодом правой кнопкой мыши (аккуратно это что-бы не нажать на дисплей например) и выбираем Edit Properties

image

В результате выскакивает менюшка с кодом описания пока еще не нашей модели:

image

Вот код стандартной модели из протеуса:

{*DEVICE}
NAME=7SEG-MPX2-CA
ACTIVE=7SEG,8,BITWISE,DLL
HELP=DISPLAYS>POPUP,1
{*PROPDEFS}
{MODDLL=»VSM Model»,READONLY STRING}
{PRIMITIVE=»Primitive Type»,HIDDEN STRING}
{INVERT=»Cathodes»,HIDDEN STRING}
{TTRIGMIN=»Minimum Trigger Time»,FLOAT,PNZ}
{PACKAGE=PCB Package,HIDDEN PACKAGE}
{*INDEX}
{CAT=Optoelectronics}
{SUBCAT=7-Segment Displays}
{DESC=Red, 2 Digit, Common Anode, 7-Segment Display}
{*COMPONENT}
{MODDLL=LEDMPX}
{PRIMITIVE=DIGITAL,LEDMPX}
{INVERT=A,B,C,D,E,F,G,H}
{TTRIGMIN=1ms}

Нам же нужно добавить всего две строки и изменить одну, а именно:

NAME=7S2D-CA-RED <- Это будет имя нашего устройства, вообще его можно добавить и в следующем шаге (при компоновке устройства), но мне лично почему-то так удобней. Имя естественно можно придумать свое – я пользовался вчерашней логикой по сокращениям: 7Segment2Digits-CommonAnode-Red т.е. 7ми сегментник 2х цифровой с общим анодом, красный. Вроде просто )

{PREFIX=7S2DR} <- Это префикс, который будет инициализатором устройства при переносе в ARES, опять-же может быть своим, но у него есть ограничение – его длинна не может быть больше пяти символов!. Его надо добавить где-нить под строчкой {*DEVICE}, например прямо перед строкой {*PROPDEFS}. Опять-же его можно ввести и позже ручками при создании компонента

{*PROPDEFS} <- Эта строка у вас уже есть, нам она указывает что начались настройки свойств модели и далее под ней надо найти вот эту строку:
{PACKAGE=»PCB Package»,PACKAGE,1,7S2D} <- Эту строчку надо найти и заменить, штатно ISIS считает что у этой модели HIDDEN PACKAGE т.е. корпус “спрятан”, нам же нужно указать имя, вчера созданного корпуса в ARES – у меня это было 7S2D

В итоге у меня получилось так:

{*DEVICE}
NAME=7S2D-CA-RED
ACTIVE=7SEG,8,BITWISE,DLL
HELP=DISPLAYS>POPUP,1
{PREFIX=7S2DR}
{*PROPDEFS}
{MODDLL=»VSM Model»,READONLY STRING}
{PRIMITIVE=»Primitive Type»,HIDDEN STRING}
{INVERT=»Cathodes»,HIDDEN STRING}
{TTRIGMIN=»Minimum Trigger Time»,FLOAT,PNZ}
{PACKAGE=»PCB Package»,PACKAGE,1,7S2D}
{*INDEX}
{CAT=Optoelectronics}
{SUBCAT=7-Segment Displays}
{DESC=Red, 2 Digit, Common Anode, 7-Segment Display}
{*COMPONENT}
{MODDLL=LEDMPX}
{PRIMITIVE=DIGITAL,LEDMPX}
{INVERT=A,B,C,D,E,F,G,H}
{TTRIGMIN=1ms}

Нажимаем на ОК в нашей форме редактирования кода, и выделяем все элементы разобранного дисплея (просто выделяем их как файлики в проводнике например), после чего жмакаем правой кнопкой мыши и выбираем Make Device

image

И видим вот такую форму:

image

Если мы ввели имя и префикс во время редактирования кода, то они автоматически подхватятся и будут отображены в соответствующих полях, если вы их не вводили то введите тут – дальше возможности не будет )

Нажимаем на Next и видим наш чудесный корпус 7S2D с одинаковыми номерами пинов, нажимаем на Add/Edit.

image

Цель этой формы – задать соотношение выводов модели к пинам в корпусе. Опять лезем в даташит на дисплей и смотрим что к чему должно подключаться. Что-бы задать связку вывод-пин, надо щелкнуть мышкой в ячейку в колонке А в ряду с тем выводом, который мы привязываем, после чего надо щелкнуть мышкой на номер пина на рисунке с корпусом в правой части формы:

Вначале сюда:      image

Потом вот сюда:   image

По факту нам надо заполнить все ячейки с номерами выводов, кроме последнего вывода Н, который в нашем дисплее не используется (это видимо точка – у нас ее нет). Выводы модели 1 и 2 это пины ПЕРЕКЛЮЧЕНИЯ ЦИФР! т.е. питание индкатора (которым меняем включенную на определенный момент цифру!) Когда дойдем до пина H делаем следующую вещь – нажимаем на его ряд (в табличке) правой мышкой и выбираем Suppress Pin

image

Это создаст пустое сопоставление этого вывода в модели т.е. пин ни к чему подключен не будет – а нам и не надо! )

Для моего дисплея таблица в итоге получается вот такая:

image

Нажимаем на Assign Package(s), Нам снова показывают наш корпус, нажимем Next, видим свойства модели, жмем снова Next – тут можно добавить ссылку на даташит (полезно чтоб не рыться в инете/локальном диске в поиске нужного файла), нажимаем еще раз Next – тут можно добавить комментарии и если вы планируете использовать много разных дисплейчиков одной фирмы, до добавить производителя в библиотеку … а еще артикул! )) В итоге нажимаем ОК … и ничего не происходит – правильно, компонент добавился в библиотеку – удаляем куски дисплея с рабочего листа (просто очищаем все или можно создать новый пустой документ) и добавляем нам компонент из библиотеки:

image

Теперь можно создать простенькую схемку с дисплеем и экспортировать ее в ARES:

image

Схема немного бредовая но корпуса покажет )) Вообщем атмега 168 рулящая дисплейчиком через 595ый сдвиговый регистр и сама выбирающая цифру на дисплее. Нажимаем на кнопочку ARES в тулбаре либо идем в tools и там netlist to ares:

image

Открывается ARES, расставляем как обычно в нем наши компоненты и нажимаем auto router (можно и auto placer’ом расставить – кому как нравится) В результате видим вот такую картинку:

image

Как видим все пины в нашем корпусе удачно соединились с другими компонентами, а нужные соединились и внутри корпуса!

За сим победа, пускай и маленькая но победа – на выходе у нас рабочая моделька 2х цифрового 7ми сегментного дисплея, показывающая все что надо показывать в ISIS и корпус, готовый к размещению в ARES!

Рубрика: Без рубрики | Метки: , , , | Оставить комментарий

Создаем свой корпус для ARES


Собственно учимся создавать свои корпуса элементов для Ares на примере 2х цифрового 7ми сегментного индикатора )

1) Для начала надо найти размеры корпуса – логичней всего взять и найти даташит:

а в нем рисунок наподобие этого:

Подпись к рисунку намекает нам что размеры приведены в миллиметрах, а допуски на все размеры – четверть миллиметра

2) Теперь открываем Ares и начинаем расставлять ноги

можно вставлять обычные круглые PTH но я предпочитаю DIL ввиду ее удобства при изготовлении плат ЛУТом

По умолчанию в ARES включена привязка с шагом на 2.5мм, что нас в данный момент вполне устраивает, но если мы хотим вручную проверить правильно ли все расставилось, то идем в менюшку View и там включаем привязку с шагом в 1мм и заодно включаем метрическую систему

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

Если вы выставляли ноги с шагом в 2.5(4)мм и начинали с нуля, то в итоге вы увидите на последней ножке ту-же цифру (положение по Х) что и в даташите (в данном случае это длинна контактной площадки в 17,78мм):

Теперь копируем наш ряд площадок и создаем второй ряд (дисплей то двухрядный!) Копирование в Ares не совсем стандартное – надо выделить элементы, жмакнуть правой кнопкой мыши и выбрать block copy:

После чего результат копирования можно будет многократно вставлять до нажатия на кнопку esc например.

Перетаскиваем наш второй ряд на должное ему положение:

В Ares есть интересная особенность – за какую ножку вы будите перетаскивать, та нога и будет привязываться к включенной привязке – если вы начинали от нуля, то таскать надо за первую ногу! Иначе ряд окажется сдвинут по оси Х, благо это наглядно видно )

Теперь мы видим что по автоматной привязке на 2.5 наша ширина компонента получилась 12.5мм а должна была быть

12.7 (т.е. 7 шагов по стандартной 2.54 макетке). С одной стороны мы уложились в погрешность 0,25мм, приведенную производителем дисплея, с другой стороны если вы планируете втыкать дисплейчики в цанговые зажимы, то они будут входить с повышенным усилием – вообщем стоит включить привязку к 0.1мм и подвинуть ряд на два шажка вверх (при этом надо внимательно смотреть чтобы ряд не уехал влево-вправо!)

Ну вот и все – положения выводов точно соответствуют данным в даташите – элемент обязан установиться в отпечаток этой модельки на плате

Теперь надо обрисовать габаритные размеры корпуса (это очень полезно если вы комбинируете элементы располагая их стык-в-стык – например так я собираю 4х цифровые индикаторы из двух 2х цифровых (они есть в наличии в местном магазинчике в отличии от “четверок”)

Для этого выбираем 2D Graphics box mode:

в правой менюшке с рисовалками, и с включенной привязкой к 0.1мм собственно рисуем прямоугольник (зеленая линия) нужных нам размеров (по даташиту габариты корпуса 20.20х16.00 мм):

Увы в том даташите что я нашел, не указаны отступы ног от краев корпуса – далеко не всегда (и для многих корпусов всегда не всегда) они находятся по центру, но в нашем случае можно взять дисплейчик в руки и промерить линейкой – они по центру, так что двигаем ножки посчитав положение Х:Y для первой (считать просто – взять ширину корпуса, вычесть ширину рядя дорожек, указанную в даташите, и поделить пополам – это точка Х, точка Y соотв это разница в ширине корпуса и расстояния между рядов, деленная налапопам – в нашем случае: (20.20-17.78)/2 и (16-12.7)/2 соотв., т.е. 1.21 и 1.65 – округляем до 1.2 и 1.6)

Теперь надо раздать номера нашим пинам (можно и не раздавать но по умолчанию Ares раздаст их со сдвигом в один номер, что нас не устраивает). Выбираем первый пин правым щелчком мыши (кликать надо именно в серую дырку в центре пина!) и выбираем в меню Edit Properties (либо просто умудряемся double-кликнуть в нашу серую дырку)

В появившейся менюшке указываем номер пина (Number):

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

Настало время собирать камни т.е. объединить наш набор дырок и линий в собственно корпус. Выделяем все что нажито непосильным трудом нарисовали, жмакаем правой кнопкой мышки и выбираем Make package

После чего нам предлагают заполнить следующую форму:

Собственно пробежимся по полям:

  • New Package Name – Имя вашего корпуса, логично давать легко находимое имя с понятной аббревиатурой – 7S2D – 7Segments2Digits – вполне понятно )
  • Package Category – категория элемента, который будет в корпусе – может быть коннектором, дискретным элементом и т.п., оптоэлектроника находится в Miscellaneous (“Разное”) – значит нам туда. Соблюдать деление не обязательно но оно довольно удобно.
  • Package Type – тип корпуса – может быть для поверхностного или сквозного монтажа, у нас вполне себе сквозной “дырчатый” монтаж, его и выбираем
  • Package Sub-category – подкатегория корпуса, в нашем случае есть 100% подходящая — 7ми сегментные индикаторы
  • Package Description – описание корпуса – не обязательно но приятно )

После заполнения формы можно жмакнуть в 3D Visualization и посмотреть что получилось:

Для первого раза весьма не плохо, скажу я вам! ))

Нажимаем на ОК, сохраняем файл.

Теперь можно выбрать наш корпус (я создал новый чистый файл для проверки видна ли библиотека):

и победоносно расположить его на плате:

На этом на сегодня все, завтра попробуем заставить штатный 7ми сегментник в протеусе увидеть наш корпус и подключить все пины!

Рубрика: Без рубрики | Метки: , , , , , | 1 комментарий

WPF – перетаскивание объекта внутри Grid (Drag inside Grid)


Столкнулся с несколько проблемной задачкой по организации перетаскивания объекта внутри grid’а – внутри canvas’а в гугле масса примеров, внутри грида – ноль.

Впринципе все довольно просто, достаточно взять стандартную функцию подходящую для canvas и немного переделать ее для изменения свойства margin вместо указания canvas.top/left, более того так получается даже понятнее и проще. Вот что нам нужно написать в XAML’е:

<Grid Name="parentGrid" SizeChanged="parentGrid_SizeChanged">
    <Canvas Name="mainGrid" SizeChanged="mainGrid_SizeChanged">
        <Image Name="planImg" Stretch="Fill" />
        <Thumb Visibility="Hidden" Cursor="Hand" Opacity="0" Margin="0,0,0,0" Name="thumb1" DragDelta="thumb1_DragDelta" DragStarted="thumb1_DragStarted" DragCompleted="thumb1_DragCompleted"></Thumb>
    </Canvas>
</Grid>

  • parentGrid – grid внутри которого хотим двигать элемент
  • planImg – элемент который хотим двигать, подходит любой элемент внутри нужного нам grid
  • thumb1 – это собственно элемент, которым можно легко и непринужденно двигать объектами – смысл в том что у него есть event DragDelta который запускается когда над элементом зажата левая кнопка мышки и курсор изменил свое положение (т.е. произошло перетаскивание). Событие генерирует аргумент DragDeltaEventArgs в котором передает два нужных нам параметра – HorizontalChange и VerticalChange
  • thumb1_DragDelta – необходимый нам event, который запускается в процессе перемещения thumb’а
  • thumb1_DragStarted – event запускающийся при начале перемещения
  • thumb1_DragCompleted – соответственно event запускающийся когда перемещение завершено (по факту отпускания левой кнопки мыши)

Теперь переходим к коду:

private void thumb1_DragStarted(object sender, System.Windows.Controls.Primitives.DragStartedEventArgs e)
{
    thumb1.DataContext = planImg;
}

private void thumb1_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
{
    (thumb1.DataContext as Image).Margin = new Thickness((thumb1.DataContext as Image).Margin.Left + e.HorizontalChange, (thumb1.DataContext as Image).Margin.Top + e.VerticalChange, (thumb1.DataContext as Image).Margin.Right — e.HorizontalChange, (thumb1.DataContext as Image).Margin.Bottom — e.VerticalChange);
    thumb1.Margin = new Thickness(thumb1.Margin.Left + e.HorizontalChange, thumb1.Margin.Top + e.VerticalChange, thumb1.Margin.Right — e.HorizontalChange, thumb1.Margin.Bottom — e.VerticalChange);
}

private void thumb1_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e)
{
}

Разберем по кускам:

  • Вначале мы должны задать DataContext для нашего thumb – по сути мы указываем каким элементом мы хотим двигать. Если мы хотим двигать сразу несколькими элементами то можно либо объеденить их в один общий контейнер (например в Canvas) либо немного изменить функцию dragDelta и сделать прямое обращение к нужным нам элементам (т.е. использовать вместо (thumb1.DataContext as Image) имя нужного элемента и расплодив первую строку функции в зависимости от кол-ва элементов) Обращение через DataContext я использую т.к. в моем проекте thumb управляет перемещением произвольного элемента среди произвольного количества кастомных компонентов – мне так проще делать привязку нежели отлавливать конкретный элемент в дереве.
  • Едем дальше – в самой функции DragDelta мы видим две строки – первая строка изменяет свойство Margin нашего управляемого компонента. Если вы перетаскиваете не картинку а например Canvas то логично что вам необходимо изменить as Image на as Canvas. Смысл измений Margin довольно прост – мы берем текущие Margin.Left, Top и т.п. и добавляем (или соотв. вычитаем) к ним значения аргументов HorizontalChange и VerticalChange т.е. собственно текущие дельты перемещения курсора
  • Вторая строка этой функции необходима для перемещения самого thumb – самостоятельно он с курсором не перемещается, это кажется не очень логичным, но я допускаю что в ряде случаев этому есть применение (например классический drag-and-drop без “просмотра содержимого окна при перетаскивании”)
  • Функцию DragCompleted можно оставить пустой – для непосредственного перемещения компонента по экрану она не нужна.

Вот

Все довольно просто на самом деле )

Рубрика: Без рубрики | 2 комментария

Настройка IPTV через D-Link DIR-300 (на примере матрикса)


Вчера наконец-то удалось победить дир и настроить через iptv.

Если вкратце то делать надо так:

1) Идём на ftp://ftp.dlink.ru/pub/Router/DIR-300/Firmware/ либо ко мне в файлы в папку “DIR-300 IPTV” https://cid-400f94b06b1b0287.skydrive.live.com/browse.aspx/DIR-300%20IPTV  и забираем оттудова файл прошивки dir300_v1.05_93rb

2) Прошиваем роутер до этой версии прошивки, языковой пакет обновлять не обязательно – древние вполне работают

Старые прошивки с iptv работают через раз — большинство просто не работает, некоторые работают с "дёрганьем". Эта работает вполне стабильно и с iptv и с локалкой и с инетом. В бетах лежит более свежая (на неделю времени) но с ней были проблемы с подключением к dc++

3) Лезем в настройки роутера и включаем мультикаст (все картинки кликабельны!):

4) Попутно в настройках пробрасываем порты на нужную машину (ip ессно надо указывать свой):

Поясню – вообще iptv должно радостно работать с одним 5500 портом, но на практике vlc сильно жаждит заиметь емнип 1001 и 8000 порты. Можно ограничится ими, я поставил диапазоны т.к. уже замучался с перебором настроек и прошивок – вот конкретно так всё работает.

5) Идём на сайт провайдера (в случае с матриксом ссылка видна на скрине) и тыкаем в любой канал. Автоматом ставим vlc’шный плагин (есть на сайте матрикса и у меня в файлах), перезапускаем браузер и в теории наслаждаемся iptv.

Чтоб смотреть ТВ вне браузера можно либо пользовать VLC плеер (ставится вместе с плагином) либо IP-TV Player (есть у меня в файлах и на сайте яндекса) – это тот-же VLC с несколько более удобной оболочкой.

6) Если IPTV не побежало то лезем в настройки VLC и убеждаемся что адрес для мультикаста НЕ указан – в описании настроек на матриксе адрес положено указывать, однако на практике с ДИР-300 ЭТО НЕ РАБОТАЕТ т.е. адрес должен быть пустым!

п.с. как можно заметить, каналов можно смотреть сразу много 🙂

Попутно:

— время переключения канала довольно велико 3-4 секунды на SD и 5-6 секунд на HD каналы, т.е. не стоит сразу кричать что не работает, стоит чутка подождать.

— ряд каналов НЕ работает – например первый канал в списке (Az) частенько просто чёрный экран – покликайте несколько каналов перед тем как грить “не работает”

— с HD каналами иногда бывают проблемы – fashionHD у меня вываливает плеер в 100% случаев, другие HD изредка то-же приводят к сбою и перезагрузке плеера.

Рубрика: Без рубрики | Оставить комментарий