+7-960-0655211 (Билайн)
+7-987-4207734 (МТС)
интернет-магазин
доставка по России и СНГ
нам больше 10 лет!

Форум

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
AltBoot для AVR, Альтернативный ISP/UART программатор для AVR
 
Представляю вашему вниманию альтернативный вариант программатора для микросхем AVR серии megaAVR 8-bit под названием "AltBoot".

Преимущества:
  • малый размер бутлоадера (на выбор 512 или 1024 байта);
  • простой и интуитивный интерфейс;
  • встроенный в бутлоадер ISP программатор;
  • совместим с Arduino IDE 1.0 (взамен avrdude).
Вот несколько бутлоадеров для проверки:
  • ATMega8 16Mhz - 512 байт -скачать - fuse:(см. datasheet)
  • ATMega8 16Mhz - 1024 байт - скачать - fuse:(см. datasheet)
  • ATMega168 16Mhz - 512 байт - скачать - fuse:(CF-FC-DD-FF)
  • ATMega168 16Mhz - 1024 байт - скачать - fuse:(CF-FA-DD-FF)
  • ATMega328 16Mhz - 512 байт - скачать - fuse:(см. datasheet)

  • ATMega328 16Mhz - 1024 байт - скачать - fuse:(см. datasheet)
Системные требования:
  • Windows XP/Vista/7
  • DotNet Framework v3.5
Версия программы пока alpha, так что возможны проблемы, которые со временем будут устранятся. Если будете сообщать об ошибках то дело пойдет быстрее.
Цитата
Как устанавливать?
Для первой установки потребуется одна из перечисленных прошивок бутлоадера и соответствующий ей микроконтроллер. Используйте любой доступный Вам способ для первой прошивки бутлоадера, после чего ваш микроконтроллер сможет связываться с программой AltBoot и прошиваться Вашими программами через неё.
Цитата
Режим ISP программатора
После прошивки бутлоадером Ваш микроконтроллер приобретает свойства полноценного ISP программатора. Чтобы воспользоваться этим режимом нужно:1) подключить новый микроконтроллер к Вашему контроллеру (с AltBoot'ом) по этой схеме (Pin AltBoot --> Pin Новый)
  • 13 --> 13 (SCK)
  • 12 --> 12 (MISO)
  • 11 --> 11 (MOSI)
  • 10 --> Reset
  • +5 --> +5
  • GND --> GND
2) соединиться с программой AltBoot при помощи Вашего старого контроллера и выбрать режим "UART --> ISP". Если контакты подсоединены правильно то окно "UART --> ISP" разблокируется и при нажатии кнопки "Test" высветится название Вашего нового контроллера.
Цитата
Типы прошивок
Программа использует только Intel HEX файлы прошивок. Совместима с AVR Studio и Arduino IDE. Также следует выбирать прошивки совместимые с Вашим типом микроконтроллера.
Цитата
Подключение к Arduino IDE 1.0
Заходим в папку "arduino-1.0\hardware\tools\avr\bin", переименовываем "avrdude.exe" в "avrdude2.exe" и копируем в этот каталог программу AltBoot переименовав её в "avrdude.exe". Затем заходим в папку "arduino-1.0\hardware\arduino" и находим файл "boards.txt", открываем его с помощю WordPad и находим в нем Ваш контроллер. Затем меняем ему настройки или добавляем туда новый вариант. Пример:

Код
#################################################

diecimila.name=Arduino Diecimila or Duemilanove w/ ATmega168

diecimila.upload.protocol=arduino
diecimila.upload.maximum_size=14336
diecimila.upload.speed=19200

diecimila.bootloader.low_fuses=0xff
diecimila.bootloader.high_fuses=0xdd
diecimila.bootloader.extended_fuses=0x00
diecimila.bootloader.path=atmega
diecimila.bootloader.file=ATmegaBOOT_168_diecimila.hex
diecimila.bootloader.unlock_bits=0x3F
diecimila.bootloader.lock_bits=0x0F

diecimila.build.mcu=atmega168
diecimila.build.f_cpu=16000000L
diecimila.build.core=arduino
diecimila.build.variant=standard
копируем и дописываем в конец файла
Код
#################################################

