roboforum.ru

Технический форум по робототехнике.

Магический кристалл

Ответить

Re: Магический кристалл

yak-40 » 11 мар 2010, 21:14

Ну с дыханием всё просто. В МК есть аппаратные ШИМ(широтно-импульсные модуляторы)
Подключаем к одному из выводов ШИМ светодиод, пишем программу и Вуаля :)
По поводу заряда сложнее. Надо решить как МК(читаем кристалл)будет общатся с окружающей средой.
На вскидку - можно использовать ИК-лучи. Подключить, например ТСОП ко входу внешнего прерывания.
Запоминать заряд можно в ЕЕПРОМ. Информация будет сохраняться даже после разряда батареи и отключения от питания. А подсчитывать время заряда кристала можно аппаратным таймером, имеющимся в МК.

Добавлено спустя 34 минуты 52 секунды:
Да, забыл. Для измерения напряжения батареи нужно использовать АЦП(аналогово-цифровой преобразователь)Он имеется в каждом МК(почти). Подключаем батарею ко входу АЦП, через резистивный делитель, пишем программу и опять-же Вуаля :)
Последний раз редактировалось yak-40 11 мар 2010, 21:23, всего редактировалось 1 раз.

Re: Магический кристалл

Vovan » 11 мар 2010, 21:20

ИМХО: чтобы выполнить все пункты, необходимо в первую очередь организовать питание МК, т.е. без регулятора не обойтись, потому что мерять напряжение мы будем на батарее относительно образца и только тогда можно переходить к №1.
№2 описАл yak-40.
№3 что-то мне подсказывает, что условное обновление заряда должно длиться определённое время, поэтому нужно ещё и таймер задействовать в плане того, что он считает время "коннекта"... Ввод протокола RC5 ещё добавит проблемм (т.е. в создании "пульта"), может реально герконом обойтись?

Кроме всего неясно про 4-ре уровня яркости СД, как отличить на глаз, например, 2 и 3 уровень? чё-то мне кажется в этом плане максимум два уровня реально, остальное уже трудно распознаваемо... Если ввести RGB СД, тогда другое дело :D
и немного офтопа (типо подсолить, что ли): зря Вы на асме за сие взялись - асм, чаще всего, проблема самого асматика...

Re: Магический кристалл

GrayHunter » 11 мар 2010, 21:33

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

Кстати, у меня в плане сделать 2 вида зарядных столбов:
- обычный
- и с буфером (заряжает со скоростью x2, если есть заряд в кристалле-буфере - иначе со скоростью обычного столба). Т.е. придётся в столб с буфером тоже МК ставить, чтобы он накапливал заряд (с обычной скоростью), а отдавал его магическому кристаллу с удвоенной скоростью.

Ну и в столбе с буфером может быть добавлена ещё одна перемычка, которая зарядит кристалл до максимума моментально (этот столб нужен будет мастерам/организаторам игр, чтобы подготовить кристаллы к игре).

Да, это может показаться замороченным, но это всё. :wink:
---

Итак,
Подключаем к одному из выводов ШИМ светодиод, пишем программу
можно поподробнее плз? примерчик, например, чтобы я по аналогии дальше сам? (желательно чтобы было 4 уровня максимальной яркости, которые зависят от заряда кристалла)
Кроме всего неясно про 4-ре уровня яркости СД, как отличить на глаз, например, 2 и 3 уровень? чё-то мне кажется в этом плане максимум два уровня реально, остальное уже трудно распознаваемо...
может быть светодиодов будет несколько - тогда яркость можно будет регулировать не только яркостью самих светодиодов, но и включением/выключением. Так даже проще, наверное, будет...правда и дороже выйдет наверняка...
Запоминать заряд можно в ЕЕПРОМ. Информация будет сохраняться даже после разряда батареи и отключения от питания.
это хорошо - можно будет на продолжительных играх просто менять питание, сохраняя достижения игрока. :good:
Подключаем батарею ко входу АЦП, через резистивный делитель, пишем программу
можно поподробнее плз (примерчик, например)? :roll:
резистивный делитель - этот? В чип и дипе нет такого...подскажите, пожалуйста, где его можно достать в Москве и подешевле

Re: Магический кристалл

yak-40 » 11 мар 2010, 21:42

Согласен, с герконом проще. Но это если не надо определять тип предмета поднесённого к кристалу.
А ежели надо, тогда лучше ИК. И не обязательно RC5, можно просто по количеству импульсов или по частоте.
Про асм опять-же согласен с Vovan :friends: На Си например помощников было-бы поболее :)

Добавлено спустя 2 минуты 54 секунды:
GrayHunter писал(а):(примерчик, например)?

На ассемблере - я пас :cry:

Добавлено спустя 2 минуты 30 секунд:
GrayHunter писал(а):резистивный делитель - этот? В чип и дипе нет такого...подскажите, пожалуйста, где его можно достать в Москве и подешевле
Резистивный делитель это два резистора соединённых последовательно и предназначеных... Впрочем без обид, а Вы уверены что справитесь с этой задачей? :wink:

Re: Магический кристалл

Vovan » 11 мар 2010, 21:43

резистивный делитель сначала нужно расчитать, а уж потом доставать...
В данном случае это два последовательно соединённых резистора между клеммами батареи, а их общая точка к АЦП (см. рисунок)
Вложения
Resist.jpg
Resist.jpg (9.54 КиБ) Просмотров: 1711
Последний раз редактировалось Vovan 11 мар 2010, 21:50, всего редактировалось 1 раз.

Re: Магический кристалл

GrayHunter » 11 мар 2010, 21:50

Резистивный делитель это два резистора соединённых последовательно и предназначеных... Впрочем без обид, а Вы уверены что справитесь с этой задачей?
я быстро учусь:
Простейший резистивный делитель напряжения представляет собой два последовательно включённых резистора R1 и R2, подключённых к источнику напряжения U. Поскольку резисторы соединены последовательно, то ток через них будет постоянен (напомним, что ток -- это количество зарядов в единицу времени. Если бы ток не был бы постоянен, то заряды либо где-то накапливались бы, либо откуда-то вводились бы в цепь, однако на выходе мы имеем ровно столько зарядов, сколько поступило в цепь на входе и совокупный заряд участка цепи не изменяется во времени). Падение напряжения (уменьшение потенциала при перемещении заряда от одной точки цепи до другой её точки) на каждом резисторе согласно закону Ома будет пропорционально сопротивлению.


Согласен, с герконом проще. Но это если не надо определять тип предмета поднесённого к кристалу.
А ежели надо, тогда лучше ИК.
у меня предмет будет определяться с помощью перемычек (см. выше).

На Си например помощников было-бы поболее
На ассемблере - я пас
мда, уже бОльшую часть написал на асм, а теперь на си переходить, переписывать всё...
Ну, давайте посмотрим, чем это си от асм отличается :roll:
Посоветуйте плз какой-нибудь учебничек с примерами по си, чтобы можно было быстро общую логику понять, как, например, учебник котов по асм?

Re: Магический кристалл

Vovan » 11 мар 2010, 21:56

GrayHunter писал(а):мда, уже бОльшую часть написал на асм,

сомневаюсь я что это бОльшая часть :wink:

Re: Магический кристалл

yak-40 » 11 мар 2010, 21:57

я быстро учусь:
А вот это похвально :good:
у меня предмет будет определяться с помощью перемычек

С помощью перемычек как-то не по магически :) Я бы сделал бесконтактно. Поднёс - сработало.

Re: Магический кристалл

GrayHunter » 11 мар 2010, 22:00

вообще, резистивный делитель чем-то мне реле напоминает...

сомневаюсь я что это бОльшая часть
примерно 240 строк уже написал. скромно, конечно, но это почти всё, что нужно, кроме трёх вышеперечисленных моментов :wink:

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

Так что насчёт си? рекламы было много - что посоветуете, чтобы быстро вникнуть в суть, чтобы переписать то, что уже написано на асм, и продолжить разбираться с последними тремя моментами?

Re: Магический кристалл

yak-40 » 11 мар 2010, 22:03

Курс АВР123 можете почитать. Всё очень доступно и понятно.

Добавлено спустя 1 минуту 16 секунд:
вообще, резистивный делитель чем-то мне реле напоминает...
Абсолютно разные вещи. И по функционалу и по внешности :)

Re: Магический кристалл

Vovan » 11 мар 2010, 22:23

как "asm-инфицированый" предпочитаю Б. Керриган, Д. Ритчи Язык программирования C.
зы: 240 на мигание не многовато?

Re: Магический кристалл

rig » 12 мар 2010, 09:04

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

Re: Магический кристалл

Angel71 » 12 мар 2010, 10:29

можно и контакты продумать и свет как-то приспособить и о си/бэйсике поговорить. но!.. внешне сейчас всё похоже на броуновское движение с непонятным конечным результатом
:) может, пока достигнута некая веха, сейчас настало самое время посмотреть и проработать всю идею в целом?
- батарейки/акумы, какие и сколько
- будет ли использоваться стабилизатор. понижающий, повышающий, понижающе-повышающий,... :oops: может что-то на подобии MAX5092?
- какие светодиоды, сколько
- какой корпус деталей, каких размеров платка выйдей
- в какую копеечку всё влетит
...
и подсчитать сколько это всё примерно потребляет, т.е. на сколько в теории его хватит

Re: Магический кристалл

Vovan » 12 мар 2010, 18:29

2Angel71:+1

Re: Магический кристалл

GrayHunter » 12 мар 2010, 18:49

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

240 на мигание не многовато?
я здесь спрашиваю только конкретные вещи, которые мне не понятны. Пример кода с миганием - это лишь маленькая часть кода. :wink:

Б. Керриган, Д. Ритчи Язык программирования C
Курс АВР123 можете почитать. Всё очень доступно и понятно.
почитал и продолжаю читать, но по ходу возник такой вопрос:
если "дыхание" предполагает длительную по времени подпрограмму, то как быть с тем фактом, что пока кристалл дышит (выполняется подпрограмма дыхания) - его уже давно могли вынуть из, например, украшения? Т.е. возможно ли запустить подпрограмму одновременно с другими подпрограммами/программой? может быть как-то фоново?
Т.е. нужно, чтобы даже во время дыхания постоянно/часто периодично происходили проверки на месторасположение кристалла. Такое возможно? как?


Rambler\'s Top100 Mail.ru counter