Как собрать робота новичку?
|
|
Space | Дата: Четверг, 10.07.2008, 23:27 | Сообщение # 1 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Начнём с того, что надо сделать программатор. Значит идём сюда. Читаем всё и переходим по указанным ссылкам(те самые ссылки где вы найдёте принципиальную схему).Собираете... Собрали? Отлично идём дальше. Теперь у вас есть программатор, которым вы будите прошивать мк. Но чтобы, что-то прошить нужно сначало это собрать. Тогда решение тут. Когда перейдёте по ссылки там будет много разных плат, но нам нужна одна из них. Есть в принципе 3 выбора. И первый и второй вариант похожи, но на первом варианте уже установлен драйвер двигателей L293D. И вообщем то - это единственное их нее различие. Выбирать вам. И 1 и 2 варианты рабочие. Проверены. 3 вариант - это на тот случай, если вы пока не собираетесь делать ни чего программируемого. То есть там стоит драйвер двигателей (L293D), который не надо программировать и стабилизатор напряжения на 5 вольт. Всё описано поймёте. Так вот перед вами 3 разных варианта выбирайте, что больше нравится. Теперь о языке программирования. Я в своё время выбрал Си и до сих пор на нём мучаюсь. Но есть более простой язык - это BASKOM AVR. На нём всё на много проще и понятней. Вообщем опять же выбирать вам на каком языке вы будите писать свои программы. Но фишка в том, что на Си пишет довольно много народу, чем на BASKOM AVR. И вот какая программа будет первой. Так уж заведено, что все начинают с программы мигания светодиодом. Вот сама программа: Code #include <avr/io.h> #define IN PIND #define LED PD6 // светодиод
//------------------------------------------------------------------------------ // Задержка t х 10ms //------------------------------------------------------------------------------ #define K_DELAY_10ms F_CPU/600 // для F_CPU=8000000 void Delay_10ms(unsigned char t) { if (t==0) return; unsigned int i; while (t--) for(i=0;i<K_DELAY_10ms; i++); }
//------------------------------------------------------------------------------ // Главная программа //------------------------------------------------------------------------------ int main(void) {
DDRD = 0x40; // назначаем все линии порта D на вход, кроме PD6 PORTD = 0xbf; // подключаем внутренние нагрузочные резисторы, кроме PD6 while(1) { // запускаем бесконечный цикл cbi(PORTD, LED); // Зажигаем LED Delay_10ms(100); // пауза sbi(PORTD, LED); // гасим LED Delay_10ms(100); // пауза } } Скачать эту программу можно тут. Там она полностью уже с прошивкой и MakeFile. Но если выбрали BASKOM AVR, то программа мигания(каждую секунду) светодиодом будет выглядеть так: Code $regfile = "m32def.dat" 'используем ATmega32 (MRC40 с универсальным модулем) $crystal = 16000000 'частота установленного кварца 16 mHz
Config Portb.2 = Output 'конфигурируем вывод 2 порта B на выход - подключаем к нему светодиод Portb.2 = 0 'устанавливаем по умолчанию на ножке порта лог 0 Do 'начало цикла программы Portb.2 = 1 'устанавливаем на ножке порта лог 1 - светодиод горит Waitms 500 'задержка в миллисекундах 500мс = 0,5 секунды Portb.2 = 0 'устанавливаем на ножке порта лог 0 - светодиод гаснет Waitms 500 'задержка в миллисекундах 500мс = 0,5 секунды Loop End И для изучения этого языка вы можите воспользоваться материалами сайта http://robozone.su/ , а именно на страничке http://robozone.su/bascom-avr/ Ну вот пока всё.
|
|
| |
s2004 | Дата: Среда, 15.10.2008, 22:17 | Сообщение # 2 |
Зарегистрирован 15.10.2008
Группа: Новички
Сообщений: 3
Город: Samara
Статус: Offline
| Здравствуйте! Я новичёк нельзя ли разместить информацию, как все эти блоки помимо основного (типа универсальный робо-контролер ) взаимодействуют на конкрентном роботе примере. Прекрасно - расписано по отдельности, но для новичка сразу непереварить как бы пример или блок схема, хоть бы минимум, а может пример постройки робота с вышеизложеными материалами. Александр.
|
|
| |
Space | Дата: Четверг, 30.10.2008, 17:06 | Сообщение # 3 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Quote (s2004) Я новичёк нельзя ли разместить информацию, как все эти блоки помимо основного (типа универсальный робо-контролер ) взаимодействуют на конкрентном роботе примере. Это будет обещаю . Когда свободное время появится займусь. А пока ждите время просто не хватает
|
|
| |
Space | Дата: Четверг, 05.02.2009, 11:58 | Сообщение # 4 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Новичку для своих экспериментов потребуется программатор. Перейдя по ссылки увидите "Печатная плата для USB программатора USBasp" вот его надо собрать. Там всё подробно описано как и что надо сделать. Я себе такой собрал и не жалею. Работает на УРА! Далее собираем "Универсальный робо-контроллер MRC-40 (ATmega 16/32/644)" и "Экспериментальный модуль для универсального контроллера MRC40". когда соберёте должно выглядить всё так: У меня так: И первая программа как всегда мигание светодиодом. Она есть выше на языке Си и Bascom Avr нам нужен 2-ой вариант. Запускаем Bascom AVR и открываем наш файл и компилируем его(он будет в архиве Mig). За тем открываем графическую оболочку нашего программатора. Устанавливаем там фьюзы и какой мк надо запрограммировать. -устанавливаем фьюзы -выбираем мк и загружаем 1.HEX(это прошивка) -и прошиваем. Если сделали всё правильно, то должен заморгать светодиод на ножке PA0 Добавлено (05.02.2009, 11:58) --------------------------------------------- Эту же программу можно записать так: Code $regfile = "m16def.dat" 'используем ATmega16 (MRC40 с универсальным модулем) $crystal = 16000000 'частота установленного кварца 16 mHz
Config Porta.0 = Output : Led Alias Porta.0 'конфигурируем вывод 0 порта A на выход и присваиваем имя Led Led = 0 'устанавливаем по умолчанию на ножке порта лог 0 Do 'начало цикла программы Led = 1 'устанавливаем на ножке порта лог 1 - светодиод горит Waitms 500 'задержка в миллисекундах 500мс = 0,5 секунды Led = 0 'устанавливаем на ножке порта лог 0 - светодиод гаснет Waitms 500 'задержка в миллисекундах 500мс = 0,5 секунды Loop End Мы просто присвоили имя Led порту (PORTA.0) с помощью команды Alias. Можите попробовать по эксперементировать. Например сделать светофор или бегующие огни. Далее как подключить кнопку, LCD, как работать с RS-232 и с ADC можите посмотреть здесь. Также не плохая обучалка по Bascom AVR есть здесь Когда разведу плату под драйвер двигателей продолжим.
|
|
| |
sasha | Дата: Среда, 25.02.2009, 16:09 | Сообщение # 5 |
Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
| а как моторами управлять через UART?
-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-
|
|
| |
Bass85 | Дата: Среда, 25.02.2009, 22:51 | Сообщение # 6 |
Зарегистрирован 12.02.2009
Группа: Опытные
Сообщений: 422
Статус: Offline
| Посмотри курс123 по авр там это есть с рабочими программами Добавлено (25.02.2009, 22:51) --------------------------------------------- Правда насчет баскома незнаю
|
|
| |
megoBOT | Дата: Пятница, 27.02.2009, 21:40 | Сообщение # 7 |
Зарегистрирован 27.02.2009
Группа: Новички
Сообщений: 17
Город: голицино
Статус: Offline
| люди помогите чайнику......... Я вообще ни чего не понимаю в электронике. объясните хоть что-нибудь........
|
|
| |
Doniak | Дата: Пятница, 27.02.2009, 23:21 | Сообщение # 8 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| Quote люди помогите чайнику......... Я вообще ни чего не понимаю в электронике. объясните хоть что-нибудь........ cray Электрический ток — это упорядоченное движение заряженных частиц в проводнике.
|
|
| |
megoBOT | Дата: Воскресенье, 01.03.2009, 20:36 | Сообщение # 9 |
Зарегистрирован 27.02.2009
Группа: Новички
Сообщений: 17
Город: голицино
Статус: Offline
| я вот не понимаю чем L293D отличается от других схем?
|
|
| |
Chinga92 | Дата: Воскресенье, 01.03.2009, 20:43 | Сообщение # 10 |
Зарегистрирован 21.01.2009
Группа: Новички
Сообщений: 48
Город: Aktobe
Статус: Offline
| он управляет двиглами! ты попробуй на порты (где выход двиглам) подключить напрямую! и посмотри!
|
|
| |
megoBOT | Дата: Понедельник, 02.03.2009, 22:45 | Сообщение # 11 |
Зарегистрирован 27.02.2009
Группа: Новички
Сообщений: 17
Город: голицино
Статус: Offline
| у меня нет L293D............а что будет..........???
|
|
| |
Bass85 | Дата: Понедельник, 02.03.2009, 22:49 | Сообщение # 12 |
Зарегистрирован 12.02.2009
Группа: Опытные
Сообщений: 422
Статус: Offline
| Спалиш порт контроллера
|
|
| |
megoBOT | Дата: Понедельник, 02.03.2009, 22:50 | Сообщение # 13 |
Зарегистрирован 27.02.2009
Группа: Новички
Сообщений: 17
Город: голицино
Статус: Offline
| Почему?
|
|
| |
Bass85 | Дата: Понедельник, 02.03.2009, 23:32 | Сообщение # 14 |
Зарегистрирован 12.02.2009
Группа: Опытные
Сообщений: 422
Статус: Offline
| Потому что у контролера максимальный ток одного выхода порта 20мА а для моторчика как минимум на порядок выше нужно вот для этого нужен драйвер моторчика, а также спомощю драйвера можно крутить моторчик в разном направлении Вобщем сперва возми какую нибуть книгу радиолюбителькую, чтоли ,почитай азы а то так не чо не выйдет. Разберешся чуть потом давай вопросы с радостью помогу что знаю но только нужно искать паралельно и самому чего нет в книгах есть в гугле Успехов
|
|
| |
megoBOT | Дата: Вторник, 03.03.2009, 14:36 | Сообщение # 15 |
Зарегистрирован 27.02.2009
Группа: Новички
Сообщений: 17
Город: голицино
Статус: Offline
| пасиба! буду в гугле литератиру по робототехнике читать , а что не понятно спрошу здесь........... Добавлено (03.03.2009, 14:36) --------------------------------------------- А что такое МИКРОКОНТРОЛЕР???
|
|
| |