|
Тестовая система |
|
|
|
Jan 20 2009, 16:20
|
Группа: Новичок
Сообщений: 9
Регистрация: 1-10-08
Пользователь №: 40 629

|
Доброго времени суток.Задали задание создать тестовую систему на основе микроконтроллера и компа.Суть состоит в том что на компе допустим есть какая то программа,которая связана с базой данных и т.д.Она выводит вопросы и варианты ответов(планируется подключить проэктор),а в аудитории сидят студенты и держат в руках пульты.Пульт состоит из телефонной клавиатуры и дисплея.На дисплее отображается различная информация,допустим время до окончания тестирования,или введеный вариант ответа.Для пульта думаю использовать ATtiny2313, знаковый LCD 2*16.Но проблема состоит не в разработке пульта, а в том как соединить допустим 30 пультов с компьютером.Тоесть прошу помощи в выборе интерефейса и как соеденить это все с компом. I2C к сожалению не подходит- длина максимум 1 метр.Заранее благодарен.
|
|
|
|
|
Jan 20 2009, 16:40
|
Группа: Новичок
Сообщений: 9
Регистрация: 1-10-08
Пользователь №: 40 629

|
Цитата(vesago @ Jan 20 2009, 19:32)  RS-485. Компьютер последовательно опрашивает пульты. У каждого пульта свой адрес. Протокол WAKE. 2313 наверное маловато будет. Не знаю как реализовать в мк?И не знаю как прицепить к компу?А почему не хватит тини2313?
|
|
|
|
|
Jan 20 2009, 17:12
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 26-07-07
Из: Samara
Пользователь №: 29 388

|
Цитата(vlad555 @ Jan 20 2009, 20:40)  Не знаю как реализовать в мк?И не знаю как прицепить к компу?А почему не хватит тини2313? Реализация в пульте - м/c преобразователь уровней + UART МК + твой протокол Подключение к ПК - через преобразователь Usb-rs485 или rs232-rs485 есть готовые в продаже или сам делаешь + опять же твой протокол Почему не хватит tiny2313 - ресурсов маловато
--------------------
|
|
|
|
|
Jan 20 2009, 17:23
|
Группа: Новичок
Сообщений: 9
Регистрация: 1-10-08
Пользователь №: 40 629

|
Цитата(Hunter07 @ Jan 20 2009, 20:12)  Реализация в пульте - м/c преобразователь уровней + UART МК + твой протокол Подключение к ПК - через преобразователь Usb-rs485 или rs232-rs485 есть готовые в продаже или сам делаешь + опять же твой протокол Почему не хватит tiny2313 - ресурсов маловато та мне там всего лишь выводить информацию на дисплей и отправлять в минуту какой то байт информации,типа ответ.Надеялся что хватит тиньки.Можете уточнить о каких ресурсах ишла речь?
|
|
|
|
|
Jan 20 2009, 17:42
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 26-07-07
Из: Samara
Пользователь №: 29 388

|
Цитата(vlad555 @ Jan 20 2009, 21:23)  та мне там всего лишь выводить информацию на дисплей и отправлять в минуту какой то байт информации,типа ответ.Надеялся что хватит тиньки.Можете уточнить о каких ресурсах ишла речь? У данного МК 2Кб флэш и 128 байт ОЗУ... Тебе нужно поднять какой либо протокол обмена между ПК и устройством. Причем с адресацией и проверкой ошибок желательно. + драйвер дисплея + какая то логика работы посчитай сколько чего займет памяти и увидишь - уложишься или нет... можно взять мк помощнее и не парится mega48 например... на чем программировать собрался, на асме? PS. пока сочинял ответ - уже ответили)
Сообщение отредактировал Hunter07 - Jan 20 2009, 17:44
--------------------
|
|
|
|
|
Jan 20 2009, 17:45
|
Группа: Новичок
Сообщений: 9
Регистрация: 1-10-08
Пользователь №: 40 629