diecimilaAB.name=ATmega168 with AltBoot

diecimilaAB.upload.protocol=arduino
diecimilaAB.upload.maximum_size=15358
diecimilaAB.upload.speed=9600

diecimilaAB.build.mcu=atmega168
diecimilaAB.build.f_cpu=16000000L
diecimilaAB.build.core=arduino
diecimilaAB.build.variant=standard
при этом заменив скорость на 9600 и размер на 15358. Так же были удалены неиспользуемые параметры стандартного загрузчика и создано новое имя "diecimilaAB" (имя может быть любым несовпадающим с другими). Результат
DF-Bluetooth V3, Некоторые особенности работы модуля Bluetooth V3
 
После испытаний и экспериментов с модулем "DF-Bluetooth V3" выяснил несколько важных особенностей возникающих при использовании данного устройства:

1) Верхнюю панель корпуса нужно укреплять, иначе отломится.
2) Логика модуля оказалась 3.3V, об этом нигде не предупреждали, но зато полностью совместима с 5V TTL.
3) Модуль не может динамически определять скорость TTL канала, приходится устанавливать её с помощью AT команд.
4) Плохо ловит через стены, желательна прямая видимость управляемого объекта.
5) Структура Bluetooth протокола не позволяет эффективно использовать скорость порта при побайтовой передачи, необходим промежуточный буфер (128-512 байт) для пакетной отправки.

И наконец главная проблема от которой у некоторых пользователей на форумах возникали вопросы - невозможность отправки данных на контроллер при стабильном приёме сообщений от него. Причем при использовании SoftwareSerial библиотеки эта проблема исчезла.

Как оказалось виной всему был встроенный в контроллер чип преобразователь USB <-> Serial. Канал RX был намертво (через 1кОм) соединен с его TX каналом.

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

Так же достаточно заменить сопротивление 1кОм на 10-15кОм между RXом контроллера и TXом чипа и не парится с замыканиями контактов NC.

Если всё сделать правильно, то модуль будет работать шикарно! :idea:

Данные манипуляции проводились с "ORduio Nano v1.1+".
Изменено: Сергей Скляров - 21.07.2011 14:08:59
6-ти лапый ходунок "Арахнид", Hexapod - проект Сергея Склярова
 
Всем доброго времени суток!
Предлагаю оценить мою новую работу - Hexapod "Арахнид". Все детали на 6-ти лапого ходунка вырезаны вручную из коричневого 3-х мм. ударопрочного оргстекла, некоторые детали пришлось сгибать (оргстекло хорошо гнется в кипящей воде).

При сборке шасси использованы:
6 сервоприводов TowerPro MG995,
12 сервоприводов HexTronik HX5010,
2 сервопривода HexTronik HXT900,
сервоконтроллер Pololu Mini Maestro 24.

При попытке запустить робота было установлено, что ему нужен минимальный ток около 7-8 А( ток сервы жрут как звери). Поэтому пока пришлось запитать от блока питания со старого компа (5V 30A). Во время испытаний робот поднимал около 2-х кг. полезного веса, а сам робот весит 2,4 кг.

Здесь видео:


Здесь фото:






Здесь скрипт для "Maestro 24":

Код
state_save_1
1000 delay
state_save_0
1000 delay
state_up_0
1000 delay
state_up_1
1000 delay
state_up_2
500 delay

6
begin

  move_0
  
  dup while
  1 MINUS
repeat 

500 delay
state_up_2
500 delay
state_ready_0

3
begin

  state_ready_atack
  
  dup while
  1 MINUS
repeat 

500 delay
state_up_2
500 delay
state_up_0
1000 delay
state_save_0
1000 delay
state_save_1
1000 delay
state_stop_0

quit 

