Предлагаю в этой теме собрать самые различные и необычные схемы и девайсы Все активные получают + в репутацию Соблюдайте авторские права ! ссылка на источник обязательна !
Гравицаппа "Гравицаппа" Устройство демонстрирует эффект Бифельда-Брауна. Девайс способен преодолеть силу притяжения, без двигателей и движущихся частей, посредством так называемого "электронного ветра"... Инструменты: деревянные рейки, алюминиевая фальга, лакированый медный провод, блок питания +25000 В. Конструкция представляет собой обмотанный алюминиевой фольгой карказ из нескольких реечек бальзового дерева, на которую намотана медная проволока. Если к этой треугольной рамке подвести электричество, она взлетает до тех пор, пока не натянутся провода, соединяющие ее с источником питания. Основное припятствие - где взять высоковольтный блок питания? Он не должен обладать большой мощностью, поэтому подойдёт и умножитель напряжения от телевизора, Б/П от ионизатора воздуха и т.п..
Отмычка открывает домофоны фирм CYFRAL, Беркут и Метаком. Работа Отмычки заключается в подборе сопротивления. Резистор R1 ставте любой. Рекомендуется: 1 ком т.к. в ключи ставят сопротивление до 1 ком. Подходит к CYFRAL 2094/tc [/tm] квадратной и прямоугольной формы. Не подходит к горизонтальным прямоугольным CYFRAL'ам 2094/tc [/tm] т.к. там стоят ключи с индивидуальным номером. Открывает МЕТАКОМ в которых реализована поддержка ключей с резисторами. Использование отмычки: При подборе нужно медленно крутить и быстро поддергивать ключ. идея ADroo
необычные часы необычные часы СХЕМА тут Чтоб узнать сколько время надо помахать рукой Вот такие часы. Схема собрана на популярном микроконтроллере PIC16F84. Питание осуществляется от источника 3В. скачать исходник.asm и .hexисточник
Часы - светодиодные, пропеллерные Часы - светодиодные, пропеллерные Мы будем использовать 12V автомобильный вентилятор, как комплект, содержащий почти все механические части. Единственная дополнительная часть вам нужно это шарикоподшипник и латунные трубки около 2 мм в диаметре. скачатьпрошивку с цыферблатом: часы, минуты скачатьпрошивку с цыферблатом: часы, минуты, секунды
Графический планшет из вебкамеры Виртуальный планшетИтак, принцип работы. Располагаем в поле зрения камеры белый лист бумаги. Наклеиваем на кончик ручки цветной маркер. Если перемещать ручку по листу бумаги, то, распознавая цвет маркера на картинке, можно получить координаты ручки в плоскости листа. Если эти координаты превращать в движение курсора на экране, мы получим простейший виртуальный планшет. Ручка с цветным маркеромДля стабильного распознавания необходимо, чтобы отслеживаемый цвет значительно отличался от фона картинки. Кроме того, этот цвет должен быть насыщенным. Наилучшее, что нашлось под рукой – стикеры, используемые для наклеивания цен на товары. Ярко зеленый цвет отлично контрастирует с фоном картинки. Берём обычную шариковую ручку. Берем один стикер, и отрезаем тонкую полоску. Полоску наматываем на стержень ручки. Наш «стайлус» готов ! На картинке видно, что насыщенный цвет буквально «горит», и потому будет стабильно распознаваться нашей программой. Наша ручка не имеет датчика нажатия, поэтому пользователь должен будет использовать какую-либо клавишу клавиатуры, например – левый Ctrl. Программное обеспечениеСобственно, «аппаратная» часть уже закончена. Мы жестко закрепили камеру так, чтобы лист бумаги занимал как можно большую часть картинки, и сделали «стилус». С помощью программного обеспечения камеры мы можем видеть, что когда мы рисуем на листе бумаги, то на картинке с камеры отчетливо виден цветной маркер. Нам нужно написать программное обеспечение, которое будет отслеживать положение маркера на листе бумаги, и переводить его движение в движение курсора мыши на экране компьютера. Сразу скажу, что читатель, незнакомый с программированием, может пропустить два следующих раздела и сразу перейти к испытаниям, т.к. готовое программное обеспечение прилагается к статье. В качестве языка программирования возьмем Delphi, т.к. для него легко найти готовые компоненты для работы с веб-камерой и ком-портом (об этом дальше), и легко делать пользовательский интерфейс. Но, прежде чем запускать редактор, обсудим алгоритмы. Скачать Усложняем аппаратную частьИтак, мы уже можем рисовать с помощью нашего планшета! Однако, стабильность распознавания сильно зависит от условий освещения, да и пользоваться клавишей Ctrl для нажатия не очень удобно. Давайте соберем "продвинутый стилус" для нашего планшета. Чтобы повысить стабильность, я решил поместить на кончик ручки зеленый светодиод. Теперь стабильность распознавания практически не зависит от освещения. В качестве датчика нажатия я взял микропереключатель из старой мышки. Берем старую шариковую ручку диаметром 1см. Берем старую COM-мышку. Из мышки нам понадобится провод с разъемом и микропереключатель. Микропереключатель вставляем в ручку так, чтобы при надавливании, стержень ручки его включал.
Берем зеленый светодиод. Я немного подпилил его с краев, чтобы сделать меньше. Приклеиваем светодиод на кончик ручки. Я обернул светодиод фольгой с боков. Теперь в темноте вокруг светодиода не создается ореол, и стабильность распознавания улучшается. Паяем все по приведенной схеме. Смысл состоит в следующем: светодиод запитывается от сигнальных линий СОМ-порта и постоянно горит. Микропереключатель замыкает цепь приема-передачи, и, таким образом, в нажатом состоянии программа получает "эхо" от посланных данных. Это можно проверить, запустив HyperTerminal и набрав несколько символов на консоли. Когда выключатель отжат - символы не отображаются. Когда нажат - введенные символы передаются терминалом, принимаются обратно и отображаются на консоли. После сборки у вас должно получиться что-то подобное. О настройке программного обеспечения Я постарался сделать ПО с максимально понятным интерфейсом в форме Мастера. Сразу после запуска, ПО пытается соединиться с веб-камерой и требует калибровки. Остановлюсь отдельно на некоторых страницах Мастера. На экране выбора веб-камеры необходимо выбрать камеру (Кнопка "Источник…") и формат изображения ("Формат…"). Если у вас в системе два устройства видеоввода, например - на видеокарте есть видеовход, то нужно правильно выбрать источник. В настройках формата необходимо выбрать один из следующих форматов: I420, IYUV, UYVY. С другими форматами ПО не работает. Здесь следует также отметить, что при более высоком разрешении веб-камеры часто дают в 2-3 раза ниже FPS, так что, возможно, придется пожертвовать разрешением в пользу скорости реакции. При правильной настройке, в левое окно должно поступать изображение с камеры. На экране настройки цвета слежения необходимо подобрать параметры "Разброс", "Чувствительность" и цвет слежения такие, чтобы в левой картинке за кончиком ручки четко следовал красный крестик. Нужно начать с параметра "Чувствительность". Установите его таким, чтобы в правом окне отчетливо выделятся цветом наш маркер. Кликните курсором мыши на изображении маркера в правом или левом окне. Программа запомнила требуемый цвет, и начинает собирать похожие точки. Количество похожих точек отображается под меткой "Samples count:". В левом окне похожие точки помечаются розовым цветом. Необходимо подобрать параметр "Разброс" таким образом, чтобы количество похожих точек примерно равнялось пятидесяти. Возможно, придется отрегулировать размер цветного маркера на кончике ручки и убрать посторонние предметы из поля зрения камеры. Надеюсь, что остальные экраны Мастера не вызовут вопросов. После завершения Мастера, наш "драйвер" сидит в трее. Включать/выключать планшет также можно клавишей "Scroll lock" клавиатуры. ЗаключениеДумаю, что если у вас когда-нибудь возникало желание купить себе какой-нибудь дешевенький планшет "для поиграться", то для этих целей вам вполне хватит виртуального. Ведь все, что нужно - это закрепить камеру, наклеить маркер на кончик ручки, установить ПО - и планшет готов. Как вариант, можно рисовать лазерной указкой (или брелком) на стене. Веб-камеру также можно заменить цифровым фотоаппаратом, подключенным к видеовходу видеокарты. Лично я пробовал с Canon A70 + видеовход на GeForce 4 TI4200, а также фотоаппарат Agfa CL20 в режиме веб-камеры. Я не зря назвал этот планшет "игрушкой". Ему никогда не сравниться с профессиональными планшетами типа Wacom из-за низкого разрешения (а оно примерно на 50% меньше разрешения веб-камеры), а также задержки, возникающей из-за задержки видеосигнала при оцифровке. Для сравнения скажу, что планшет Wacom Intuos работает в разрешении не меньше 1024x768, распознает 512 степеней нажатия и наклон ручки. Кроме того, многие камеры меняют баланс белого при изменении условий освещения, из-за чего цвет слежения изменяется и вызывает проблемы со стабильностью распознавания. Статья взята отсюда
Cоединение 2-х компьютеров на лазерных указках Питается устройство от COM-поpта. Фототpанзистор - любой из отечественных, например, типа ФТ-2, pезистор R1 - в пpеделах 5-10 кОм. Диоды - Д522. Конденсатор 10мкФ х 10В. По-хоpошему надо бы ещё pеализовать ноpмальную схему огpаничения для лазеpного диода. Поскольку схема не пpоизводит пpеобpазования RS232 в SIR, то дальность получается поpядка сотни метpов (ну или чуть больше). Если использовать SIR/FIR для модуляции в нынешних наплатных SuperIO-чипах и ноpмальный PIN-диод с усилителем - будет и 230 Кбод, и 460 Кбод. Однако там необходимо учесть огpаничение на наличие питания только в +5 вольт. Довольно простенькая схема. Взято отсюда. Посложнее схемы ТУТ и ТУТ Описание COM порта здесь. Советую ознакомится с этим
3D LED глобус Начнём пожалуй с отрисовки массива. Если знаете, что Землю (условно) можно представить как апельсин, так вот — если с неё снять шкурку дольками и разложить на столе вот так то это и получится наша развёртка , идеальная для массива. Нашел я и такую вот карту, распечатал её на принтере и разлиновал под 32 х 70 битную сетку. Почему 32 ? Так я буду юзать 4 сдвиговых регистра - вот и получается 8*4=32 , а 70 - это столько у меня получилось столбцов, это не аксиома, можно и больше налиновать, но мне было лень…. получилась вот такая хрень: СхемотехникаСама схема несложная. В качестве мозга у меня нарисовалась ATTiny13, которая гонит данные в 4ре сдвиговых регистра, а эти регистры уже через транзистор зажигают диоды. Осталось только придумать как все это питать… Схема крупнее Нам нужен источник питания, который бы обеспечивал вращающююся часть девайса током в, минимум 150 мА и вольтажем где-то в 6 - 12 вольт. Кто сказал батарейки ? Не, слишком громоздко и будут большие траблы с центрированием девайса. Скользящий контакт? Хм, это мысль! Но тут будет искрение, а следствие - помехи по питанию, шум от трения и геммор с контактами — не труЪ :\ Что же сделать ? О! Вращающийся трансформатор! Тадааам! (лампочка зажглась над головой думающего ) Плюсы: никакого шума от трения ! никаких искрений и полная развязка от питающих источников. Минусы: требует минимального зазора между катушками для большей отдачи по току и точной подстройки скважности и частоты, дабы не вскипеть На сём и порешим робим вращающийся транс! Короче, я много писать не умею, приступим сразу к делу! ПервичкаЭто около 90 оборотов, виток к витку, медного провода (я применил от размагничивающей петли с кинескопа какого-то старого телека) 0.3 мм…. получилось 3 слоя. Наматывается на трубку, потом обматывается скотчем или изолентой чтобы не елозило, а затем вынимаем трубку оправку. ВторичкаОколо 130 оборотов,что-то около 4-х слоёв , виток к витку , того же провода. Наматывается прям на бошку от вентилятора у которого обломаны лопасти. Зазор между обимотками допускается до 1.5 см, но чем менее, тем лучше. У меня зазор получился 3 мм. обмотки мотаются в одну и ту же сторону, обе. Можно конечно и в разную, но падает производительность и ваш глобус будет блекло блымкать, вместо того, чтоб гордо светить в ночи. Частота питалова первички …эээ…. ну, короче, импульс размером 680 uS и пауза в 7.6 mS это минимум. Максимум — пока не сгорит первичка ))) 8.2mS - период импульсов. частоту находим по формуле v=1/T 1000/8.2 = 121.9512195 Гц Считаем что примерно 122 Гц. Да, питал первичку я полевиком IRL2505S - он подошел идеально. Все эти параметры подходят под именно этот трансформатор так что при увеличении\уменьшении витков как на первичке, так и на вторичке - за последствия ответственности я не несу ) В итоге, у вас должно получиться что-то типа такого: Печатная плата Далее , надо взять текстолит, подойдёт любой от 1 до 1.5 мм, но чем толще он будет, тем стрёмнее его будет резать, а резать его надо будет фигурно. На фотке почти всё , что нам потребуется. Не считая пары метров МГТФ на 0.3 мм и кусочка латунной трубочки длиной 10 мм, с пропилом посредине 4 мм в глубину и миллиметр в ширину. Я пропиливал обычной пилкой по металлу. Крепить будем все тремя шурупами на 3-2.5 мм длиной. Длиннее не надо, придётся обкусывать (бляха, я так и убил свои фирменные кусачки GOOT , за 600 рублей ). Печатал я всё это дело на печатной плате посредством Лазерного Утюга о которой уже не раз и не два писалось на сайте. Для того чтобы ровно обрезать текстолит можно заюзать лобзик. А я же обошелся ножницами по металлу. Так как текстолит тонкий, 1 мм, то я его обрезаю тока в путь. Круглую плашку под МК и регистры, я обрезал так же просто ножницами, а вот эту хърень, что похожа на знак вопроса — по внешнему контуру обкорнал ножницами, а потом зашлифовал напильником, а внутри взял свёрлышко на 0.5 мм и попросверлял отверстия часто-часто, потом резаком провёл для пущщей верности и тупо обломил это всё хозяйство От заусениц и прочего гемороя, что останется от высверливания и плохой обрезки , меня спасли алмазные надфильки Итак, что мы имеем ? Так называемую “материнку” и “подкладку” под неё. Нужна подкладка для того, чтобы банально утолщить слой текстолита для шурупов, так как крепиться сие дело будет именно шурупами! Никакие клеи не обеспечат нужного крепления, ибо вы не сможете идеально отцентровать девайс, а на оборотах примерно 1200 rpm - центробежные силы будут , ой как давать о себе знать! Поразлетается всё к “котам под хвост”. Надо нам теперь просверлить всё это дело. Сверло на 0.5 подойдёт идеально для переходных отверстий и 2.5 мм - под шурупы. Металлизацию переходных отверстий я делал так: брал ножки от резюков ЛМТ-0.125 и вставлял их в отверстие. Потом обкусывал их так, чтоб над поверхностью платы торчало с обеих сторон не более 0.8, максимум 1 мм., и обжимал аккуратно это дело пассатижами (естественно - это всё после облуживания платы) в дальнейшем, это залуживалось капелькой припоя и почти не отличалось от заводской обработки.
Переходные отверстия замутили, знаю что это муторно и долго, но что сделаешь? Девайс делается для красоты глазу и должен соответствовать Следующий шаг: напайка регистров. В качестве флюса я юзал обнаковенный глицерин. Да, да эт который используется как смягчитель кожи рук в “Фейри” и в мыле. В больницах, иногда в качестве слабительного, так что, смотрите, чтоб во время пайки не попало в рот Ещё , не дай Бог, “клапан” не выдержит в ответственный момент ! )))))) Так, отвлеклись. Что там далее? Ага! Припаяли регистры. Следующим шагом припаиваем всё остальное (кроме бочёнка конденсатора на 1000 мкФ , проводков МГТФ и микроконтроллера — его будем паять в последнюю очередь и бегом в ваную! Ну или на кухню, короче — под горячую воду и с хоз. мылом и зубной щеткой - драить это всё дело! Отмывать глицерин. Видите ли он - токопроводящий, так что не упускаем это из виду. Отмыли?! Гуд! Сушим обычным феном и идем далее…. Сейчас я скажу, почему мы не стали припаивать сразу и капачитор на “кило” микрофарад и МК с проводочками. Всё потому, что при отмывании водичка не должна попасть внутрь конденсатора (на самом деле фигня, кондеры выдерживают без особых проблем и купание в УЗ ванне, хотя таким лучше не злоупотреблять. А вот вода из под крана это семечки. Прим. DI HALT). МГТФ лихо отлетит, когда будете драить зубной щеткой всё это дело, а МК нам надо ещё прошить перед запайкой. Вот и весь расклад. Теперь мы это всё дело припаиваем на нейтральный флюс — канифоль или спирт-канифольную смесь, чтобы не смывать (стараемся не заляпать плату ) Далее, берём 4 проводочка МГТФ длиной около150 мм, заботливо зачищенных от изоляции на 1.5 мм с одного конца и залуженных и припаиваем их к четырём внутренним площадкам регистра U5 примерно вот таким макаром: Вот это второе исправление моей ошибки в сборке — я начал припаивать проводки после установки вращ. дуги на материнку — это была жопа! пришлось припаивать тонюсеньким жалом, что бы подлезть туда! ) В качестве стабилизатора , я заюзал L7805 в ТО-92 корпусе, с виду похож на обыкновенный транзистор, чтобы припаять его , я повернул плоской стороной корпуса к плате и загнул ему ноги на манер SOT-223, чтоб меньше сверлить отверстий. Припаяли проводки, теперь можно отложить матринку в сторону и разогнуть натруженную спину Фууух! Возмёмся за дугу! Судя по фотке, вы наверное уже догадались как там всё запущенно Светодиоды диаметром 3 мм , зелёные. Лицевая сторона в железе, а на бумажной печатке — вид с оборота, там отверстия под резюки и пятачки для припайки МГТФ. Нам осталось припаять все оставшиеся проводки к вращающейся дуге, как раз к этим пятачкам и диоды к своим местам. В дальнейшем, они соберутся в один жгут и закрепятся термоклеем. Главное , с длиной не подъе… проколоться )) Так-с, у нас есть материнская плата с запаянными на неё регистрами, обвязом питания и 4-мя проводками в самом хитром, для пайки, месте. А также дуга — проецирующая часть девайса, с пучком проводов и светодиодами. Настало время это всё обьеденить в один союз-нерушимый диодов горящих… Помните, я говорил про отрезок трубочки? Вот сейчас он нам и понадобится. Берем это кусочек трубочки (с пропилом по средине) и в этот пропил вставляем нижней частью дуги вот так и запаиваем. получается вот такое вот чудо с бородой : Энд нау… Наберёмся терпения и приступим к методичному медитированию с паяльником — надо же припаять эту бороду на свои места. Каждый свисающий кончик МГТФ надо будет припаять на положенный ему пятачок на материнке. Железо готово. Остался софт. …это жуткое слово - Ассемблер Софт пишется для 13 тиньки и только для неё! Конечно можно портировать прогу в более увесистые МК, но это будет казаться нелепо данный девайс создавался, как проверка способностей автора на пробе. Так как я сам недавно начал увлекаться программированием на ассемблере и на МК в частности, то Гуру этого дела прошу меня сильно ногами не пинать Для начала создадим блок схему. “- Фууу !! фтопку схему !! Сразу кодим !! Блок-схема для недоумков !! “. Э нет! Тожет блок-схема это не так интересно, как кажется на первый взгляд, но удержать в голове, весь этот извратский код, все эти переходы и вызовы, просто невозможно! (На самом деле не все так сложно — вопрос опыта. Хорошо структурированная программа, будь она даже на ассемблере, неплохо удерживается в голове. Прим. DI HALT) Так что - схема рулит! Рисуем: Ну, а сам код с комментариями сныкан в архив. Прям вместе с проектом в AVRStudio. Файлы к статье: Исходники Печатная плата З.Ы. А чуть позже я добавил еще и второй кадр — новогоднее приветствие: Взято отсюда
Название проигрываемого трека на корпусе Вот, не плохая статья по моему мнению. Название проигрываемого трека на корпусе / а опубликовать(здесь) нельзя ?
Самые простые пропеллерные часы)) Да простит меня MAQUEEN за баян. Очень мне понравились "Часы - светодиодные, пропеллерные" из 5 поста. Решил собрать (уже собрал ФОТО) Перерыл кучу инфы, от ТАКИХ (кстати нашел и схему и печатки и прошивку если нужно могу выложить) до ТАКИХ. Вот на ЭТИХ остановился. Они самые простые)) Минимальное число деталей , немножко механики. Я сделал на кулере от блока питания. Плюс питания идет через щетку на якорь, в верху дырка (в плате и кулере), минус скользит сбоку лопастей (сточил до железа и почистил наждачкой). Светодиоды использовал от старых сименса и самсунга (маленькие СМД) Микриков для установки часов не устанавливал.Опять дополнительный вес.Установку можно провести закарачивая нужные ножки контролера на землю.(смотрите схему). Я чтоб не заморачиваться с проводами приделал 5 крен, т.е. при увеличении питания пропеллер крутится быстрее, а часы питаются через крен и не дохнут, диапазон питания PIC16F84A 2-6 вольт. Печатная плата и расположение деталей: СМД кандер на 220мФ я не нашел, поставил параллельно 22мФ и 47мФ + 100пикушек. Кандеры нужны чтоб поддерживать питание, скользящий контакт как никак, и фильтровать шум. Прошивал ЭТИМ Программа для PIC16F84A здесь: mclock8_hex.txt Печатка для часиков: plokste laz.zip Печатка для светодиодов: LED.lay
Фонтан времени Ща бум учиться магии Время тут знаете ли останавливать... Не, ну там еще замедлять... И в обратную отмотаем Вот, наткнулся на интересную видюшку, тута: КАК?!! Очень просто. В темноте движущийся предмет- капает вода. Если произойдет вспышка света, мы увидим каплю воды в тот момент когда она падет, фактически движение будет незаметно. Следующая вспышка застанет каплю чуть ниже. Если вода будет капать непрерывно, и вспышки света по интервалу времени будут совпадать с интервалом между каплями, будет иллюзия что капля висит в воздухе, если интервалы вспышек правильно подобрать, также можно достичь эффектов замедления падения и даже возвращения. Варианты Целых два: 1) На 555 таймере (простая) 2) На PIC16LF628A (сложнее) Вариант одЫн Тут все просто. Изменяя сопротивление подстроечного резистора на 10к менем частоту импульсов. Вариант два Я попытался разобраться в этом ужасе но не смог))) Эта схема управляет компрессором, и определяет когда капля падает- с помощью двух контактов, вода подсолена: Вот ТУТ прошивка. Вот плата: Сие чудо во собранном виде примерно такое: Вода окрашена люминофором "Флуоресцин натрия". Светодиоды - "ультрафиолетовые", короче синенькие)) Выбираем вариант по душе и собираем. Как средства появятся приступлю к сборке. Форумы: и РАЗ и ДВА и ТРИ и РУС Фсем и самого и да собрать))))
Часы за выходные Даже наверное не просто простые, а супер простые. Данный проект на микроконтроллере можно назвать проектом выходного дня, так как на разработку и создание этих часов с нуля ушло 1,25 дня, а учитывая, что у вас будет под рукой готовый код, то вы управитесь быстрее. Нам понадобятся: Кварцевый резонатор на 16 МГц, микроконтроллер ATTINY2313, 2 кнопки, 2 конденсатора на 22 пф, конденсатор на 220 нф, линейный стабилизатор питания 7805, 4 транзистора КТ817Б, ну и четыре семисегментных светодиодных индикатора, у меня это SA15–11GWA (высота цифр 38 мм) и горстка резисторов. Приведенный список соответствует той конструкции, что на фотографиях. Вы можете использовать иные комплектующие (более крупные индикаторы, другой микроконтроллер и т.д.), и тогда придется пересчитать некоторые сопротивления. В общем простор для творчества большой. Отечественные транзисторы пришлось использовать, поскольку под рукой ничего другого не было, если бы была возможность выбирать, то я бы поставил полевые транзисторы. Итак, имеющиеся компоненты: Микроконтроллер обошелся в 41 руб, индикаторы по 52,8 руб за штуку. Всего получается 252,2 руб. Остальное было извлечено из запасов, но в любом случае бюджет бы не превысил бы 300 рублей. Микроконтроллер тактируется кварцем с частотой 16 МГц. В качестве счетчика времени, внутри микроконтроллера запущен 16 битный таймер с предделителем 256 (т.е. частота отсчетов таймера 62500 Гц), настроенный на создание прерывания по достижении счетчиком значения 625. Таким образом, мы получаем прерывания ровно 100 раз в секунду. Значение времени хранится в глобальных переменных, и каждое прерывание мы увеличиваем значение миллисекунд на 1. Если количество миллисекунд достигает 100, то мы увеличиваем на 1 значение секунд, а значением миллисекунд сбрасываем. И так далее вплоть до десятков часов, которые сбрасываются по достижении 24 без увеличения следующего разряда. Часы предельно простые, поэтому не считают ни дату, ни перевод на зимнее/летнее время и т.д. Данные функции можно реализовать программно, без изменения аппаратной части, поэтому остаются для реализации желающим. Разобравшись с таймером и прерываниями мы получаем значение текущего времени в глобальных переменных. Теперь займемся выводом этих значений. Так как количество портов микроконтроллера ограничено, то будем эксплуатировать инерционность зрения. Катоды всех 4 индикаторов соединены параллельно, а аноды коммутируются отдельно, что позволяет нам в любой момент времени вывести любую цифру на любой индикатор. Быстро переключая порт B, к которому подключены катоды и быстро переключая аноды мы можем создать видимость, что у нас работают все 4 цифры, хотя единовременно работает только одна. Иными словами, если текущее время 12:51, то мы выводим цифру 1 на первый индикатор, спустя малый промежуток времени (у меня 1 мс) выводим цифру 2 на второй индикатор, спустя 1 мс выводим 5 на 3 индикатор, спустя 1 мс выводим 1 на 4 индикатор и так далее по кругу. Кнопки опрашиваются после каждого цикла отображения (примерно 40 раз в сек), обработка нажатия снабжена антидребезгом и «защелкой» в виде флага, что позволяет считать именно нажатия не отвлекаясь на удержание. Программа: Code: /***************************************************** This program was produced by the CodeWizardAVR V1.25.7 beta 5 Professional Automatic Program Generator © Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Simple AVR Clock Version : Date : 01.05.2008 Author : Spiritus Sancti Company : licrym.org Comments: Chip type : ATtiny2313 Clock frequency : 16,000000 MHz Memory model : Tiny External SRAM size : 0 Data Stack size : 32 *****************************************************/ #include <tiny2313.h> #include <delay.h> #define digit_display_time 1 unsigned char milliseconds, seconds, ten_seconds, minutes, ten_minutes, hours, ten_hours; bit button_pressed1, button_pressed2; // Timer 1 output compare A interrupt service routine interrupt [TIM1_COMPA] void timer1_compa_isr(void) //Прерывание происходит 100 раз в сек, сохраняем в глобальные переменные текущее время { milliseconds++; TCNT1H=0x00; TCNT1L=0x00; if (milliseconds >= 100 ) { milliseconds = 0; seconds++; }; if (seconds >= 10) { seconds = 0; ten_seconds++; }; if (ten_seconds >= 6) { ten_seconds = 0; minutes++; }; if (minutes >= 10) { minutes = 0; ten_minutes++; }; if (ten_minutes >= 6) { ten_minutes = 0; hours++; }; if (hours >= 10) { hours = 0; ten_hours++; }; if (ten_hours >= 2 && hours == 4) { ten_hours = 0; hours=0; }; } void main(void) { unsigned char digits[10] = {18, 159, 56, 28, 149, 84, 80, 31, 16, 20}; //массив для генерации цифр. Какой элемент массива будет отправлен в порт, такая цифра и загорится. // Crystal Oscillator division factor: 1 CLKPR=0x80; CLKPR=0x00; // Input/Output Ports initialization // Port A initialization // Func2=In Func1=In Func0=In // State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1 PORTB=0xFF; DDRB=0xFF; // Port D initialization // Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=In Func0=In // State6=0 State5=0 State4=0 State3=0 State2=0 State1=P State0=P PORTD=0x03; DDRD=0x7C; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0A output: Disconnected // OC0B output: Disconnected TCCR0A=0x00; TCCR0B=0x00; TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 62,500 kHz // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: On // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x04; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x02; OCR1AL=0x71; OCR1BH=0x00; OCR1BL=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // Interrupt on any change on pins PCINT0-7: Off GIMSK=0x00; MCUCR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x40; // Universal Serial Interface initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; // Global enable interrupts #asm("sei") while (1) { PORTD |=1<<5; //включаем первый индикатор PORTB = digits[ten_hours]; //выводим на него десятки часов delay_ms(digit_display_time); //ждем, время индикации одного разряда задается в заголовке программы PORTD &=~(1<<5); //выключаем первый индикатор и переходим дальше и так в цикле для каждого из 4 разрядов PORTD |=1<<4; PORTB = digits[hours]; if (milliseconds >= 50) PORTB &=~(1<<4); else PORTB|=1<<4; //моргание точки delay_ms(digit_display_time); PORTD &=~(1<<4); PORTD |=1<<3; PORTB = digits[ten_minutes]; delay_ms(digit_display_time); PORTD &=~(1<<3); PORTD |=1<<6; PORTB = digits[minutes]; delay_ms(digit_display_time); PORTD &=~(1<<6); //а вот теперь проверим кнопочки в стиле часов Электроника 13 if ((PIND & 1<<0) == 0 && button_pressed1 == 0) //Если нажата кнопка 1 { delay_ms(1); hours++; button_pressed1 = 1; }; if ((PIND & 1<<0) == 1) button_pressed1=0; //Если отпущена то сбрасываем флаг if ((PIND & 1<<1) == 0 && button_pressed2 == 0) //Если нажата кнопка 2 { delay_ms(1); minutes++; button_pressed2 = 1; }; if (PIND & 1<<1) button_pressed2=0; }; } скачатьпечатку от пользователя Leosis Источник: http://licrym.org
SpokePOV-Светодиодное колесо велосипеда Проект представляет собой электронную игрушку, которая превращает ваше велосипедное колесо в дисплей! Проект включает в себя бесплатное эскизное проектирование, с открытым исходным кодом (HEX), програмное обеспечение которое поможет вам создать ваше, индивидуальное, световое колесо! Характеристики и особенности: - Может быть использовано с любым велосипедным колесом (а может и не велосипедным)! - 30 светодиодов на каждой стороне (22 для BMX) х 256 пикселей радиальные - Запускается от 2-3шт АА батареек, хватает на 10 часов или более, предполагая, 3000mAh (все зависит от батареек) - Светодиоды 5mm высокой яркости, красный / желтый / зеленый или синий цвет - Автоматически отключается через 3 минуты - Программа работает на Linux или Windows или Mac с параллельным портом или через последовательный порт ВСЮ тему опубликовать здесь не смогу, так как не поместитсО. Ну, кого заинтересовало полное описание от А до Я ЗДЕСЬ
А можно сделать что-то типа пропелерных часов, но только чтоб они не время, а текст показывали? Просто слово без изменений
Всё что нарисуешь то и будет. К примеру: Теперь берём каждый столбик и складывеем биты в байты, получается что-то типа: 0x64 0xE6 0x59 0x9A 0xDE 0x4C 0x00 (S) И так далее до 360 байт=столбиков, как могли заметить каждая буква это 7 байт (это DOS шрифт 7x8) итого в окружность можно уместить около 51 символа. Рисуй что хочешь, пиши в еепром, и воля! 1 байт = 8 бит Вот смотри. Я запостил выше картинку со словом Spider. Внизу картинки можно наблюдать строчку типа 0123456789... Эта строчка нумерует СТОЛБИКИ. Теперь разбиваем картинку на столбики, а в каждом столбике по 8 квадратиков. Тот квадратик, что закрашен чёрным = 1, что не закрашен =0. Теперь пишем столбик сверху вниз: 0: 01100110 1: 11100110 и так далее. Если откыть Калькулятор, выбрать Вид-Инженерный и в изменившимся виде калькулятора выбрать Bin и написать эту последовательность нолей и едениц, затем выбрать Hex. То получим чсло: 0: 0x66 1: 0xE6 и так далее. Вот эти циферки, а точнее их последовательность и кодирует изображение. Более подробно смотрим ЗДЕСЯ
Zegar widmowy - Propeller Clock (Самые крутые))) И так! Пропеллерные часы мы собрали, но самые простые. По просьбам трудящихся будем собирать "Самые крутые", по секретной польской технологии (спертой ОТСЮДА). Готовый девайс ТЫЦ Схема Две штуки. Драйвер мотора от винчестера и самих часов. Мотор я отдельно не стал запитывать, а тупо поменял местами фазы (так он по часовой крутиться стал) да присобачил кренку на 5 вольт (теперь питание нужно только 12). Драйвер мотора: Схема устройства: Печатная плата Печатка со схемой идет в формате Ddb (Altium Designer Winter 09) распечатать для ЛУТ метода я не смог, поэтому конвертанул в pcb (P-CAD 2006) печатал от туда, и в PDF. Выбираем что удобней (PDF) и печатаем)) Как ее сделать смотрим ТУТ Прошивка Есть и исходники (*.c *.h) есть скомпилированная (*.hex). Как flash так и eeprom. Правда фалов много: И что именно шить я пока не разобрался Так что советом можно помочь Часы я почти собрал, осталось светики и LED-драйверы. Как сделаю выложу фото. Если есть вопросы пишем в ПМ. Все необходимые файлы: narod-1.36 МБ depositfiles.com-1.36 МБ Всем и самого bymugen^_^ Спешил фо EndLeSSDre@M