|
Цитата(Hunter07 @ Jan 20 2009, 20:42)  У данного МК 2Кб флэш и 128 байт ОЗУ... Тебе нужно поднять какой либо протокол обмена между ПК и устройством. Причем с адресацией и проверкой ошибок желательно. + драйвер дисплея + какая то логика работы посчитай сколько чего займет памяти и увидишь - уложишься или нет... можно взять мк помощнее и не парится mega48 например...
на чем программировать собрался, на асме?
PS. пока сочинял ответ - уже ответили) На С.
|
|
|
|
|
Jan 20 2009, 17:51
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 26-07-07
Из: Samara
Пользователь №: 29 388

|
Цитата(vlad555 @ Jan 20 2009, 21:45)  На С. тогда стоит посмотреть на мегу.
--------------------
|
|
|
|
|
Jan 20 2009, 18:12
|
Группа: Новичок
Сообщений: 9
Регистрация: 1-10-08
Пользователь №: 40 629

|
Цитата(Hunter07 @ Jan 20 2009, 20:51)  тогда стоит посмотреть на мегу. Я не совсем понял.Мне стои взять поцепить преобразователь RS232/RS485 на КОМ порт?а потом плясать по этим двум проводкам? Не подскажите где взять программу на МК работы с RS485?Или так же само как и с RS232?
|
|
|
|
|
Jan 20 2009, 18:40
|
Тутэйшы
   
Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263

|
для 485 еще нужно дергать направление прием/передача. Можно программно, можно соорудить примитивную схему на диоде, кондере, резаке и ключе, которая сама переключит как надо. И работать как по 232 не забывая о полудуплексе. Протокол типа - мастер шлет С0 05 00 LRC, слейв отвечает C0 05 00 01 LRC. C0 - маркер начала, 05 - адрес для примера, 01 - код нажатой кнопки, LRC - понятно. Прога постоянно сканирует сеть и обрабатывает принятные данные. Я бы не напрягался особо взял m168. Приятно, когда не надо о ресурсах заботиться.
|
|
|
|
|
Jan 20 2009, 19:12
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(vesago @ Jan 20 2009, 19:32)  RS-485. Компьютер последовательно опрашивает пульты. У каждого пульта свой адрес. Протокол WAKE. 2313 наверное маловато будет. Все это будет весьма неудобно с точки зрения разводки (если пульты именно в руках, а не к столам прикручены намертво). Хотя можно попробовать развести магистраль витой парой и использовать стандартные телефонные коробки, четырех линий как раз хватит, но не очень это правильно - минимум полутораметровые ответвления. Я бы такое делал в беспроводном варианте - mega8+CC1100 (CC2500) и LCD без подсветки, чтобы по энергопотреблению не усердствовать. Но, конечно, заметно сложнее, чем RS-485...
|
|
|
|
|
Jan 20 2009, 19:35
|

старший лаборант
     
Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097

|
Цитата(Hunter07 @ Jan 20 2009, 19:42)  У данного МК 2Кб флэш и 128 байт ОЗУ... Тебе нужно поднять какой либо протокол обмена между ПК и устройством. Причем с адресацией и проверкой ошибок желательно. + драйвер дисплея + какая то логика работы посчитай сколько чего займет памяти и увидишь - уложишься или нет... Хмм... Не совсем корректно сравнивать AVR с 51, но для прикидки можно. Недавно решил подобную задачку. Дисплей, к счастью, был нужен только на первом этапе, для отладки, в конце всё выбросил. Уместился в 2 килобайта флеши и 256 байт ОЗУ, из них "нижние" 128 заняты полностью под служебные переменные, "наверху" - стек и некий буфер, к RS-485 не относящийся... Некоторые короткие подпрограммы пришлось впихивать по адресам, обычно используемым для векторов прерываний (не все использовались, это спасло). Писал на ASM. Имхо, для данной задачи Мега8 - оптимум, тем более что его цена отличается от 2313 на сущие копейки. В том случае, кроме цены, был критичен размер корпуса МК, доступность средств разработки и технологичность сборки, потому такой напрягающий выбор получился; здесь - вроде ж нет...  По RS-485... строго говоря, нужно ещё соблюдать т.н. "time gap" между приёмом и передачей, они оговариваются в ДШ на драйвера RS-485. В случае C функцию putchar во избежание проблем лучше переписать - дёргать DE и RE перед передачей символа и после её, в паузах стоять на приёме.
--------------------
Китайская комплектация - европейское качество! ;)
|
|
|
|
|
Jan 20 2009, 19:43
|
Группа: Новичок
Сообщений: 9
Регистрация: 1-10-08
Пользователь №: 40 629

|
Цитата(Harbinger @ Jan 20 2009, 22:35)  Хмм... Не совсем корректно сравнивать AVR с 51, но для прикидки можно. Недавно решил подобную задачку. Дисплей, к счастью, был нужен только на первом этапе, для отладки, в конце всё выбросил. Уместился в 2 килобайта флеши и 256 байт ОЗУ, из них "нижние" 128 заняты полностью под служебные переменные, "наверху" - стек и некий буфер, к RS-485 не относящийся... Некоторые короткие подпрограммы пришлось впихивать по адресам, обычно используемым для векторов прерываний (не все использовались, это спасло). Писал на ASM. Имхо, для данной задачи Мега8 - оптимум, тем более что его цена отличается от 2313 на сущие копейки. В том случае, кроме цены, был критичен размер корпуса МК, доступность средств разработки и технологичность сборки, потому такой напрягающий выбор получился; здесь - вроде ж нет...  Интересно,если не в тягость,могли бы Вы поделиться своими наработками,обещаю сохранить авторские права,все равно на асме не пишу и даже его не знаю,хочу вобщем посмотреть,и может что то полезное взять?!
|
|
|
|
|
Jan 20 2009, 20:03
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Harbinger @ Jan 20 2009, 22:35)  Хмм... Не совсем корректно сравнивать AVR с 51, но для прикидки можно. Недавно решил подобную задачку. Дисплей, к счастью, был нужен только на первом этапе, для отладки, в конце всё выбросил. Уместился в 2 килобайта флеши и 256 байт ОЗУ, из них "нижние" 128 заняты полностью под служебные переменные, "наверху" - стек и некий буфер, к RS-485 не относящийся... "Драйвер" дисплея (если речь о модуле на 44780) в реализации для AVR - это полсотни слов, включая инициализацию. Описанная изначально задача не то что влезет в 2313, но еще и места останется куча. Но.. Если писать на asm... Цитата для данной задачи Мега8 - оптимум, тем более что его цена отличается от 2313 на сущие копейки. И как бы мега не оказалась даже дешевле. В любом случае, тут уж места с запасом, на чем ни пиши. Так что +1, о какой бы среде передачи не шла речь... Цитата В том случае, кроме цены, был критичен размер корпуса МК В MLF они одинаковые
|
|
|
|
|
Jan 20 2009, 20:18
|

старший лаборант
     
Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097

