Код робота-пылесоса версия 1.х

Код робота-пылесоса версия 1.х

Сообщение EdGull » 23 ноя 2009, 10:34

Т.к. разработка механики на основе автомобильного пылесоса подходит к концу viewtopic.php?f=58&t=6794 , то пора писать код.
Здесь будем выкладывать все этапы программирования робота-пылесоса.
За основу будет браться заводская тестовая прошивка, но переносить будем по частям.

Допускаются небольшие обсуждения, но только в свете кода.
Категориеские запрещен троллинг, филосовствование и т.д.

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

Re: Первый код робота-пылесоса

Сообщение repository » 02 дек 2009, 23:38

Значит так
Создал проект:
http://code.google.com/p/broombot/
Залили туда что нашел тут в ветке форума.
Кому нужен SVN качаем здесь:
http://tortoisesvn.net/downloads
Устанавливаем, под виндами после этого в проводник встроен клиент, простой и удобный.
Здесь хелп на русском:
http://tortoisesvn.net/docs/release/Tor ... index.html
Разделил на директории с именами MiBBiM EdGull SMT соотв там версии лежат кто что выкладывал тут.
соотв. можно не только на васике, но и другие вещи выкладывать, тексты описаний версий, картинки, библиотеки, схемы и тп.
при этом откатится к любой предыдущей версии любого файла, посмотреть чем отличаются версии и тп.
Самое главное - можно вдвоем и более человек работать надо одним файлом и не парится, что кто нить его изменит, так что потом фиг поймешь что и как там теперь.
repository
 
Сообщения: 260
Зарегистрирован: 29 окт 2008, 18:14
Откуда: Химки МО
прог. языки: Java

Re: Первый код робота-пылесоса

Сообщение Snable » 03 дек 2009, 11:40

Если баском UTF-8 поддерживает, то лучше перезалить в UTF-8, а то гуглокод кракозябры в вебе показывает :-)
Аватара пользователя
Snable
 
Сообщения: 395
Зарегистрирован: 21 мар 2009, 20:06
Откуда: Город на Неве
прог. языки: GNU C++ with Qt / C# via .NET
ФИО: Александр

Re: Первый код робота-пылесоса

Сообщение repository » 03 дек 2009, 15:54

Хм, сомневаюсь, что поддерживает...
repository
 
Сообщения: 260
Зарегистрирован: 29 окт 2008, 18:14
Откуда: Химки МО
прог. языки: Java

Re: Первый код робота-пылесоса

Сообщение MiBBiM » 04 дек 2009, 01:13

эм, раз идея насчет репо поднялась, то я создал большое-пребольшое вот здесь. оно общее для всех (пока только моих, остальное будем добавлять потихоньку) наработок с платформой минибота.
http://code.google.com/p/minibot/source/list - последние изменения
http://code.google.com/p/minibot/source/browse/#svn/trunk - дерево всех проектов
http://code.google.com/p/minibot/source/browse/#svn/trunk/cleaner - проект пылесоса
http://code.google.com/p/minibot/source/browse/#svn/trunk/minibot_m32 - проект интерпретатора
ссылки для клиента:
http://minibot.googlecode.com/svn/trunk/
http://minibot.googlecode.com/svn/trunk/cleaner
http://minibot.googlecode.com/svn/trunk/minibot_m32
потестил переключение между режимами, для движения улиткой нужно подбирать константы, у меня бот не то чтобы очень плавно едет.
P.S. кодировка комментариев в самом деле съехала :(
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: Первый код робота-пылесоса

Сообщение Arsen » 04 дек 2009, 08:30

EdGull писал(а):какие у нас есть варианты?:
1. милисекунды
2. тики
3. по тикам энкодеров (которых у нас нет)
4. по количеству принятых команд
5. что еще?


5. событие датчика.

Пример на псевдокоде:

Едем_вперёд_до_срабатывания
затем (
Откат
Стоп
Случайный_разворот
Стоп
Едем_вперёд_до_срабатывания
)


Кстати, в примере рекурсия.
Железный Феликс: http://ironfelix.ru
Arsen
 
Сообщения: 110
Зарегистрирован: 11 окт 2004, 20:41
Откуда: Березники

Re: Первый код робота-пылесоса

Сообщение MiBBiM » 07 дек 2009, 21:59

если запоминание нужно только для фиксации маршрута, то можно по времени записывать величину управляющего воздействия (скважность шим).
как поведут себя уз маячки (это LPS?) при переходе из комнаты в комнату?
Arsen писал(а):Кстати, в примере рекурсия

и в отдаленной перспективе получим разрыв стека
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: Первый код робота-пылесоса

Сообщение EdGull » 08 дек 2009, 08:33

EdGull писал(а):Как написать чтобы, чем дольше я жму кнопку "Влево" тем на больший угол и более резче он бы поворачивал?
И без остановок.
А то сейчас он повернется, подождет, дальше повернется и т.д.

может будет у кого время разжевать мне?

Добавлено спустя 20 минут 48 секунд:
И еще думаю:
1. нужно подавать ШИМ на движки в зависимости он заряда акб.
Например, при 3.2В ШИМ 100%, а при 4.2В ШИМ такой чтобы крутились с такой же скоростью как и при 3.2В ШИМ 100%
2. нужно добавить новый тип движения, "рысканье", при езде прямо рыскать хрюнделем влево-вправо.Опять же завязанное на степень заряда акб так же как и в пункте 1.

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

Re: Первый код робота-пылесоса

Сообщение MiBBiM » 08 дек 2009, 08:38

EdGull писал(а):может будет у кого время разжевать мне?

дык я же написал, постом-двумя выше.
EdGull писал(а):поможешь?

угу
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: Первый код робота-пылесоса

Сообщение EdGull » 08 дек 2009, 08:43

у тебя написано
едем вперед, жмем кнопку налево, бот поворачивает. когда считаем, что поворот закончен, жмем либо стоп, либо вперед/назад


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

Re: Первый код робота-пылесоса

Сообщение MiBBiM » 08 дек 2009, 08:46

чем больше жмем, тем сильнее он поворачивает. ты зашивал? управление похоже на вождение автомобиля.
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: Первый код робота-пылесоса

Сообщение EdGull » 08 дек 2009, 08:55

да, он у меня ваще не ездил, поэтому лучше отдельными процедурами (или как там это у вас называется), чтоб я просто вставлял в свой код.

я ща механику как обкатаю, тебе вышлю чтоб ты меня понмал о чемя толдычу... :D

Добавлено спустя 3 минуты 2 секунды:
MiBBiM писал(а):управление похоже на вождение автомобиля.

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

Re: Первый код робота-пылесоса

Сообщение yak-40 » 08 дек 2009, 09:31

EdGull писал(а):1. нужно подавать ШИМ на движки в зависимости он заряда акб.
Например, при 3.2В ШИМ 100%, а при 4.2В ШИМ такой чтобы крутились с такой же скоростью как и при 3.2В ШИМ 100%
Можно так, а можно маршевые движки через отдельный стабилизатор запитать.
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Первый код робота-пылесоса

Сообщение EdGull » 08 дек 2009, 09:37

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

Re: Первый код робота-пылесоса

Сообщение yak-40 » 08 дек 2009, 10:15

Я делел на МС34063, он на ШИМ-е. Какая разница где ШИМ ставить :)
А потом твои маршевые движки потребляют немного, миллиампер по 150, или я ошибаюсь?
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Первый код робота-пылесоса

Сообщение EdGull » 08 дек 2009, 14:27

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

Пред.След.

Вернуться в Программирование

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

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