26

(3 ответов, оставленных в Технические вопросы)

Насколько помню в Freeduino 2009 джамперных перемычек выбора питания не предусмотрено, там   присутвует автоматический выбор питания (пользуюсь теминологией произвоителя Freeduino 2009). Схема, как этот автовыбор реализован, представлена - описывать ее работу словами считаю не нужным. Здесь проблему вижу одну - мы как бы включаем два источника питания на параллельную работу друг другу, естественно они не идеальны и не равны друг другу, вследствие этого начнут протекать между ними уравнительные токи по цепи питания - их величина будет ограничиваться сопротивлением всех элементов этой цепи питания. Не думаю, что эти токи имееют такую критическую величину, что могут сжечь USB или внешний блок питания. Я сам частенько бывает  одновременно подключаю Freeduino 2009 к компу и внешнему блоку питания - пока ничего не сгорело, тьфу-тьфу... )))

27

(22 ответов, оставленных в Технические вопросы)

Думаю, сначала надо понять правильно ли было все спаяно. Фото с двух сторон спаянного Freeduino MaxSerial  можно выложить? Поробуем для начала поискать косячки в аппаратной части.

28

(5 ответов, оставленных в Технические вопросы)

У Arduino Mega некоторые ноги немного различаются от обычной Arduino по функционалу и по способу программного доступа. MotorShield, судя по исходникам библиотеки, не использует аппаратный SPI, и наверняка принципиально способен работать с Mega, но если, к примеру на Mega стоит чип atmega2560, то нужно исходники править, т.к. там проверка идет примерно так:
"#elif defined(__AVR_ATmega1280__)"
С ORduino видимо должна работать - ведь там 100% соответствие ног с ногами Arduino Nano ?
Ну, и собственно самое важное - есть подозрение на активный флюс - вот аналогичная ветка:
http://freeduino.ru/forum/viewtopic.php?id=62
плату после такого флюса желательно хорошо промыть спиртом или хотя бы водкой с помощью кисточки какой-нибудь.

29

(5 ответов, оставленных в Технические вопросы)

Arduino Mega 2560 - она вообще совместима с Motor Shield v3.0, чтобы взять и "поставить на нее шилду".  Задавался этим вопросом? Надо смотреть какие пины у ардуины используются и какие у меги для работы с моторшилдом.

30

(8 ответов, оставленных в Технические вопросы)

ЕвгенийARM пишет:

А то как глянул в схему чуть руки не опустились как там все замудрили

Глаза боятся, а руки делают - схемы там на самом деле считай одинаковые - карта повешана на шину SPI. Только у одних преобразование уровней микрухой, у других резисторами, ну и SS на разных ногах, т.к. 10 нога занята SS от W5100.
Ну, и как верно отмечено выше, паять SD держалку смысла нет, т.к. нет софтовой поддержки этого дела - нужен Software SPI, да и карточки придется втыкать 5-вольтовые.
Страждущим можно купить официальный обновленный EthernetShield (именно обновленный!), либо самому спаять эту часть схемы, либо через какое-то время наверняка freeduino.ru и обновленный шилд тоже повторять будет.

31

(3 ответов, оставленных в Технические вопросы)

DaemoncheG пишет:

Я не совсем понимаю как открыть ком порт на freeduino maxserial
Можно показать пример?

Nordmen все верно расписал - дополнить нечем. И пример привел.
"открывается" последовательный интерфейс не в стиле PC (с получением хэндлов и т.д.), а вызовом метода begin глобального объекта Serial, всунутого в вашу программу заботливыми итальянскими парнями.
Смотри примеры работы с последовательным портом, идущие с ПО, и просто в интернете - хоть на этом сайте.

Сильно заинтересовал меня способ подключения этих читалок с соединением 2 и 7 ноги.
7 нога на ПК - это RTS - по сути выход (со стороны ПК), а 2 - это RX - вход. Похоже, слава инженерному гению разработчиков, соединение RTS с RX дает эффект поддяжки RX на +12В. Правда, там же они признаются, что такое проходит не на всех матерях, и иногда нужно не жалеть один резистор, и подтягивать напрямую.
На MaxSerial конечно же RTS нет, и нужно будет именно второй вариант реализовывать.
И самое главное - видится мне, что если его не к 12В притянуть, а к 5В, то можно будет напрямую
к любой ноге Arduino цеплять, и потом через SoftwareSerial работать. Только что-то придется выдумывать с инверсией сигналов, но внутри SoftwareSerial это и программно можно.

...чуть не забыл - цеплять к MaxSerial нужно не на 2ю ногу COM-порта, а на 3-ю, ведь на 2й ноге у MaxSerial TX, который соединяется с RX компьютера. А RX у MaxSerial на 3й ноге!