sub move_0
  20 20 speed 6501 20 servo #
  50 21 speed 5338 21 servo #
  60 23 speed 3963 23 servo #
  #---
  50 6 speed 6016 6 servo #
  50 5 speed 4967 5 servo #
  40 4 speed 3968 4 servo #
  #---
  40 15 speed 3835 15 servo #
  40 14 speed 7452 14 servo #
  40 13 speed 6788 13 servo #
  #------------
  300 18 speed 5558 18 servo #
  100 16 speed 6877 16 servo #
  #---
  300 7 speed 5530 7 servo #
  100 8 speed 8427 8 servo #
  #---
  300 10 speed 6393 10 servo #
  100 11 speed 3578 11 servo #
  #---
  200 delay
  #---
  40  19 speed 5888 19 servo #
  100 18 speed 7577 18 servo #
  120 16 speed 5922 16 servo #
  #---
  80  9 speed 7457 9 servo #
  100 7 speed 7363 7 servo #
  120 8 speed 7254 8 servo #
  #---
  100  12 speed 7210 12 servo #
  100  10 speed 4886 10 servo #
  120  11 speed 4856 11 servo #
    
  300 delay
  #---------------------------------
  20 19 speed 5533 19 servo #
  50 18 speed 7275 18 servo #
  60 16 speed 7404 16 servo #
  #---
  40 9 speed 6016 9 servo #
  50 7 speed 7394 7 servo #
  40 8 speed 6806 8 servo #
  #---
  40 12 speed 8599 12 servo #
  40 10 speed 4918 10 servo #
  40 11 speed 4593 11 servo #
  #------------
  300 21 speed 7286 21 servo #
  100 23 speed 3116 23 servo #
  #---
  300 5 speed 6533 5 servo #
  100 4 speed 2696 4 servo #
  #---
  300 14 speed 5526 14 servo #
  100 13 speed 8736 13 servo #
  #---
  200 delay
  #---
  40  20 speed 5914 20 servo #
  100 21 speed 5198 21 servo #
  120 23 speed 5216 23 servo #
  #---
  80  6 speed 4430 6 servo #
  100 5 speed 4804 5 servo #
  120 4 speed 3512 4 servo #
  #---
  100 15 speed 4863 15 servo #
  100 14 speed 7483 14 servo #
  200 13 speed 6717 13 servo #
  #---
  300 delay

return

sub state_save_0
  2304 23 servo
  7552 22 servo
  8330 21 servo
  6208 20 servo
  5888 19 servo
  4322 18 servo
  4928 17 servo
  9216 16 servo
  4241 15 servo
  4221 14 servo
  9728 13 servo
  7904 12 servo
  2112 11 servo
  8023 10 servo
  6016 9 servo
  9600 8 servo
  4194 7 servo
  6016 6 servo
  8197 5 servo
  2240 4 servo
return

sub state_save_1
  2304 23 servo
  7552 22 servo
  9792 21 servo
  6208 20 servo
  5888 19 servo
  3328 18 servo
  4928 17 servo
  9216 16 servo
  4241 15 servo
  3072 14 servo
  9728 13 servo
  7904 12 servo
  2112 11 servo
  9408 10 servo
  6016 9 servo
  9358 8 servo
  3200 7 servo
  6016 6 servo
  9502 5 servo
  2240 4 servo
return

sub state_up_0
  25 
  dup 5  speed dup 7  speed
  dup 10 speed dup 14 speed
  dup 18 speed     21 speed

  20 
  dup 4  speed dup 8  speed
  dup 11 speed dup 13 speed
  dup 16 speed     23 speed

  3049 23 servo
  7552 22 servo
  7530 21 servo
  6208 20 servo
  5888 19 servo
  5407 18 servo
  4928 17 servo
  8129 16 servo
  4241 15 servo
  5371 14 servo
  8630 13 servo
  7904 12 servo
  3051 11 servo
  6916 10 servo
  6016 9 servo
  8289 8 servo
  5436 7 servo
  6016 6 servo
  7120 5 servo
  2500 4 servo
return


sub state_up_1
  4606 23 servo
  7552 22 servo
  5268 21 servo
  6208 20 servo
  5888 19 servo
  7516 18 servo
  4928 17 servo
  6680 16 servo
  4241 15 servo
  7390 14 servo
  6965 13 servo
  7904 12 servo
  4668 11 servo
  4886 10 servo
  6016 9 servo
  6806 8 servo
  7394 7 servo
  6016 6 servo
  4967 5 servo
  3968 4 servo
