16.07.2012

Launchpad и ArdhuinoIDE

Вчера из сообщения в блоге Hack-a-Day с интересом узнал о проекте Energia - ArduinoIDE для работы... с Launchpad!



Конечно, не все пока там гладко - на текущий момент насчитывается как минимум 18 проблем, в основном народ просит прикрутить библиотеки и починить Linux-дистро (его, кстати, можно временно скачать по ссылке в описании проблемы).

Тем не менее, с дистрибутивом под Windows все ОК, и его вполне можно опробовать в работе.


Технически, Energia - это форк на github-е от ArduinoIDE 1.0, поэтому выглядит всё более, чем привычно, разве что в красных тонах.


Как видите - в качестве типов плат сразу перечисляются совместимые с LaunchPad MSP, а в качестве программатора - единственный rf2500.

Все примеры на месте, но из библиотек адаптировано всего три:

  • SPI;
  • Wire;
  • TimerSerial
Последняя, впрочем - это вариант HardwareSerial, которая и так уже входит в ядро Arduino для ATMEL.

Скетчи, разумеется, пишутся по-прежнему на Wiring. Синтаксис за пределами Wiring тоже остался вполне похож - используется msp430-gcc 4.6.3, с самыми последними патчами. Карту распределения пинов можно найти в единственном файле-варианте: 

                      +-\/-+
               VCC   1|    |20  GND
         (A0)  P1.0  2|    |19  XIN
         (A1)  P1.1  3|    |18  XOUT
         (A2)  P1.2  4|    |17  TEST
         (A3)  P1.3  5|    |16  RST#
         (A4)  P1.4  6|    |15  P1.7  (A7) (SCL) (MISO) depends on chip
         (A5)  P1.5  7|    |14  P1.6  (A6) (SDA) (MOSI)
               P2.0  8|    |13  P2.5
               P2.1  9|    |12  P2.4
               P2.2 10|    |11  P2.3
                      +----+

Таким образом, чтобы, например, установить высокий уровень на пине P1.1, можно написать digitalWrite(P1_1, HIGH). Можно обращаться к пинам и по номерам, в следующем соответствии с символическими:


Символическое имяНомер пина
P1_0, RED_LED2
P1_13
P1_24
P1_3, PUSH25
P1_46
P1_57
P2_08
P2_19
P2_2, TEMPSENSOR10
P2_311
P2_412
P2_513
P1_6, GREEN_LED14
P1_515

Тут стоит сразу учесть, что P2_X доступны только для контроллеров в 20-контактном исполнении, и для 14-контактных они будут отсутствовать, создавая разрыв в нумерации. С другой стороны, позиционность будет сохранена - т.е. при замене 14-контактного на 20-контактный в скетче не понадобится менять ровным счетом ничего. 

Для избранных пинов доступен аппаратный ШИМ. Пины 3, 4, 14 доступны всегда, для МК в 20-контактном корпусе добавляются все пины P2_X. Есть и аналоговые пины, так что если на кристалле есть АЦП, будет работать analogRead().

Интересно? ;) Если да, то изучите wiki, закажите себе LaunchPad и дерзайте!

Я практически сразу обратил внимание на то, что реальная задержка, создаваемая delay() оказывается в два раза короче, чем указано. Возможно, это как-то связано с тактовой частотой - судя по boards.txt скетчи компилируются в расчете на 16МГц.

Так или иначе, уверен - Роберт Весселс (автор проекта) будет признателен за любую помощь. Если вы находите LaunchPad более привлекательным - помогите ему с адаптацией ArduinoIDE: уверен, что тогда число вовлеченного народа должно значительно возрасти ;) 

04.07.2012

ATmegaU R2


Плата ATmegaU,  выпущенная в свое время исключительно ради эксперимента и разошедшаяся почти сразу, возвращается во второй ревизии R2

  1. Теперь она поставляется только с MCU ATmega16u2 - для тех, кто пишет собственные прошивки это очень существенно - в предыдущем варианте ATmega8u2 свободной памяти было мало, и комбинировать прошивку USB-TTL еще с чем-то было тяжело :(
  2. Добавлен отключаемый резистор 10К на линии DTR, притягивающий ее к GND. Сделано по аналогии с Freeduino ONE / Arduino Uno R3: освобождает от необходимости сначала замыкать DTR на землю, и, не отпуская, нажимать сброс. Теперь сразу переходим в режим DFU единственным нажатием на сброс. При желании резистор отключается (solder-джампер с противоположной стороны).
См. также описание ATmegaU в магазине.




02.07.2012

ADK 2012

Недавно в официальном блоге Arduino появилось сообщение о том, что на очередной конференции Google IO была представлена новая плата ADK 2012, уже базирующаяся на Arduino Due:


Официальный выход собственно Arduino Due запланирован на этот год, вместе с новой  ArduinoIDE, которая будет способна генерировать код под ARM. Пока что можно полюбоваться на фото ограниченного выпуска для разработчиков:

Фото в этом посте лицензированы под CC BY-NC-SA.