32

(1 ответов, оставленных в Технические вопросы)

Сомнительная идея.
ШИМ каналы разные, и они между собой могут быть несинхронные - в результате
в какие-то периоды времени на одном выходе будет полное напряжение, а другой отключен.
...хотя, если MShield не жалко, можно было бы попробовать :)
...можно еще попробовать библиотеку поковырять - может синхронность таймеров обеспечить ?
...а еще можно просто несколько микрух L293 напаять поверх уже имеющихся

33

(2 ответов, оставленных в Технические вопросы)

Что-то непонятно ничего :)
Раз софт говорит, что прошивка залилась - значит она залилась, тем более RX/TX отморгались.
Из чего делается вывод, что прошивка не исполняется - из того, что 13 LED не моргает?
Исходник прошивки какой ? Стандартный blink ?
Я бы предположил, что либо LED неверной полярностью впаян, либо сам LED битый.
Поправить в прошивке ногу - вместо 13 сделать любую другую, и вторым светодиодом с токоограничивающим резистором проверить.

Да не вопрос! Только он уже выложен в первом моем сообщении (под картинками "Исходный код"), целиком проект с принципиальной схемой, перечнем компонентов  там же - в первом сообщении ("Остальные Файлы проекта смотрите тут"). Если я что-то не понял, либо скетч битый  - прошу сообщить, я все залью заново.

Данный проект я бы не стал называть так громко достижением - обычное типовое решение задачи управления двигателем постоянного тока (ДПТ). Есть два основных подхода к построению систем управления ДПТ с применением полупроводниковых ключей - это как Вы указали применение импульсно-фазового управления, либо широтно-импульсного. Приведенную мной схему Вы легко можете использовать для управления ДПТ с независимым возбуждением (ДПТнв) типа  ПБСТ-33, но есть но.... По порядку по вопросам:
1. Широкий диапазон регулирования скорости вращения обеспечивается.
2. Реверс в данной схеме не предусмотрен. Изменение скорости вращения происходит в ДПТнв либо изменением направления тока якоря, либо тока обмотки возбуждения. Данное можно сделать с помощью контакторов, дополнив ими приведенную мной схему. Либо использовать мостовую транзисторную схему, в диагональ которого включается якорная обмотка ДПТнв. При реализации реверса, хочу обратить внимание, что ДПТнв будет переходить через режим противовключения (электромагнитного тормоза), в котором ток якоря превышает ток КЗ (пусковой ток). Поэтому надо правильно выбрать транзисторы на соответствующий ток, а лучше сделать программно управляемый реверс (постепенный останов ДПТнв за счет уменьшения скважности и последующий переход на другое направления вращения за счет перехода на другую пару транзисторных ключей при мостовой транзисторной схеме). Честно говоря вариантов довольно много ...
3. Индикация на ЖК есть - пуск, останов, измение скорости (показывает скважность от 0 до 100 %).
Не знаю помогли ли мои ответы, надеюсь, что да.

36

(3 ответов, оставленных в Выставка достижений)

О! Как поговаривал один мой коллега по молодости - "респект и уважуха".
Не вдаваясь детально в конкретную схему (просто некогда) я бы хотел отметить правильность подхода - платформа Arduino в виде готовых платок удобна для прототипных разработок. А для конечного продукта логичным является именно сделать на том же чипе отдельное устройство с учетом особенностей конкретной схемы, что автор любезно и продемонстрировал.

37

(2 ответов, оставленных в Организационные вопросы)

Вспоминается шутка:
-Доктор, я часом, не болен ?
-Та-а-к, давайте посмотрим.... покажите язык... дышите... не дышите...
Нет, голубчик, часа у вас нет :)

Думаю, последнее снижение цен не связано с распродажей остатков, т.к. вон какой-то новый M-Shield сделали
...я сюда правда давно не заглядывал

38

(1 ответов, оставленных в Технические вопросы)

robocraft некорректно пишет.
Внешних прерываний всего два.
Две указанных ноги имеют ту особенность, что можно сконфигурировать прерывание например только по фронту, или только по спаду.
Все остальные ноги тоже можно повесить на прерывание, но оно будет происходить при любом изменении, и нужно будет самому разбираться - в какой ноге и какое изменение произошло. Всех этих хитростей в 2 словах не опишешь - лучше всего читать офф. документацию от Atmel.

39

(9 ответов, оставленных в Технические вопросы)

rxtstorm пишет:

Отзовитесь люди!!!!Так знает ли кто-нибудь как с шилдами работать и передавать данные с одной хвее на другую хвее!
Помогите пожалуйста,сам не могу разобраться!

