[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Мастерская » Успехи в мире робототехники » "Robbe" (Продолжение...)
"Robbe"
SpaceДата: Суббота, 17.09.2011, 13:46 | Сообщение # 1
Администратор
Язык программированя: BascomAVR
Группа: Администраторы
Сообщений: 327
Репутация: 8
Статус: Offline
Решил продолжить свой старый проект, который обещал собственно продолжить. Ранее это проект обсуждался на старом сайте по адресу http://robotsspace.ucoz.ru/forum/3-422-1

Продолжение будет тут. То что было задумано я повторю, добавлю несколько пунктов. То что вычеркнуто уже было выполнено ранее или выполнено совсем не давно. Например корпус из ПВХ сделал пару недель назад))

  • 1. Сделать корпус из ПВХ
  • 2. Научить объезжать препятствия благодаря Шарпу
  • 3. Контроль разряда акб
  • 4. Забобахать ОС для Robbe.
  • 5. Научить работать с флешкой(использовать в качестве хранения памяти).
  • 6. Возможно сделать 4 колёсную платформу в дальнейшем, но врятле.
  • 7. Добавить звуковых датчиков(микрофоны, динамики)
  • 8. Написать программу для управления Robbe с компьютера по Bluetooth.
  • 9. Написать удобную терминальную программу(с помощью delphi или #C) для управления робби.
  • 10. Заложить в память робота определённые карты, по которым он бы искал кратчайшие маршруты до след. точки.
  • 11. Поставить камеру, передача сигнала по радиоканалу на ПК


На Robbe буду тестироваться модули Electronica-Red Robotics(ERR), а по возможности тестироваться совместимость модулей OR c ERR

Ну и небольшой фото отчёт



Прикрепления: 2527804.jpg (389.9 Kb) · 9205653.jpg (92.1 Kb) · 6918196.jpg (322.9 Kb) · 5101829.jpg (384.9 Kb) · 8246314.jpg (391.6 Kb) · 0068809.jpg (357.8 Kb)


SpaceДата: Воскресенье, 18.09.2011, 23:33 | Сообщение # 2
Администратор
Язык программированя: BascomAVR
Группа: Администраторы
Сообщений: 327
Репутация: 8
Статус: Offline
Собственно пока снял вот такое видео.



Пробный заезд на новой платформе+переписал прогу не много.

Основной файл Robbe.bas:
Code
'*******************************************************************************
' Автор: Замотаев Кирилл Игоревич (Space)
' Сайт: www.enore.ru
' Дата начала:  20.09.2009 г.
' CPU:  ATmega16
' Тактовая частота:  16000000  Hz
' Компилятор: BASCOM-AVR 1.11.9.0
' Версия 1.4
'*******************************************************************************
' Программируемые Fuse:
' SUT0
' BOOTSZ0, BOOTSZ1
' CKORT
' SPIEN
'*******************************************************************************

$regfile = "m16def.dat"                    'используем мк ATmega16
$crystal = 16000000                    'частота кварцевого резонатора 16mHz
$baud = 19200                    'устанавливаем скорость для UART
$include "config ports.bas"

'**************************Процедуры (функции)**********************************

Declare Sub Turrent                    'Объявить процедуру

'************************Переменные и константы*********************************
'*******************************Переменные**************************************

Dim A As Byte , B As Byte , C As Byte
Dim Sharp_left As Word , Sharp_right As Word
Dim Sharp_center As Word , Sharp_turret As Word

'***********************Задаём значения переменным******************************

A = 90 : B = 86 : C = 88

'*******************************Константы***************************************

Const Задержка Для Сервопривода = 30

'***************************Работа в терминале**********************************

Print "Hello!" : Print "I am Robbe."

'******************Вращение сервопривода и датчика Sharp************************
'***********************Основной цикл программы*********************************

Do

Call Turrent

Loop

'*******************************************************************************

$include "gosub.bas"                    'Подключаем в процесс компиляции внешний файл с метками
$include "Subs.bas"                    'Подключаем в процесс компиляции внешний файл с процедурами

'*******************************************************************************

'*******************************************************************************

End

'*******************************************************************************


Файл config portc.bas:

Code
'*********************************Порт A****************************************

'Ddra = &B00000000                    ' Все порты A выставляем на вход

'*******************************************************************************

'*********************************Порт В****************************************

Config Portb.3 = Output : Speaker Alias Portb.3

'*******************************************************************************

'*********************************Порт С****************************************

Ddrc = &B11111111                    ' Все порты B выставляем на выход

Config Servos = 5 , Servo1 = Portc.3 , Servo2 = Portc.4 , Servo3 = Portc.5 , Servo4 = Portc.6 , Servo5 = Portc.7 , Reload = 12       ' Указываем кол-во серв, присваеваем имя Servo№ PC№ , указываем длину импульса.

'*******************************************************************************

'*********************************Порт D****************************************

'******************************Настройка таймеров*******************************

'*******************************************************************************

'*****************************Настройка ADC*************************************

Config Adc = Single , Prescaler = Auto , Reference = Internal

'*******************************************************************************

Enable Interrupts                    ' разрешаем прерывания

'*******************************************************************************


Файл с процедурами Subs.bas(процедура, которая в этом файле одна пока, вращает сервопривод на котором установлен шарп):
Code
Sub Turrent
   '*********************************Вправо****************************************

Local I As Byte

   For I = 50 To 90
    Servo(1) = I : Waitms Задержка Для Сервопривода
   Gosub Проверка_дальномера_справа
   Next

For I = 90 To 110
Servo(1) = I : Waitms Задержка Для Сервопривода
Gosub Проверка_дальномера_слева
Next

'*********************************Влево****************************************

   For I = 110 To 90 Step -1
   Servo(1) = I : Waitms Задержка Для Сервопривода
   Gosub Проверка_дальномера_слева
   Next

For I = 90 To 50 Step -1
Servo(1) = I : Waitms Задержка Для Сервопривода
Gosub Проверка_дальномера_справа
Next

End Sub


Файл с метками Gosubs.bas(внизу кода задаётся угол(скорость) для сервы):
Code
'*******************************************************************************

$include "config ports.bas"

'*******************************************************************************
'***********************************Sharp***************************************

Проверка_дальномера_справа:
   Do
   Start Adc : Sharp_turret = Getadc(0)
   If Sharp_turret >= 850 Then
      Gosub Стоп
      Gosub Разворот_влево
   End If
   Loop Until Sharp_turret < 850
   Gosub Вперёд
Return

Проверка_дальномера_слева:
   Do
   Start Adc : Sharp_turret = Getadc(0)
   If Sharp_turret >= 850 Then
      Gosub Стоп
      Gosub Разворот_вправо
   End If
   Loop Until Sharp_turret < 850
   Gosub Вперёд
Return

'*******************************************************************************
'***********************************АКБ*****************************************

'*******************************************************************************
'*******************************************************************************
'      Включение комбинации серво-моторов для движения в заданном направлении
'*******************************************************************************

Стоп:
Servo(2) = C                    'Правая-передняя серва
Servo(4) = C                    'Правая-задняя серва
Servo(3) = C                    'Левая-задняя серва
Servo(5) = C                    'Левая-передняя серва
Return

Вперёд:
Servo(2) = B                    'Правая-передняя серва
Servo(4) = B                    'Правая-задняя серва
Servo(3) = A                    'Левая-задняя серва
Servo(5) = A                    'Левая-передняя серва
Return

Назад:
Servo(2) = A                    'Правая-передняя серва
Servo(4) = A                    'Правая-задняя серва
Servo(3) = B                    'Левая-задняя серва
Servo(5) = B                    'Левая-передняя серва
Return

Разворот_влево:
Servo(2) = B                    'Правая-передняя серва
Servo(4) = B                    'Правая-задняя серва
Servo(3) = B                    'Левая-задняя серва
Servo(5) = B                    'Левая-передняя серва
Return

Разворот_вправо:
Servo(2) = A                    'Правая-передняя серва
Servo(4) = A                    'Правая-задняя серва
Servo(3) = A                    'Левая-задняя серва
Servo(5) = A                    'Левая-передняя серва
Return

Поворот_влево:
Servo(2) = B                    'Правая-передняя серва
Servo(4) = B                    'Правая-задняя серва
Servo(3) = B                    'Левая-задняя серва
Servo(5) = B                    'Левая-передняя серва
Return

Поворот_вправо:
Servo(2) = A                    'Правая-передняя серва
Servo(4) = A                    'Правая-задняя серва
Servo(3) = A                    'Левая-задняя серва
Servo(5) = A                    'Левая-передняя серва
Return

'*******************************************************************************


DimsanДата: Понедельник, 19.09.2011, 18:10 | Сообщение # 3
Язык программированя: Си, Делфи
Группа: Модераторы
Сообщений: 65
Репутация: 1
Статус: Offline
Это максимальная скорость?
SpaceДата: Понедельник, 19.09.2011, 19:38 | Сообщение # 4
Администратор
Язык программированя: BascomAVR
Группа: Администраторы
Сообщений: 327
Репутация: 8
Статус: Offline
нет, это всего лишь вторая скорость из всех вохможных, а всего 9 скоростей crazy

SpaceДата: Вторник, 20.09.2011, 20:18 | Сообщение # 5
Администратор
Язык программированя: BascomAVR
Группа: Администраторы
Сообщений: 327
Репутация: 8
Статус: Offline
Quote (Dimsan)
Это максимальная скорость?

вот максимальная скорость



Форум » Мастерская » Успехи в мире робототехники » "Robbe" (Продолжение...)
  • Страница 1 из 1
  • 1
Поиск: