• - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!
подписаться на RSS-ленту

TOP комментариев

+4
На странице «по последней ссылке» рассматривается прямая задача кинематики. Естественно, приведенные там формулы столь же просты, как и в первой части данного поста.
А «проведение прямой» — это обратная задача кинематики. Как совершенно справедливо сказано -задача, чуть более сложная, чем та, где действительно, просто «взяли и посчитали».
avatar

step-dubna

  • 4 февраля 2012, 06:01
+4
а вот елку уже пора убирать))
avatar

aivanov

  • 3 февраля 2012, 18:47
+2
Огромное спасибо за старания. Подробного русскоязычного курса по этой платформе еще не было. Автор можно сказать благородным просветительским делом занят. Прикупил себе плату, буду по ходу дела изучать.
В целом очень много общего с AVR-ками. А возможностей гораздо больше.
avatar

Ozze

  • 30 января 2012, 18:13
+1
Спасибо! Отличная статья!
немного поправил теги :)
avatar

admin

  • 31 января 2012, 20:41
+1
И кстати, в догонку, обрабатывать можно и кадры, полученные после обработки в OpenCV, ведь кросс-корреляция работает на взаимное положение объектов друг относительно друга.
avatar

aivanov

  • 31 января 2012, 07:42
+1
Знакомая тема, еще подобную оценку можно сделать при помощи кросс-корреляции, я делал подобное в labview. Там можно сделать сравнение двух обработанных кадров по их матрицам (точки, например это 1, а 0 — пустая область), продуктом кросс-корреляции будет та же матрица, в которой максимум будет отвечать за направление вектора скоростей. И возможно он даже проще. Единственным нюансом, является небольшая область выборки. При кросс-корреляции рекомендуют использовать оценку движение от 5 до 12 точек, соответственно малый кадр получается, однако при интенсивной обработке это вполне сгодиться.
avatar

aivanov

  • 31 января 2012, 07:32
0
Если попадётся когда-нибудь недорогой вариант и будет время — почему бы и нет. Дисплей, использованный в статье по ссылке, стоит около 20$, а показывает всего-то 20 символов. Дорогое удовольствие получается.
avatar

burjui

  • 4 февраля 2012, 19:15
0
Это оптимизация размера кода, также включает в себя -O2. Если Linux есть, то смотри man gcc насчёт оптимизаций. Кстати, при использовании -O3 я бы рекомендовал отлаживать и тестировать код особенно тщательно, т.к. этот уровень предполагает использование потенциально небезопасных оптимизаций, которые могут привести к некорректной работе кода.
avatar

burjui

  • 4 февраля 2012, 19:01
0
Catenary не существует уже, а modkit стоит 30$ месяц
avatar

lU5esdYP

  • 4 февраля 2012, 18:20
0
Подтверждаю, программа платная. Открываем конкурс на замену, желательно с лицензиями GPL/MIT.
avatar

lU5esdYP

  • 4 февраля 2012, 18:10
0
а сделайте статью по управлению e-ink дисплеями, как вот тут bildr.org/2011/06/epaper-arduino/
avatar

lU5esdYP

  • 4 февраля 2012, 17:51
0
Для многих этот недостаток ставит жирную точку для данного плагина. Да и как-то это не правильно писать программу для опенсорс железа в проприаритарной программе. Вдруг он туда трояна впишет для нужд и по договорённости с FBI? (и шучу и нет)
avatar

lU5esdYP

  • 4 февраля 2012, 17:35
0
Да, спасибо, через ODR скорость выросла до 1.6мГц, а если еще оптимизировать по О3 — то поднимается до 2.6мГц.
А что за оптимизация Оs?, у меня в программе coocox есть варианты только О1, О2, О3, ну и конечно же NONE,
avatar

AlexNS

  • 4 февраля 2012, 17:24
0
вот он бы ещё демонстрировал как оно работает после включения
avatar

lU5esdYP

  • 4 февраля 2012, 17:21
0
Нужен моторшилд для 5координатного фрезерного станка (моторы от 380 запитаны и ампераж у них не модельерный). Для как бы ёМобиля (там привод на каждом колесе и задача синхронизации есть, ампераж высокий). Для промышленной руки-привода с тоже не хилыми моторами (более чёткое управление, стопорить обязательно). Моторшилды работающие от xbee, для автоматизации производства, чтоб протягивать к ним только основное питание, а управлять по беспроводу (повышен ампераж к томуже, частая и постоянная остановка двигателей, что даёт некие скачки в сети, моторов много 50-100). Моторшилды для управления катушками зажигания в авто (задача программной настройки ампеража). В общем если отдалиться от роботостроения игрушек и приблизиться к реальной жизни, то моторшилды нужны всякие и разные. А и ещё микродубликаторы — то есть: перед тем как всё это имплантировать в реальное железо товарищ юзер должен иметь возможность показать (боссам, себе) это всё на макете, а потом просто поменяв плату и подключаемые мощности работать без изменения программы на мощных приводах.
avatar

lU5esdYP

  • 4 февраля 2012, 17:16
0
Я проверил — действительно, получается около 400 КГц. Но тут нет ничего странного, ведь нужно учитывать скорость выполнения программы и то, что функции не встраиваются (inline), если выключены оптимизации: каждый вызов функции вносит задержку. Так что у вас есть два варианта:

1. Собирать Release-версию проекта со включенными оптимизациями (-O2 или -Os). Скорость переключения достигнет 1 МГц.

2. Не использовать библиотечные функции, а писать так:
while(1)
  GPIOA->ODR = GPIOA->ODR ^ SPEED;
Скорость будет около 2 МГц.

В любом случае, добиться скорости переключения вручную в 10 МГц невозможно. С другой стороны, таймер вполне может выжать все 10 МГц, т.к. у него переключение реализовано аппаратно.
avatar

burjui

  • 4 февраля 2012, 15:29
0
На термехе не так интересно было, спасибо. Сейчас актуально. И спасибо за литературу
avatar

raleksandr

  • 4 февраля 2012, 12:23
0
Ребят, только изучаю АРМ, подскажите кто знает максимальную скорость переключения вывода, у меня она ограничивается в 400 кГц.
Плата STM32 Discovery, вот код:
int main(void)
{
	  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

	  GPIO_InitTypeDef gpio;
	  GPIO_StructInit(&gpio);
	  gpio.GPIO_Mode = GPIO_Mode_Out_PP;
	  gpio.GPIO_Pin = SPEED;
	  gpio.GPIO_Speed = GPIO_Speed_10MHz;
	  GPIO_Init(GPIOC, &gpio);

    while(1)
    {
    GPIO_Write(GPIOC, GPIO_ReadOutputData(GPIOC) ^ (SPEED));
    }
}

Делаю замер частоты на выводе SPEED — показывает 200кГц, а так как стоит ^(SPEED) — значт умножаем полученную частоту на 2, получаем 400кГц.
avatar

AlexNS

  • 4 февраля 2012, 02:58
0
уже давно убрана :)
avatar

noonv

  • 3 февраля 2012, 19:01