return

sub state_up_2
  0 
  dup 21 speed dup 18 speed dup 20 speed dup 19 speed dup 23 speed dup 16 speed 
  dup 14 speed dup 10 speed dup 15 speed dup 12 speed dup 13 speed dup 11 speed 
  dup 7  speed dup 5  speed dup 9  speed dup 6  speed dup 8  speed     4  speed 

  0 22 speed 7552 22 servo
  0 17 speed 4928 17 servo

  6416 21 servo 6208 20 servo 4606 23 servo 200 delay 5268 21 servo 200 delay
  6432 18 servo 5888 19 servo 6680 16 servo 200 delay 7516 18 servo 200 delay
  6458 14 servo 4241 15 servo 6965 13 servo 200 delay 7390 14 servo 200 delay
  5809 10 servo 7904 12 servo 4668 11 servo 200 delay 4886 10 servo 200 delay
  6213 7  servo 6016 9  servo 6806 8  servo 200 delay 7394 7  servo 200 delay
  5946 5  servo 6016 6  servo 3968 4  servo 200 delay 4967 5  servo 200 delay

return


sub state_up_max
  25 
  dup 5  speed dup 7  speed
  dup 10 speed dup 14 speed
  dup 18 speed     21 speed

  40 
  dup 4  speed dup 8  speed
  dup 11 speed dup 13 speed
  dup 16 speed     23 speed

  7214 23 servo
  7552 22 servo
  3528 21 servo
  6208 20 servo
  5888 19 servo
  9536 18 servo
  4928 17 servo
  3815 16 servo
  4241 15 servo
  9472 14 servo
  3777 13 servo
  7904 12 servo
  7374 11 servo
  3072 10 servo
  6016 9 servo
  3634 8 servo
  9413 7 servo
  6016 6 servo
  3206 5 servo
  6611 4 servo
return

sub state_stop_0
  0 
  dup 23 servo dup 22 servo dup 21 servo 
  dup 20 servo dup 19 servo dup 18 servo 
  dup 17 servo dup 16 servo dup 15 servo 
  dup 14 servo dup 13 servo dup 12 servo 
  dup 11 servo dup 10 servo dup 9  servo 
  dup 8  servo dup 7  servo dup 6  servo 
  dup 5  servo 4 servo 

return

sub state_ready_0
  100 15 speed 4241 15 servo
  100 14 speed 4998 14 servo
  100 13 speed 9338 13 servo
  100 12 speed 7904 12 servo
  100 11 speed 2751 11 servo
  100 10 speed 7162 10 servo
  
  200 delay

  50 15 speed 5940 15 servo
  50 14 speed 8390 14 servo
  50 13 speed 6965 13 servo
  50 12 speed 6141 12 servo
  50 11 speed 4668 11 servo
  50 10 speed 3886 10 servo

  400 delay

  50 23 speed 4606 23 servo
  50 21 speed 9096 21 servo
  50 20 speed 4631 20 servo
  50 19 speed 6454 19 servo
  50 18 speed 3840 18 servo
  50 16 speed 6680 16 servo
 
  20 22 speed 9088 22 servo
  20 17 speed 3648 17 servo

  1000 delay
    
return

sub state_ready_atack
  0 23 speed 4606 23 servo
  0 22 speed 9088 22 servo
  0 21 speed 9096 21 servo
  
  0 18 speed 5859 18 servo
  0 17 speed 3648 17 servo
  0 16 speed 4276 16 servo

  200 delay

  0 17 speed 4928 17 servo

  200 delay

  0 23 speed 7417 23 servo
  0 21 speed 6799 21 servo
  0 18 speed 3900 18 servo
  0 17 speed 3648 17 servo
  0 16 speed 6548 16 servo

  200 delay

  0 22 speed 7552 22 servo

  200 delay

return



Планирую добавить контроллер и сенсоры для автономной работы.
Жду ваших отзывов и предложений. ;)
Изменено: Сергей Скляров - 11.11.2012 21:57:12
Страницы: 1