|
Цитата(vlad555 @ Jan 20 2009, 21:43)  Интересно,если не в тягость,могли бы Вы поделиться своими наработками,обещаю сохранить авторские права,все равно на асме не пишу и даже его не знаю,хочу вобщем посмотреть,и может что то полезное взять?! У меня почтовый адрес в профиле, на уровне алгоритма можем пообщаться. Там ничего сложного в общем-то. Цитата(rx3apf @ Jan 20 2009, 22:03)  "Драйвер" дисплея (если речь о модуле на 44780) в реализации для AVR - это полсотни слов, включая инициализацию. Описанная изначально задача не то что влезет в 2313, но еще и места останется куча. Но.. Если писать на asm... И как бы мега не оказалась даже дешевле. В любом случае, тут уж места с запасом, на чем ни пиши. Так что +1, о какой бы среде передачи не шла речь... В MLF они одинаковые  1. Да и на C не шибко много. Кейлом компилил - где-то в сотню байт уложился, с программным SPI вкупе (Экономлю провода, ЖКИ был через 74HC164 присобачен). Вряд ли с AVR сильно больше будет. Для старых контроллеров от Epson тоже где-то так, баловался - ну разве что контраст программно устанавливается и ещё всякая мелочь, байт 20 сверху. 2. Согласен  всё сейчас зависит от поставщика и курса $. Полгода назад, до пертурбаций, разница в цене составляла где-то две сигареты, не помню уже, в какую сторону. У нас и то и другое было 5 грн. с хвостом, в розницу. А снятый с производства AT90S2313 "маньяки" едва находили за 19, потом они совсем пропали. 3. Технологичность сборки. Там по количеству портов, габаритам и ремонтопригодности подходил только TSSOP-16, вообще ничто другое! Здесь, как я понял, и старый добрый DIP-40 вполне сойдёт. (off) Очень обидно, что AVR в TSSOP в природе нет!
--------------------
Китайская комплектация - европейское качество! ;)
|
|
|
|
|
Jan 21 2009, 03:49
|
Частый гость
 
Группа: Validating
Сообщений: 94
Регистрация: 18-01-09
Из: Красноармейск
Пользователь №: 43 560

|
Цитата(vlad555 @ Jan 20 2009, 19:20)  Доброго времени суток.Задали задание создать тестовую систему на основе микроконтроллера и компа.Суть состоит в том что на компе допустим есть какая то программа,которая связана с базой данных и т.д.Она выводит вопросы и варианты ответов(планируется подключить проэктор),а в аудитории сидят студенты и держат в руках пульты.Пульт состоит из телефонной клавиатуры и дисплея.На дисплее отображается различная информация,допустим время до окончания тестирования,или введеный вариант ответа.Для пульта думаю использовать ATtiny2313, знаковый LCD 2*16.Но проблема состоит не в разработке пульта, а в том как соединить допустим 30 пультов с компьютером.Тоесть прошу помощи в выборе интерефейса и как соеденить это все с компом. I2C к сожалению не подходит- длина максимум 1 метр.Заранее благодарен. Проводная связь здесь в принципе не подходит.А если преподаватель захочет сменить аудиторию? В новой тоже прокладывать кабели связи? Самое оптимальное решение, это радиопульты. Приемопередатчики позволяют легко найти 30 каналов, по одному каналу на пульт. В пределах аудитории на 433МГц пробьет даже антенна в виде проводка внутри корпуса пульта. Конечно программное обеспечение на радиопульты будет посложнее, чем для проводной связи, но и результат намного интереснее.
Сообщение отредактировал lepert - Jan 21 2009, 03:50
|
|
|
|
|
Jan 21 2009, 13:47
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 26-07-07
Из: Samara
Пользователь №: 29 388

|
Цитата(mdmitry @ Jan 21 2009, 12:47)  Так может автор определится сначала, что надо: проводная система или беспроводная. Для беспроводных на основе ZigBee (или Nanonet) есть стеки протоколов для организации сетей. Беспроводная система сложнее будет и дороже.
--------------------
|
|
|
|
|
Jan 22 2009, 18:33
|
Группа: Новичок
Сообщений: 9
Регистрация: 1-10-08
Пользователь №: 40 629

