roboforum.ru

Технический форум по робототехнике.


Минибот - код

Готовая электроника для самодельного робота. Уровень от начинающих до опытных конструкторов.

Минибот - код

Сообщение frig » 04 авг 2008, 21:55

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

Re: Минибот - код

Сообщение EdGull » 04 авг 2008, 22:13

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

Re: Минибот - код

Сообщение frig » 04 авг 2008, 22:30

мне из вики переносить или пусть там лежит?


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

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

Re: Минибот - код

Сообщение EdGull » 04 авг 2008, 22:41

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

Re: Минибот - код

Сообщение frig » 04 авг 2008, 22:49

когда будет, тогда и будем переписывать, там всего один файлик нужно будет заменить настроек в котором порты прописаны алиасами


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

или мы будем сами создавать себе трудности, а потом ГЕРОИЧЕСКИ их преодолевать? :D
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Минибот - код

Сообщение EdGull » 04 авг 2008, 22:53

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

Re: Минибот - код

Сообщение rig » 05 авг 2008, 08:47

просто не просто а пару дней я убил на поиски, вот мои дефайны
Код: Выделить всёРазвернуть
//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
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Re: Минибот - код

Сообщение frig » 05 авг 2008, 09:25

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

Re: Минибот - код

Сообщение rig » 05 авг 2008, 09:57

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

my_minibot.rar
(7.06 КиБ) Скачиваний: 91

my_1.hex
(3.28 КиБ) Скачиваний: 653

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

там же попытка оживить LCD TIC33, пока не очень удачно, из-за разницы в напряжениях, индикатор требует 2,7 в я питаю 5ю. в результате светятся все восьмерки.
Последний раз редактировалось rig 05 авг 2008, 10:48, всего редактировалось 2 раз(а).
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Re: Минибот - код

Сообщение frig » 05 авг 2008, 10:43

rig, а можно привести пост в соответствие к "соображениям" в первом посте. тогда будет порядочек. :roll:

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

Добавлено спустя 31 минуту 58 секунд:
rig, спасибо. как будет готов бутлоадер - каждый сможет откатать твой hex.
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Минибот - код

Сообщение frig » 06 авг 2008, 22:37

Прошивка из вики. Само задание расположено по адресу [[Задание№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 байт) Скачиваний: 587
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Минибот - код

Сообщение EdGull » 07 авг 2008, 10:33

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

Re: Минибот - код

Сообщение frig » 07 авг 2008, 10:42

Прошивка из вики. Само задание расположено по адресу [[Задание№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 байт) Скачиваний: 616
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Минибот - код

Сообщение EdGull » 07 авг 2008, 11:57

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

Re: Минибот - код

Сообщение frig » 07 авг 2008, 12:09

может картинку сюда тоже от туда вставлять?

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

Прошивка из вики. Само задание расположено по адресу [[Задание№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 КиБ) Скачиваний: 612
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

След.

Вернуться в МиниБот — национальный класс роботов

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

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