kerf, на первых парах тебе простого программатора на LPT хватит (как раз-таки "на попробовать"), а впоследствии и самому можно спаять - в интернетах есть куча проэктов (usbasp, protoss и др.). Если планируешь эксперементировать, то обязательно обзаведись пружинной макетной платой - крайне удобная и полезная вещица.
МК кто-нибудь программирует? PIC, AVR, ARM?
#61
Отправлено 08 июня 2010 - 10:36
kerf, на первых парах тебе простого программатора на LPT хватит (как раз-таки "на попробовать"), а впоследствии и самому можно спаять - в интернетах есть куча проэктов (usbasp, protoss и др.). Если планируешь эксперементировать, то обязательно обзаведись пружинной макетной платой - крайне удобная и полезная вещица.
#62
Отправлено 08 июня 2010 - 17:14
Почему? Не потому, что я фанат микрочип. Просто документация на них написана людьми, дружащими со своей головой. АВР можно изучать по книжкам, но их документации - это полная мура. После микрочипа совершенно не воспринимаются.
Мой совет:
Proteus 7.6 SP4
EXTRAPIC
и пробный камень. Что нибудь типа PIC12F683 для начала или PIC16F689/690 для продолжения. У них не много ног, встроенный генератор и много всего полезного. Столько переферии есть только у АВР мега, да и то с натяжкой. АВР дешевы тогда, когда в них ничего нет.
#63
Отправлено 09 июня 2010 - 00:35
привет еще раз =)
ну макетную плату я приобрел, сам подумал что было бы неплохо без паяльника все делать,
а вот с программатором я конечно еще почитаю, повыбираю и скажу что решил =) мало ли остановите в последний момент
а еще вопрос кто где закупает "водичку" для травления плат? по-любому когда-нибудь понадобится
и где же смысл?
IAPB48
#66
Отправлено 11 июня 2010 - 18:38
#67
Отправлено 11 июня 2010 - 18:52
Для маленьких плат отличная штука. Заливаешь кипятком, травит прямо на глазах, через несколько минут плата готова. Для больших не пробовал. По идее, он чем горячее, тем быстрее травит. При комнатной температуре практически не травит.Вырвиглаз, а с персульфатом натрия случаем не было опыта? Может какие особенности есть при его использовании / рекомендации на личном опыте?
Написал, потом заметил, что речь про персульфат натрия, а не аммония.
Это все про персульфат аммония, насчет натрия не знаю.
Сообщение изменено: Sergio (11 июня 2010 - 18:53 )
#68
Отправлено 26 июня 2010 - 00:19
#69
Отправлено 28 июня 2010 - 18:54
Ну вот реалистичный симулятор автомобиля было бы неплохо. Соорудить кузов какой-нибудь, или взять готовый от драндулета со свалки, заместо лобовухи - LCD дисплей (или два). Комп с реалистичной игрой. Ну и поставить в каком-нибудь парке атракционов, или просто людном месте - деньги лопатой грести будешь. А если еще и легкую смену конфигурации сделаешь (легковуха, грузовик, трактор, Белаз) - будет еще круче. Может быть даже военным продашь за неплохие деньги.Я тут с USB HID девайсами игрался. Сегодня запустил джойстик. Вот думаю, какой такой хитрый манипулятор сделать. Короче, можно сколько угодно осей и кнопок сделать. В этом и фишка. Можно полный симулятор автомобиля сделать с МКПП и реалистичным поворотом руля на 700 градусов. Можно что-нибудь галактическое забабахать, типа в Х3 играть... в общем, своей фантазии не хватает. Может чего вместе придумаем?
#70
Отправлено 28 июня 2010 - 20:10
А сам симулятор мне тут в 3д студио рисовать? Нет уж, увольте. Я в первую очередь электронщик. Программирование для меня лишь средство воплотить в жизнь сложные проекты.Ну вот реалистичный симулятор автомобиля было бы неплохо. Соорудить кузов какой-нибудь, или взять готовый от драндулета со свалки, заместо лобовухи - LCD дисплей (или два). Комп с реалистичной игрой. Ну и поставить в каком-нибудь парке атракционов, или просто людном месте - деньги лопатой грести будешь. А если еще и легкую смену конфигурации сделаешь (легковуха, грузовик, трактор, Белаз) - будет еще круче. Может быть даже военным продашь за неплохие деньги.
#74
Отправлено 16 июля 2010 - 16:28
ведь главное цена и работоспособность , производительность
поскольку имея идею разработать схему можно любую и даже если поставить задачу, поверьте решений будет много, а победит тот кто сделает дешевле из доступных компонентов и главное будет работать.
помню ну не было у меня денег на покупку мк использовал мк для bios и все замечательно работает
#77
Отправлено 03 сентября 2010 - 00:09
Кто-нибудь может вкрадце объяснить принцип написания хендлеров для прерываний на си? И есть ли как таковые общие принципы, или это всё очень индивидуально для каждого контроллера? Просмотрел кучу примеров
кодов в интернетах, сломал глаза, и так и не получилось из примеров общий для всех микроконтроллеров принцип вывести.Знаю, что прерывание можно обработать на ассемблере, но интересно по возможности именно на си сделать.
У меня контроллер вот такой:
http://www.phytec.co...M9-LPC3180.html
Хочу собрать на нём робота.В общем-то цель моя-научиться обхождению с контроллерами, так что буду тупо навешивать на него всё, что только не лень.А пока, задача в том, чтобы оснастить устройство сервомоторами.В контроллере есть специальный регистр для ШИМ, но при длине периода в 20 мс он не даст возможности точно установить пропорцию сигнала (так как ноль по сравнению с единицей уж слишком длинный), ну и шаг поворота соответственно около 20 градусов будет (сказочная точность ), так что алгоритм с таймерами и интерраптами получается куда точнее. Кстати, а может серво всё-таки схавает сигнал и с более коротким периодом, скажем, 10 мс?
#78
Отправлено 03 сентября 2010 - 07:51
Общих примеров не получится, прерывания слишком зависят от архитектруры.Кто-нибудь может вкрадце объяснить принцип написания хендлеров для прерываний на си? И есть ли как таковые общие принципы, или это всё очень индивидуально для каждого контроллера? Просмотрел кучу примеров
кодов в интернетах, сломал глаза, и так и не получилось из примеров общий для всех микроконтроллеров принцип вывести.
#79
Отправлено 03 сентября 2010 - 08:24
На счет ШИМа. На такую длинну проводов никто сигнал с МК не тащит. Тем более, что у тебя напряжение портов 3.3в (ядра 1.8в). Так вот управляемый ключ надо ставить в непосредственной близости к МК. В твоем случае еще сложнее. АРМы быстрые, но порты у них слабые - 5мА (у пиков 20мА). Это значит, что время нарастания и спада фронта на могучем полевом транзисторе (с большой емкостью затвора) будет огромным. Надо использовать драйвер.
#80
Отправлено 03 сентября 2010 - 11:57
На счет ШИМа. На такую длинну проводов никто сигнал с МК не тащит.
Я, быть может, некорректно выразился, но имел в виду период ШИМ сигнала, то есть расстояние между двумя передними фронтами.Должно ли оно для сервомотора быть 20 миллисекунд или же может быть меньше?
Насчёт прерываний: нашёл вот такой код
#pragma code high_vector=0x08
void high_vector() {
_asm
goto YourHighPriorityISRCode
_endasm
}
#pragma code
#pragma code low_vector=0x18
void low_vector() {
_asm
goto YourLowPriorityISRCode
_endasm
}
#pragma code
// interrupt handler routines
#pragma interrupt YourHighPriorityISRCode
void YourHighPriorityISRCode() {
if(PIR1bits.TMR1IF == TRUE) { // check interrupt flag: from timer?
if(PORTBbits.RB5 == 0) {
TMR1H = (timerServo & 0xFF00) >> 8; // keep most significant byte
TMR1L = timerServo & 0x00FF; // keep least significant byte
PORTBbits.RB5 = 1; // high pulse
} else {
TMR1H = 0x8A; // timer 1 interrupt after 83.333ns*8*(65536-35536) = +/- 20ms
TMR1L = 0xD0; // 35536 = 0x8AD0
PORTBbits.RB5 = 0; // low pulse
}
PIR1bits.TMR1IF = FALSE; // reenable TMR1 interrupt
}
}
#pragma interruptlow YourLowPriorityISRCode
void YourLowPriorityISRCode() {
}
Cтраница, где я нашёл код: http://www.dwengo.or...s/light-tracker .Понимаю, что это совсем другой МК, но, мне интересно, как в данном случае работает код.
Про функцию обработки вроде всё понятно - идёт проверка флагов (откуда пришёл интеррапт), работа с регистрами таймеров и ШИМ портом.А вот как работает вот эта часть кода, когда приходит интеррапт:
#pragma code high_vector=0x08
void high_vector() {
_asm
goto YourHighPriorityISRCode
_endasm
}
#pragma code
-не совсем понятно.Туплю ...помогите, плиз!
Сообщение изменено: MB ee (03 сентября 2010 - 11:58 )
#81
Отправлено 03 сентября 2010 - 12:14
Этот дигитальный элемент именуется триггером Шмидта. Можно поставить как отдельный элемент, но, он зачастую есть на входах многих микросхем, в том числе 74 серия, многие микроконтроллеры и т.п. Если не уверен, смотри даташит.Драйвер будет.Кстати, а есть ли возможность вместо драйвера использовать какой-нибудь дигитальный элемент, который бы съедал 3 вольта как логическую единицу, а на выходе выдавал эту самую единицу уже в правильном 5вольтовом формате?
#82
Отправлено 03 сентября 2010 - 12:49
На счет уровней. АРМ по-сути тебе не подходит. Он для сложных вычислительных операций. Тебе сюда нужен простейший пик или атмел. Когда у тебя есть пошаговая отладка в железе, можно брать хоть х86. Но в твоем случае надо начинать с простого. Иначе как отлаживать будешь? Ладно, я тоже тут робота делаю. На шаговых двигателях от принтера. Драйвер L9935. Управление по SPI. Очень рекомендую.
Кстати, на высших ядрах, типа АРМ и ПИК24 и выше, в подпрограмме прерывания уже нет необходимости проверять флаги, которые это прерывание вызвали. Там подпрограм прерываний столько же, сколько векторов. Каждому вектору - свою подпрограмму. Когда у вас 2-3 прерывания, разницы нет. А если у вас их три десятка, тратить 60 циклов на проверку, откуда пришел вектор - непозволительная роскошь (это на асме 60, на С будет три сотни) ))))))
#83
Отправлено 03 сентября 2010 - 22:11
Cпасибо, буду искать!Этот дигитальный элемент именуется триггером Шмидта. Можно поставить как отдельный элемент, но, он зачастую есть на входах многих микросхем, в том числе 74 серия, многие микроконтроллеры и т.п. Если не уверен, смотри даташит.
Периодичность шима особой роли не играет. Управляем все равно скважностью.
На счет уровней. АРМ по-сути тебе не подходит. Он для сложных вычислительных операций.
Тебе сюда нужен простейший пик или атмел. Когда у тебя есть пошаговая отладка в железе,
можно брать хоть х86. Но в твоем случае надо начинать с простого. Иначе как отлаживать
будешь? Ладно, я тоже тут робота делаю. На шаговых двигателях от принтера. Драйвер
L9935. Управление по SPI. Очень рекомендую.
Пока что рассуждаю в пользу устройства с триггером Шмидта, как подсказал Sergio, скорее всего, это будет буфер.Почитал мануалы к предложенному тобой драйверу, штука крутая без базара, управление очень по-разному можно организовать, но для серво, может, будет достаточно и чего-то более простого, а вот степ-мотор я впоследствие тоже буду добавлять, тогда скорее всего использую именно этот девайс.
Кстати, а может тоже принтер расхреначить)))
А насчёт выбора ARM, да, полностью признаю свой фейл! Но ведь дело всё в том, что этот МК мне дал универ (пишу квик старт мануал для контроллера в рамках бакланской дипломки).В мануале обязательно должно быть проделано практическое задание как пример, но мне не охота ограничиваться моргающими диодиками, хочется сварганить что-то, что было бы чуть сложнее, интереснее и, при этом, в состоянии "ON" доставляло окружающим фан .Cейчас я начал понимать разницу между архитектурами и понимать, что взял не тот контроллер, а когда брал задание....эх...чем я думал?! Но ладно, может и из этого что-то получиться, в принципе, пойнт в том, чтобы входы-выходы задействовать, значит, можно сделать робота с сенсорами и моторами, просто придумать алгоритм по-сложнее.А насчёт длины периода - благодарю за хорошую новость! В принципе, необходимость насиловать таймеры, по крайней мере, на этом этапе работы, отпадает.Но прерывания всё равно ещё пригодятся, я уверен.
То есть, грубо говоря, если вернуться к примеру таймера, нужно в мануале искать что-то типаКстати, на высших ядрах, типа АРМ и ПИК24 и выше, в подпрограмме прерывания уже нет
необходимости проверять флаги, которые это прерывание вызвали. Там подпрограм
прерываний столько же, сколько векторов. Каждому вектору - свою подпрограмму.
HSTIM_IRQ (хстим- тот самый таймер) ?.А потом в коде описать подпрограмму как
void HSTIM_IRQHandler (void)
Так?
Сообщение изменено: MB ee (03 сентября 2010 - 22:37 )
#84
Отправлено 03 сентября 2010 - 22:32
Если хочешь запустить периферию, открывай даташит и конфигурируй ее ручками.
Сообщение изменено: Вырвиглаз (03 сентября 2010 - 22:35 )
#85
Отправлено 03 сентября 2010 - 23:01
PWM1_DUTY = 240;
вмещает в себя больше тактов, чем прямое обращение к адресу регистра на аэсеме.Так что, cкорее всего, основной цикл выполню на си, а прерывания буду обрабатывать на ассемблере (чему тоже ещё нужно научиться).Ещё раз спасибо за советы! Возможно, вскоре уже обращусь с конкретными вопросами по ассемблеру, но, для начала, попробую накачать книжек, мануалов, примеров, и разобраться сам.
Сообщение изменено: MB ee (03 сентября 2010 - 23:04 )
#86
Отправлено 04 сентября 2010 - 09:47
У меня вчера биполярный шаговый двигатель заработал. Теперь могу точно позиционировать вал, управляя скоростью, ускорением и количеством шагов.
#89
Отправлено 11 сентября 2010 - 12:07
Для питания робота куплена литий-полимерная батарея на 4200мАч, 11.8 в и током 120А (30С). Это в 8 раз больше, чем штатная батарея машинки.
Управление будет полностью аналоговое. Для этого будет переделан компьютерный джойстик. Так же планируется установка обратной видео связи. В машинку впихну камеру и радио-модуль, который будет выводить изображение на телевизор. Так будет спортивнее. Объектив на камере будет широкоугольный.
#90
Отправлено 11 сентября 2010 - 17:35
MB ee, я не стал полагаться на искусственный интеллект. Заказал в Элфе радиомодули n2401. Схема управления будет на PIC18F13K50. Схема робота на PIC18F1230, у которого 6 ШИМ каналов. Для работы электродвигателей уже имеются все необходимые драйвера. Робот будет сделан из радиоуправляемой модели лексуса IS200. Пока только решаю вопрос, как быть с рулевым управлением. Уже есть запрограммированный модуль управления шаговым двигателем и три шаговых двигателя к нему. Но есть и штатный моторчик управления, которым можно будет работать через ШИМ и специализированный драйвер. Пока пойду простым путем - механику менять не буду. В качестве датчиков робота будут два фотодиода для определения местонахождения по солнцу и, вероятно, еще что-нибудь. Препятствия будут определяться методом тыка - уперся, возрос ток в моторе, препятствие зафиксировано, маневр объезда... Ну пока меня больше волнует все это запустить. А уж обучить его манере вождения - дело десятое.
Для питания робота куплена литий-полимерная батарея на 4200мАч, 11.8 в и током 120А (30С). Это в 8 раз больше, чем штатная батарея машинки.
Управление будет полностью аналоговое. Для этого будет переделан компьютерный джойстик. Так же планируется установка обратной видео связи. В машинку впихну камеру и радио-модуль, который будет выводить изображение на телевизор. Так будет спортивнее. Объектив на камере будет широкоугольный.
Хех, круть! Планы более, чем похвальные, всё очень даже круто, особенно, управление на основе изображения с камеры...я когда-то занимался авиамоделизмом, приходилось со стороны управлять модельками, боже, как это сложно и несподручно! А вот с камерой- совсем другой коленкор.Для машинки это конечно не так критично, но то, что "от первого лица" гораздо интереснее- факт.В принципе, если робот управляется по радио и не имеет ИИ как такового, то ничего лучше полностью аналогового управления нет - быстрее и точнее.Кстати, а какой собственный (штатный) ходовой движок машинки? Бензин или 2 электромотора?Рулевое управление я бы наверно на штатном моторчике оставил, для руля вроде как не нужно таких наворотов, как контроль скорости и ускорения, ну это ИМХО.
Сообщение изменено: MB ee (11 сентября 2010 - 17:36 )