|
Насчет радиопультов - это конечно классно,но это сложновато для меня.А насчет аудитории,то пульты будут в одной аудитории,насчет сливания информаци - тоже неплохо придумано,просто в данном случае прийдется ставить дополнительный чип памяти,та еще представляю- каждый раз записывать тест (они ж будут часто меняться),к тому же батарейки в таком случае придется менять часто - геморно Так что вернемся к проводам.
|
|
|
|
|
Jan 23 2009, 11:12
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(vlad555 @ Jan 22 2009, 23:33)  Насчет радиопультов - это конечно классно,но это сложновато для меня.А насчет аудитории,то пульты будут в одной аудитории,насчет сливания информаци - тоже неплохо придумано,просто в данном случае прийдется ставить дополнительный чип памяти,та еще представляю- каждый раз записывать тест (они ж будут часто меняться),к тому же батарейки в таком случае придется менять часто - геморно Так что вернемся к проводам. Еще вопросы, давайте обсудим. А где геммора будет меньше: проводные пульты, которые соединяются в информационную локальную сетку (RS485) -- во время экспуатации системы будут постоянно возникать обрывы внутри соединительных проводов -- вспомните самое проблемное сместо компьютерных мышей. К тому же в студенческой аудитории будет заподло не подергать за хвост ненавистную девайсину особенно при неудачных знаниях. Либо пульты надо однозначно прикручивать к столам, а это несколько брутально, если не сказать вульгарно. беспроводная система, которая передает результат по радиоканалу -- здесь проблемы батареек и изначальная сложность разработки. Маловероятно, но в принципе возможно, что среди студентов появится какой-нибудь продвинутый, который обязательно сделает генератор помех. А Вам точно надо ли иметь интерактивный опрос? Может быть будет проще накопить ответы в EEPROM-е? (см. следующий пункт) автономная система -- это такая система, которая фиксирует (накапливает) ответы в процессе теста внутри самих девайсов. После тестирования ответы "сливаются" с девайсов с помощью непосредственного подключения к компу препода через COM-порт (RS232). Преимущества -- пульты не пришуруплены к столам (т.е. более цивилизованно), никто нарушить/испортить ситему систему в целом не сможет, максимум -- только себе создаст сложности. Очень легко реализуется. Недостатоки. Та же проблема с батарейками. Плюс, возникает проблема времени при копировании данных с пультов в комп препода: 30 пультов -- это как минимум несколько минут. А насчет выбора М8 или Т2313 -- народ Вам правильно гворит -- берите Мегу и забудьте про проблемы типа как запихнуть внуть еще немного функционала. Если Ваш проект окажется живучим, то Вам обязательно захочется туду еще чего-нибудь добавить.
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Jan 23 2009, 14:55
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(zhevak @ Jan 23 2009, 16:12)  проводные пульты
беспроводная система
автономная система Вы еще не все варианты рассмотрели  Во-первых, почему батарейки, а не аккумуляторы? Во-вторых, почему именно автономный, а не комбинированый способ питания? Есть сеть - питаем от сети и (под)заряжаем аккумуляторы, нет сети - питаем от аккумуляторов. В-третьих, почему именно контактный способ считывания накопленных данных, а не бесконтактный, например? RFID же работают бесконтактным способом. Реализуется она (RFID) вовсе не сложно. Только тут вместо метки будут считываться накопленные данные.
|
|
|
|
|
Jan 23 2009, 18:27
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(rezident @ Jan 23 2009, 19:55)  Вы еще не все варианты рассмотрели  Во-первых, почему батарейки, а не аккумуляторы? Во-вторых, почему именно автономный, а не комбинированый способ питания? Есть сеть - питаем от сети и (под)заряжаем аккумуляторы, нет сети - питаем от аккумуляторов. В-третьих, почему именно контактный способ считывания накопленных данных, а не бесконтактный, например? RFID же работают бесконтактным способом. Реализуется она (RFID) вовсе не сложно. Только тут вместо метки будут считываться накопленные данные. Да я, вобщем-то, и не претендовал на полный набор вариантов. Думал, народ поучвствует. 1 и 2. Думаю, что пока это не принципиально, ибо вообще непонятно -- может vlad555 остановится на варианте сетки на RS485. 3. Ну это Вам не сложно. Мне не сложно. А топикстатер, поднимающий множество элементарных (элементарных -- с нашей точки зрения) вопросов, возможно и не потянет. Проект, разработка которого затянулась значительно, не имеет никакого смысла. Думаю, что реализовать же на MAX202 или -- еще дешевле -- на паре транзисторов конвертор UART - RS232 и обвязать его программным кодом, человеку будет намного легче, чем разбираться с RFID. Впрочем, я могу ошибаться, вдруг vlad555 знает RFID лучше, чем особенности RS232.
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Jan 23 2009, 18:40
|
Группа: Новичок
Сообщений: 9
Регистрация: 1-10-08
Пользователь №: 40 629