Да просто там все. Никаких библиотек не нужно. Я же говорю, берешь две Arduino, надеваешь на них XBee shield'ы. Если чипы XBee ты не перепрограммировал, они связываются друг с другом сами, и все что одна плата передает, вторая принимает.
К примеру, в первую плату зальем тестовый пример - когда принимается символ 'H' она зажигает 13 светодиод, когда принимается 'L', она его гасит:

int outputPin = 13;                //здесь храним номер контакта
int val;                           //здесь будет храниться принятый символ

void setup()
{
  Serial.begin(9600);              //установка порта на скорость 9600 бит/сек
  pinMode(outputPin, OUTPUT);      //устанавливаем 13 контакт в режим вывода
}

void loop()
{
  if (Serial.available()) {         //если есть принятый символ,
    val = Serial.read();            //  то читаем его и сохраняем в val
    if (val == 'H') {               //  если принят симовол 'H',...
      digitalWrite(outputPin, HIGH);//  то включаем светодиод
    } 
    if (val == 'L') {               //  если принят симовол 'L',
      digitalWrite(outputPin, LOW); //    то выключаем светодиод
    }
  }
}

Во вторую грузим совсем простой код - ждет секунду, шлет 'H', ждет секунду, шлет 'L':

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  delay(1000);
  Serial.print('H', BYTE);
  delay(1000);
  Serial.print('L', BYTE);
}

Готово. Вторая шлет в порт 'H', он по радио передается на первую, первая его получает, зажигает светодиод. И в таком духе.
Еще раз повторяю - работа через XBee - это просто работа с последовательным портом.
Хитрости начинаются, если нужно давать управляющие команды самому XBee модулю - тут может и библиотека покажется необходимой, хотя все-равно не обязательной, ведь модулю через тот же самый порт команды даются.

40

(9 ответов, оставленных в Технические вопросы)

GPP пишет:

Это реально вообще? Они такие маленькие! У меня больше нет вариантов? :(

Глаза боятся, а руки делают! Ничего страшного в этом нет. Тонкие заранее залуженые проводки (удобно шлейф старый от HDD), нормальный не кислый флюс (ЛТИ-120 самое то что надо), тонкий паяльник, твердые руки, вот и все, что нужно :)

...а самостоятельные изменения в модуле - это ребята весело написали - видать имели в виду, что штыревуху проще перепаивать, чем SMD, но по факту, лично мне, при необходимости, допустим отключить светодиод PWR (ну, например я ток потребления уменьшаю) проще SMD'шный резистор выпаять, чем штыревой.

41

(11 ответов, оставленных в Технические вопросы)

RaJa пишет:

К сожалению, в нее был записан скетсн, которые все, что получал по Serial порту отправлял обратно, - я тестировал схемку на MAX232, подключенную к COM порту компа.

Почему к сожалению ? То, что FT232 накрылась медным тазом, это уже 100%. Ее надо просто выкусить аккуратно из платы тонкими бокорезами по одной ноге, а остатки ног аккуратно выпаять, чтобы дороги не повредить. А потом работоспособность ATmega можно проверить просто нажимая Reset - при сбросе она же 13 ногой дергает. Ну, и затем я бы еще проверил, что и от USB работает, и от внешнего источника, и если все Ok, то радовался бы возможности приобретения/улучшения навыков пайки мелких ног :)
FT232RL купить где-нибудь можно, наверное. Может e-mail напишешь, тебе ее и freeduino.ru продаст, хоть и в продаже на сайте их нет, но по факту же наверняка есть в наличии.

...отпиши plz по результатам.

42

(25 ответов, оставленных в Технические вопросы)

Господа, все уже давно придумано за нас :)

Вопрос pinicilin2006: после подключения питания сделайте сброс кнопкой Reset - я на 99,9% уверен, что все заработает.

Пояснение в оригинале на офф. сайте: http://www.arduino.cc/cgi-bin/yabb2/YaB … 25354009/2

Если кратко и по сути, то хитрость такая: чипу W5100 требуется длинный импульс сброса после подачи питания. Если втыкать в USB, то пока драйвера FTDI вместе с виндой чего-то там фурычат, они умудряются плату раза 3 сбросить, и эффект не проявляется.
Если же запитаться от внешнего БП (или снять джампер сброса), то чип W5100 не успевает сброситься.
Решение проще простого - воткнуть конденсатор на 1мкФ (вроде у кого-то и меньше помогло) между выводом Reset и Gnd. Можно электролит - минусом на Gnd, плюсом на Reset.
Запаивать его нельзя, т.к. при таком конденсаторе увеличивается время сброса и платы Arduino, и заливка прошивок перестает работать.

...второй раз на форуме об этом пишу, неплохо было бы ребятам из freeduino.ru в свою документацию это вписать. Накатаю им письмецо в e-mail.

