Энергия для Лаунчпада

Буквально недавно сеть облетела новость, что для LaunchPad 430 от Texas Instruments выпущена новая IDE, аналогичная Arduino. Я очень заинтересовался этим, решил сам во всем разобраться, так как являюсь обладателем сего девайсика. Приобрел его еще зимой, но вот пока он пылился на полке без дела. По разным причинам. Одна из причин — отсутствие желания изучать новую среду программирования. А тут бац — и все знакомое. Но обо всем по порядку…

Отладочную плату Launchpad 430 я приобрел на сайте Texas Instruments. Стоила она на тот момент (это в начале 2012 года было) 4.3 американских буказоида (может и сейчас столько же стоит). Доставка осуществлялась международной службой Fedex, причем за счет продавца, т.е. для меня бесплатно. Ну что ж, грамотная политика в деле продвижения своих микроконтроллеров. Отладочные средства дешевые, контроллеры дешевые, средства разработки бесплатные (вру, с некоторыми ограничениями, Code Composer, помоему ограничение на код 16 кб). Это не может не вызвать интереса у радиолюбителей.

Посылочка долетела быстро, за 3 дня после оплаты. Я даже не мог сообразить сразу, что за хрень мне курьер рассказывает о каком-то там заказе «из-за бугра», тыкая в меня большим пакетом с надписью Fedex. Но потом сообразил.

Большая коробка от Fedex (с LaunchPad 430)

Большая коробка от Fedex (с LaunchPad 430)

В большой коробке находилась коробочка поменьше. Прям как матрешка…

Коробка с LaunchPad 430

Коробка с LaunchPad 430

Все упаковано компактно, не болтается, не гремит.

Содержимое коробки с LaunchPad 430

Содержимое коробки с LaunchPad 430

Все детальки упакованы в отдельные антистатические пакеты.

Упаковка деталей LaunchPad 430

Упаковка деталей LaunchPad 430

А вот и весь комплект: сама отладочная плата, два!!! микроконтроллера, часовой кварц (какойто канолевый, я в продаже таких не видел), две панельки PBS, USB-шнур и буклет-описание (ручка в комплект не входит, лежит для оценки масштаба… 🙂 ).

Комплект LaunchPad 430

Комплект LaunchPad 430

Ну да ладно, это лирика. Так вот, IDE…

IDE Energia splash

IDE для Лаунчпада называется Energia, и является форком от IDE Arduino. Она полностью повторяет интерфейс Ардуины (только в красно-желтых тонах). Принцип программирования тот же. Программы пишутся на Wiring (подкласс С++). Используется свободно распространяемый MSPGCC Toolchain.  Компилируются все и загружаются в контроллер нажатием одной кнопки. Ну все как на Ардуине… Но есть одно но — библиотеки.

Опенсорсный проект Energia еще очень молодой проект, не все библиотеки от Ардуины адаптированы к MSP430. На данный момент официально доступны и работают три библиотеки: SPI, TimerSerial и Wire. Одна из самых популярных библиотек — LiquidCrystal — пока не адаптирована, и не работает. Но работа идет, популярность растет, и я думаю, дело не за горами…

Еще одно неудобство, это несовместимость с шилдами от Arduino. Но для Launchpad разработано много своих шилдов-модулей. Можно ознакомиться в блоге у TI и у 43Oh.

В свою очередь, я после того, как помигал светодиодиками, думал, что бы мне такое замутить. На глаза попался модуль ультразвукового сенсора HC-SR04 (он у меня по-другому называется, но не суть). Немножко погуглив, нашел Ардуиновскую библиотеку для этого модуля на Robocraft под названием Ultrasonic. Чуток ее покоцал поправил, что б работала в Энергии.

IDE Energia

IDE Energia

Простейший скетч для демонстрации библиотеки:

//
// Ultrasonic HC-SR04 sensor test
// Get distance and write to UART

#include "Ultrasonic.h"

// sensor connected to:
// Trig - 12, Echo - 13
Ultrasonic ultrasonic(12, 13);

void setup()
{
Serial.begin(9600); // start the serial port
}

void loop()
{
float dist_cm = ultrasonic.Ranging(CM); // get distance
Serial.println(dist_cm); // print the distance

delay(100); // arbitary wait time.
}

Подключил пины, откомпилировал и прошил контроллер. Заработало все сразу же. Доволен… 🙂 🙂 🙂 Потом, может быть, напишу про это.

Кстати, в заголовочном файле pins_energia.h определяется соответствие пинов MSP430 и Ардуины. Вот кусочек из него:

//                +-\/-+
//         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/MOSI) depends on chip"
//   (A5)  P1.5  7|    |14  P1.6 (A6)(SDA)"(MOSI/MISO) depends on chip"
//         P2.0  8|    |13  P2.5
//         P2.1  9|    |12  P2.4
//         P2.2 10|    |11  P2.3
//                +----+
//

Так что, Ардуиноманы — очень прикольная штукенция для вас.

Полезные ссылки
Energia на GitHub — начинать отсюда
Форум поддержки — все вопросы сюда
Wiki — полезно почитать
MSP430 LaunchPad (MSP-EXP430G2) — обзор LaunchPad MSP430 на сайте TI
Скачать
Ultrasonic — библиотека сенсора HC-SR04
(распаковать в hardware\msp430\libraries\)

9 комментариев на “Энергия для Лаунчпада”

  1. не могу понять чего она хочет 
    tilib: MSP430_Initialize: Could not find MSP-FET430UIF on specified COM port (error = 57)
    tilib: device initialization failed

    порт что ли занят ? 

    • Говорит, что на указанном порту нет устройства MSP-FET430UIF. Попробуй указать в настройках правильный порт.

  2. А можно поподробнее о том как править либы для Energia юА то вот хочу от нокии 3310 и 5110 экран прикрутить,в ардуино то есть либы ,а для ланчпада не видел
     

    • Ну, тут в двух словах и не описать. По разному бывает. Какие-то либы правятся простой заменой путей к дополнительным файлам и заменой пинов Ардуины на соответствующие для MSP. Некоторые приходится полностью переписывать с нуля, так как архитектура MSP и AVR отличаются.

  3. И еще вопрос а с прерываниями вопрос решился?ибо код от ардуино с прерываниями не работает на ланчпаде в енергия

  4. А как обстоят дела с питанием сенсора? Если питать его отдельно, а триггер и эхо на прямую к пинам мк подключить работать будет? Или нужно выравнивать уровни с 3.3В до 5В ?

    • Питание можно брать с Ардуины, можно отдельно, главное земли объедините. Специального согласования не нужно, модуль толерантен к 5V и 3V3 уровням.

      • Имею ввиду, ничего с ланчпадом не случиться? ведь сенсор на эхо-пин вернёт единицу, т.е. 5В, а мк работает с напряжением до 3.6В.

Добавить комментарий

Поля, помеченные знаком звездочка (*) обязательны для заполнения.