|
Все же для меня будет проще создать проводную сеть - в плане программном,да и материальном.А вот насчет реализации в практике этой ситсемы я не особо уверен,то что подключи м опробуем - это все конечно будет,но потом... Этот вариант так сказать для разбора всех нюансов,выявления всех проблем при разработке,а дальше нужно будет это реализовать через Zig Bee.
|
|
|
|
|
Jan 23 2009, 21:26
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(zhevak @ Jan 23 2009, 23:27)  Думаю, что реализовать же на MAX202 или -- еще дешевле -- на паре транзисторов конвертор UART - RS232 и обвязать его программным кодом, человеку будет намного легче, чем разбираться с RFID. Еще один вариант пришел в голову  Оставляем контактное считывание, но через интерфейс USB. Плюсы: 1) допускает "горячее" подключение, 2) позволяет (под)заряжать аккумуляторы пультов от порта USB (перед тестированием можно подключить все пульты к активному(ым) хабу(ам) и пускай они заряжаются), 3) при наличии кучки активных хабов можно точно также небольшую проводную сеть организовать. Через USB же и сами вопросы для тестов в пульт "заливать". Ну а технически все это тоже реализуется весьма просто: путем подключения к МК готовой м/с моста USB-COM от Prolific, FTDIchip, SiLabs или TI.
|
|
|
|
|
Jan 26 2009, 10:27
|
Частый гость
 
Группа: Validating
Сообщений: 94
Регистрация: 18-01-09
Из: Красноармейск
Пользователь №: 43 560

|
Цитата(Harbinger @ Jan 24 2009, 11:36)  С ИК тоже нужен механизм "запрос-ответ". Попробуйте посветить на телевизор 30 пультами сразу...  Во первых тридцать пультов одновременно светить будут очень непродолжительное время, во вторых можно сделать паузу разной. В третьих никто не мешает поставить две, три, да хоть десять пирамидок по аудитории. Думаю больше трех просто не понадобится. И раз уж мы говорим об автоматизаии класса, наверняка вопросы будут выводиться над доской на ЖК панель. Ну вот на нее же можно вывести информацию о номерах пультов, чей ответ зарегистрирован. Ткнул в пирамидку, посмотрел на доску, твой номер сработал, все. Цитата(XVR @ Jan 26 2009, 12:54)  У радио и ИК реализации есть один серьезный недостаток. Рассмотрим такой сценарий использования: 1) Студент приходит в аудиторию, берет пульт 2) Нажимает кнопку 3) Кладет пульт в карман и уходит Можно даже прикинут период полураспада пула пультов  Насчет воровства пультов, да, это возможно, только если элементарно за этим не следить. Достаточно раздавать пульты строго по номерам фамилий в журнале посещаемости. А в конце пары попросить сдать пульт в общую коробку, а перед сдачей ткнуть опять же в пирамидку. Тогда моментально высветится номер несданного пульта. А поскольку номера строго привязаны к конкретным людям, найти можно будет очень просто. И даже если кто то возьмет чужой пульт и умыкнет его, что маловероятно, потому что оценки за опрос во время пары пойдут на чужую фамилию. Это уже экстрим. Препод должен быть полным кретином, чтобы проводя опрос целую пару не понять, что студент, который отсутствует, активно учавствует в опросе. Преподы они конечно разные бывают, но такие законченные кретины просто не смогут пару провести. Поэтому это уже очень маловероятно. Но пусть даже так, препод идиот, и студента которого не было напрягут на покупку пульта. После хотя бы одного такого случая, пойдет взаимная слежка при получении сдаче пультов. И очень маловероятна массовая кража пультов. Потому что после будет такая же массовая закупка на средства студентов.
Сообщение отредактировал lepert - Jan 26 2009, 10:36
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|