43

(9 ответов, оставленных в Технические вопросы)

Для простейших задач никакие либы не нужны.
Все, что первый микроконтроллер выдаст в порт с помощью Serial.print, второй успешно прочтет из порта с помощью Serial.read и наоборот. Можно ориентироваться на типовой пример. Только джамперы на шилде нужно правильно по инструкции выставить.

44

(11 ответов, оставленных в Технические вопросы)

Какая плата? Если не Nano, то можно аккуратно тонкой отверткой подцепить микроконтроллеры из плат и поменять местами. ...только аккуратно - чтобы резким движением ноги им не отогнуть.
Так можно проверить - жив ли микроконтроллер.
Еще можно нажать Reset, и после отпускания должен моргнуть 13й светодиод - так проверяется, что МК в принципе заводится, кварц живой, и bootloader в нем есть.
Точто такие же моргания 13м светодиодом должны происходить в начале загрузки скетча - это скажет об исправности цепи программного сброса.
Ну, и как тут уже указали обычно такая ошибка бывает из-за неправильно установленного типа платы (168/328), не одетого джампера сброса, неправильно установленного порта.

45

(1 ответов, оставленных в Технические вопросы)

Стандарты все-таки разные, и между собой несовместимые.

46

(1 ответов, оставленных в Технические вопросы)

Непонятно написал :)
Схема на сайте есть - смотри какие ноги у тебя оторвались, и куда они должны идти.
Гнезда конечно можно и не впаивать, если сверху других шилдов одевать не планируется.

47

(2 ответов, оставленных в Технические вопросы)

Для руления сервами МОЖНО использовать аппаратный ШИМ. Но тут нас подстерегают проблемы: таймеров всего 3, и на каждый можно по 2 канала, итого не больше 6 серв. Более того, таймер 0 (кажется он - могу наврать - пишу по памяти с чужой машины) заводится на частоту в 2 раза выше, и не факт, что сервы будут его нормально воспринимать. Можно конечно и таймер перепрограммировать, но тогда некоторые ф-ии (типа millis()) будут неправильно работать.
Поэтому стандартная библиотека Servo начиная с версии 0017 использует другой подход - я как-то глядел ее код - там все весьма грамотно - висит обработчик прерывания таймера, который и дергает нужные ноги.
Библиотека поддерживает до 12 серв на любых каналах - ШИМ не используется.
Вывод - пользуй стандартную библиотеку :)

48

(1 ответов, оставленных в Организационные вопросы)

Интересная железяка - на ARM7 шире можно разбежаться, чем на AVR, но лично мне текущая реализация кажется сыроватой:
1) Выводов у микросхемы много, но они никуда не выведены. Можно к ним руками подпаиваться, но это некрасиво, неудобно, и не всякий подпаяется с таким шагом.
2) Проект еще молодой, софт похоже умеет далеко не все (на сайте пишут, что даже ШИМ и АЦП еще не работает), и соответственно то что умеет, умеет наверняка еще сыровато и с глюками.
3) Про .NET Micro ничего толком не знаю, и ругать ее не буду, более того, склонен считать, что MS наверняка качественный продукт делает, но сам факт того, что это MS несколько настораживает. Боюсь, что первая и лучшая из "корпораций добра" все-равно как-нибудь найдет способ тянуть деньги из законопослушных пользователей, а остальные будут пиратить.

49

(4 ответов, оставленных в Технические вопросы)

Смотрим по схеме со странички описания MotorShield.
Для управления сдвиговым регистром используются ноги 4, 7, 8, 12.
Для реализации ШИМ используются ноги 11, 3, 6, 5  - для двигателей 1, 2, 3, 4 соответственно.
Ноги 9, 10 выведены на разъем Servo, и фактически не задействованы.
Отсюда вывод - свободными остались все аналоговые входы (их же можно использовать как цифровые), ноги 0, 1, 2, 13, ноги 9 и 10 - хочешь для Servo, хочешь под свои цели.
Ну, и если не используются какие-то из четырех каналов управления двигателями, освобождаются соответствующие им ноги из списка 11, 3, 6, 5.

...некоторое неудобство, что никак не отказаться от использования ноги 12, а она участвует в аппаратном SPI, и через нее работает в частности Ethernet Shield (нога 11 тоже SPI) - из-за этого несовместимость MotorShield и EthernetShield. Но, наверняка можно перекидать ноги, и поправить библиотеку AFMotor.

50

(3 ответов, оставленных в Технические вопросы)

500мА по стандарту (http://www.usb.org/developers/usbfaq#pow1). И на большинстве USB версиях Arduino (кроме некоторых сторонних производителей) стоит предохранитель именно на 500мА.