Пятница, 03.05.2024, 06:40
| RSS
[SEARCH_TITLE]
[SEARCH_FORM]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Архив - только для чтения
Форум » Мастерская » Новичкам » Как собрать робота новичку? (Будем использовать Bascom AVR)
Как собрать робота новичку?
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)
Я новичёк нельзя ли разместить информацию, как все эти блоки помимо основного (типа универсальный робо-контролер ) взаимодействуют на конкрентном роботе примере.

Это будет обещаю yes3 yes3 yes3 . Когда свободное время появится займусь. А пока ждите время просто не хватает declare
 
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 есть здесь
Когда разведу плату под драйвер двигателей продолжим.

Прикрепления: 1660714.jpg (33.7 Kb) · 5767332.jpg (113.5 Kb) · 4250945.jpg (135.2 Kb) · 7986001.jpg (150.1 Kb) · 9448221.jpg (142.4 Kb) · 6043661.jpg (127.1 Kb) · 6578267.jpg (117.9 Kb) · Mig.rar (0.8 Kb)
 
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 по авр там это есть с рабочими программами smile3

Добавлено (25.02.2009, 22:51)
---------------------------------------------
Правда насчет баскома незнаю sorry

 
megoBOTДата: Пятница, 27.02.2009, 21:40 | Сообщение # 7








Зарегистрирован 27.02.2009
Группа: Новички
Сообщений: 17
Город: голицино
Статус: Offline
люди помогите чайнику......... Я вообще ни чего не понимаю в электронике. объясните хоть что-нибудь........ cray
 
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............а что будет..........???
senile
 
Bass85Дата: Понедельник, 02.03.2009, 22:49 | Сообщение # 12








Зарегистрирован 12.02.2009
Группа: Опытные
Сообщений: 422
Статус: Offline
Спалиш порт контроллера acute
 
megoBOTДата: Понедельник, 02.03.2009, 22:50 | Сообщение # 13








Зарегистрирован 27.02.2009
Группа: Новички
Сообщений: 17
Город: голицино
Статус: Offline
Почему? senile
 
Bass85Дата: Понедельник, 02.03.2009, 23:32 | Сообщение # 14








Зарегистрирован 12.02.2009
Группа: Опытные
Сообщений: 422
Статус: Offline
Потому что у контролера максимальный ток одного выхода порта 20мА а для моторчика как минимум на порядок выше нужно вот для этого нужен драйвер моторчика, а также спомощю драйвера можно крутить моторчик в разном направлении smile3
Вобщем сперва возми какую нибуть книгу радиолюбителькую, чтоли ,почитай азы а то так не чо не выйдет. Разберешся чуть потом давай вопросы с радостью помогу что знаю но только нужно искать паралельно и самому чего нет в книгах есть в гугле yes3 Успехов smile3
 
megoBOTДата: Вторник, 03.03.2009, 14:36 | Сообщение # 15








Зарегистрирован 27.02.2009
Группа: Новички
Сообщений: 17
Город: голицино
Статус: Offline
dance4 пасиба! буду в гугле литератиру по робототехнике читать , а что не понятно спрошу здесь........... smile3

Добавлено (03.03.2009, 14:36)
---------------------------------------------
А что такое МИКРОКОНТРОЛЕР???

 
Форум » Мастерская » Новичкам » Как собрать робота новичку? (Будем использовать Bascom AVR)
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Поиск: