roboforum.ru

Технический форум по робототехнике.
Текущее время: 17 фев 2025, 08:17

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Минибот - код
СообщениеДобавлено: 04 авг 2008, 21:55 
Не в сети

Зарегистрирован: 12 фев 2007, 12:25
Сообщения: 1640
Откуда: Днепр
В этой теме призываю всех владельцев миниботов делиться своими наработками в плане кода. от самых маленьких, до самых которых не жалко. Для соблюдения порядка напишу некие требования к коду чтобы было понятно всем, а главное совместимо.
Я в этом сообщении буду вести списочек где чей код, так чтобы не искать где чего (когда тема разростется до 100 страниц.. :crazy: ).

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

Инструкция по прошивке минибота для начинающих доступна по ССЫЛКЕ

итак некоторые соображения по поводу того в каком виже выкладывать.

- пишем код в контейнере для кода если он не большой, либо вкладываем в архиве. если у кого сверхсекретная прошивка для соревнований - дайте хоть хекс поюзать.
- указываем язык на котором представлен образец
- указываем функциональность. чего делает, в какой последовательности.
- указываем не использовались дополнительные датчики и какие датчики использовались (очень полезно объяснять что и куда цеплять чтобы работало)
- прикладываем hex с откомпиленым кодом.

Содержание:
- Define-ы, автор - rig
- Ездим с разворотами от препятствий, мигаем диодами, пищим., автор - rig
- Едем прямо на заданной скорости, автор - Edgull
- Пример работы с UARTом, автор - Edgull
- Пример работы с RC5 пультом, автор - Edgull
- Управляем миниботом с RC5 пульта, автор - Edgull
- Тестовая прошивка Минибота. Прошивается на заводе, автор - Edgull
- Прошивка для тестирования энкодеров, автор - Myp
- Движение вперед, с контролем скоростей двигателей по энкодерам, автор - Чернышев А.А.
- Тестирование работы датчиков линии, автор - frig
- Следование по линии (linetracer), автор - rig
- Следование по линии (linetracer), автор - SMT
- Пример работы с RC5 пультом, автор - SMT


Последний раз редактировалось frig 10 янв 2009, 17:38, всего редактировалось 17 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 04 авг 2008, 22:13 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
мне из вики переносить или пусть там лежит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 04 авг 2008, 22:30 
Не в сети

Зарегистрирован: 12 фев 2007, 12:25
Сообщения: 1640
Откуда: Днепр
Цитата:
мне из вики переносить или пусть там лежит?


переносить. и поставить ссылку на вику. это там-то это там-то.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 04 авг 2008, 22:41 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
нифига, минибот-про еще не скоро будет
когда будет, тогда и будем переписывать, там всего один файлик нужно будет заменить настроек в котором порты прописаны алиасами


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 04 авг 2008, 22:49 
Не в сети

Зарегистрирован: 12 фев 2007, 12:25
Сообщения: 1640
Откуда: Днепр
Цитата:
когда будет, тогда и будем переписывать, там всего один файлик нужно будет заменить настроек в котором порты прописаны алиасами


файлик есть? сейчас это реализовано?

или мы будем сами создавать себе трудности, а потом ГЕРОИЧЕСКИ их преодолевать? :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 04 авг 2008, 22:53 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
просто поверь на слово это очень просто и быстро, около нескольких минут это даже я смогу написать, и давай более насущные темы обсуждать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 05 авг 2008, 08:47 
Не в сети
Аватара пользователя

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
просто не просто а пару дней я убил на поиски, вот мои дефайны
Код:
//2х цветные светодиоды левый(снаружи) правый(внутри) по ходу движения
#define VD_L_GRN_ON      PORTC.7=1
#define VD_L_GRN_OFF   PORTC.7=0
#define VD_L_RED_ON      PORTC.6=1
#define VD_L_RED_OFF   PORTC.6=0

#define VD_R_GRN_ON      PORTC.5=1
#define VD_R_GRN_OFF   PORTC.5=0
#define VD_R_RED_ON      PORTC.4=1
#define VD_R_RED_OFF   PORTC.4=0

#define motor_L_vpered   PORTC.3=0
#define motor_L_nazad   PORTC.3=1
#define motor_L_PWM      PORTD.5

#define motor_R_vpered   PORTC.2=0
#define motor_R_nazad   PORTC.2=1
#define motor_R_PWM      PORTD.4

//вход с датчика зарядки
#define PIN_charge      PINB.2

// ИК диоды передний_левый передний_правый задний
#define IR_D_L_ON      PORTB.3=0
#define IR_D_L_OFF      PORTB.3=1

#define IR_D_R_ON      PORTB.1=0
#define IR_D_R_OFF      PORTB.1=1

#define IR_D_Z_ON      PORTB.0=0
#define IR_D_Z_OFF      PORTB.0=1

// ИК диоды 5 штук: 3 спереди треугольником, два на енкодерах
#define IR_D_5_ON      PORTD.6=1
#define IR_D_5_OFF      PORTD.6=0

// ИК транзисторы расположены треугольником вокруг системного разъема
#define IR_TR_FL      PINA.4   //FD_1 фронт левый
#define IR_TR_FC      PINA.3   //FD_2 фронт центр
#define IR_TR_FR      PINA.0   //FD_5 фронт правый
#define IR_TR_EL      PINA.2   //FD_3 енкодер левый
#define IR_TR_ER      PINA.1   //FD_4 енкодер правый

// TSOP
#define TSOP_F         PIND.3   //TSOP фронт
#define TSOP_Z         PIND.2   //TSOP задний

// BEEP
#define BEEP_ON         PORTD.7=1   // Динамик ВКЛ
#define BEEP_OFF      PORTD.7=0   // Динамик ВЫКЛ

//для управления движением
#define   vpered         0x11       // типа едем вперед
#define   nazad         0x22      // типа едем назад

// шим для for побаловатца
#define on   10
#define off 20-on
// Задержки для ТСОПа
//перед   17мкс~40см   /18/19мкс~25см   / 20мкс не стабильно/12мкс-14мкс~далеко_см
//зад   17мкс~40см   /18/19мкс~25см   / >20мкс&<11 не стабильно/12мкс-14мкс~далеко_см
#define Ik_time_detect_front 15
#define Ik_time_detect_zad 15

#define Ik_pachka 11


#define PWM_max_vpered    0x70
#define PWM_min_vpered    0x40
#define PWM_max_nazad    0x60
#define PWM_min_nazad    0x40


чтото я забыл как подсказку по языку в тег /code вставлять, нельзя ли высвечивать подсказку как в теге / url


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 05 авг 2008, 09:25 
Не в сети

Зарегистрирован: 12 фев 2007, 12:25
Сообщения: 1640
Откуда: Днепр
rig, замечательно! первопроходец. указывайте только язык на котором написано. и можно считать хорошим тоном - прикладывать к сообщению HEX.
rig, а код будет? такой чтобы что-то делал... :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 05 авг 2008, 09:57 
Не в сети
Аватара пользователя

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
1 код в контейнере не удобно, много букв, вложение ниже
2 Си, CodeVision
3 мигаем всеми светиками типа красный-> желтый->зеленый, едем вперед с плавным разгоном.
мониторим окружающее пространство двумя передними ик диодами и одним тсопом, по очереди слева/справа. если видим препятствие с какой либо одной стороны, отворачиваем притормаживая противоположным препятствию мотором.
если препятствие по обоим датчикам:останавливаемся, откатываемся назад если нет препятствий с зади, разворот на месте (тупо несколько секунд моторы в разные стороны кручу) и едем дальше.
если после поворота опять препятствие, откатываемся назад если нет препятствий с зади, продолжаем попытки развернуться,
после несколькольких неудачных попыток пищим - просим помощи.
попутно светодиодами отражаю обстановку.
красный с какой стороны препятствие
зеленый свободно
4 плата МБ, тсопы, ик диоды,термоусадка
5 hex, вложение

Вложение:
my_minibot.rar [7.06 КиБ]
Скачиваний: 91

Вложение:
my_1.hex [3.28 КиБ]
Скачиваний: 667

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

там же попытка оживить LCD TIC33, пока не очень удачно, из-за разницы в напряжениях, индикатор требует 2,7 в я питаю 5ю. в результате светятся все восьмерки.


Последний раз редактировалось rig 05 авг 2008, 10:48, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 05 авг 2008, 10:43 
Не в сети

Зарегистрирован: 12 фев 2007, 12:25
Сообщения: 1640
Откуда: Днепр
rig, а можно привести пост в соответствие к "соображениям" в первом посте. тогда будет порядочек. :roll:

ты уж прости, что я так пристаю много.

Добавлено спустя 31 минуту 58 секунд:
rig, спасибо. как будет готов бутлоадер - каждый сможет откатать твой hex.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 06 авг 2008, 22:37 
Не в сети

Зарегистрирован: 12 фев 2007, 12:25
Сообщения: 1640
Откуда: Днепр
Прошивка из вики. Само задание расположено по адресу [[Задание№1-1]]

Автор - EdGull

Прошивка рекомендуется для тестирования работы двигателей во время сборки.

Код:
$prog &HFF , &HE4 , &HD9 , &H00       'указываем какие фусибиты надо прошить
$regfile = "m32def.dat"       ' файл спецификации Меги32
$crystal = 8000000       ' указываем на какой частоте будем работать

'----------------------------------------------------------------------------
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Pinc.2 = Output : Drl Alias Portc.2       'ногу сконфигурировали как выход и обозвали Drl
Config Pinc.3 = Output : Drr Alias Portc.3       'ногу сконфигурировали как выход и обозвали Drr
Config Pind.4 = Output       'ногу ШИМа левого  движка сконфигурировали как выход
Config Pind.5 = Output       'ногу ШИМа правого движка сконфигурировали как выход
'----------------------------------------------------------------------------
Dim Speed As Byte
Speed = 70

Do
  Drl = 0  'направление движения левого движка, в нашем случае это прямо
  Drr = 0  'направление движения правого движка, в нашем случае это прямо
  Pwm1b = Speed : Pwm1a = Speed
Loop


Язык - basic
Функционал прошивки - движение вперед на скорости указанной в переменно Speed. По умолчанию - 70 (из 255 возможных)
Используемые датчики: никаких. Для работы используются только моторы.


Вложения:
GO.HEX [639 байт]
Скачиваний: 598
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 07 авг 2008, 10:33 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
Думаю название хексу надо дать более вразумительное


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 07 авг 2008, 10:42 
Не в сети

Зарегистрирован: 12 фев 2007, 12:25
Сообщения: 1640
Откуда: Днепр
Прошивка из вики. Само задание расположено по адресу [[Задание№1-2]]

Автор - EdGull

Прошивка рекомендуется для тестирования работы uart во время сборки.

Код:
$prog &HFF , &HE4 , &HD9 , &H00       'указываем какие фусибиты надо прошить
$regfile = "m32def.dat"       ' файл спецификации Меги32
$crystal = 8000000       ' указываем на какой частоте будем работать
$baud = 2400       ' указываем скорость на которой будет работать уарт

'----------------------------------------------------------------------------
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Pinc.2 = Output : Drl Alias Portc.2       'ногу сконфигурировали как выход и обозвали Drl
Config Pinc.3 = Output : Drr Alias Portc.3       'ногу сконфигурировали как выход и обозвали Drr
Config Pind.4 = Output       'ногу ШИМа левого  движка сконфигурировали как выход
Config Pind.5 = Output       'ногу ШИМа правого движка сконфигурировали как выход
'----------------------------------------------------------------------------

Dim Speed As Byte
Speed = 70

Print "Start MiniBot"

Do

Loop


Язык - basic
Функционал прошивки - выводт в терминал строку "Start MiniBot"
Используемые датчики: никаких.


Вложения:
uart_test.HEX [754 байт]
Скачиваний: 629
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 07 авг 2008, 11:57 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
может картинку сюда тоже от туда вставлять?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Минибот - код
СообщениеДобавлено: 07 авг 2008, 12:09 
Не в сети

Зарегистрирован: 12 фев 2007, 12:25
Сообщения: 1640
Откуда: Днепр
Цитата:
может картинку сюда тоже от туда вставлять?

не. картинки, описания, это все на других страницах.. здесь подборка прошивок и ссылки на описание этих прошивок или проектов в которых эти прошивки применяются.

Прошивка из вики. Само задание расположено по адресу [[Задание№1-3]]

Автор - EdGull

Прошивка рекомендуется для тестирования работы с RC5 пультом.

Код:
$prog &HFF , &HE4 , &HD9 , &H00       'указываем какие фусибиты надо прошить
$regfile = "m32def.dat"       ' файл спецификации Меги32
$crystal = 8000000       ' указываем на какой частоте будем работать
$baud = 2400

'----------------------------------------------------------------------------
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Pinc.2 = Output : Drl Alias Portc.2       'ногу сконфигурировали как выход и обозвали Drl
Config Pinc.3 = Output : Drr Alias Portc.3       'ногу сконфигурировали как выход и обозвали Drr
Config Pind.4 = Output       'ногу ШИМа левого движка сконфигурировали как выход
Config Pind.5 = Output       'ногу ШИМа правого движка  сконфигурировали как выход
'----------------------------------------------------------------------------

Dim Speed As Byte
Speed = 70

Config Rc5 = Pind.2
Enable Interrupts
Dim Address As Byte , Command As Byte

Print "Start MiniBot"

Do
   Getrc5(address , Command)
   If Address <> 255 And Command <> 255 Then
      Command = Command And &B01111111
      Print Chr(12);
      Print "Address - " ; Address
      Print "Command - " ; Command;
   End If
Loop


Язык - basic
Функционал прошивки - выводит в терминал адреса кнопок получаемых с пульта.
Используемые датчики: TSOP. для работы требуется настроенный uart


Вложения:
RC5.HEX [2.45 КиБ]
Скачиваний: 626
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO