Тизер был воспринят консервативно, но положительно, так что продолжим.
Итак, коробка была распакована, кнопки тыкали и тыкали в отладочный вывод при запуске.
Прохладный! Железка работает. Хотя, с другой стороны, ничего полезного это не делает.
Что нам нужно для начала?
Visual Studio 2010 Express (выпуск C#) Microsoft .Net Micro Framework 4.1 SDK
GHI Electronics SDK (это, конечно, только для этого семейства железа) Я не буду описывать установку IDE, SDK и первоначальную прошивку железа, потому что.с первыми двумя все понятно, но прошивка - дело конкретное и хорошо описано производителем.
Готова ли среда? Идти!
Отказ от ответственности: я впервые держу в руках встроенную платформу.У меня нет опыта разработки (не думаю, что просмотр
hackaday.com и чтение www.wasm.ru достаточно).Есть только смутные идеи.
Но у меня есть опыт написания на C#.
Если вы серьезный специалист по внедрению Asm/C и для вас эта история - суровая трудовая жизнь, то моя статья, вероятно, не для вас.
А пока я напишу небольшой Hello World! Я открываю студию и выбираю новый проект для модуля ChipworkX. Я весело пишу в основном методе
Console.WriteLine("Hello, World!");и тогда я понимаю
Error 1 The name 'Console' does not exist in the current context?, поехали.
Консолью здесь не пахнет. Мы пойдём другим путём.
— «Кран естьЭ» - Есть! - Вот он и будет рисовать картинки.
После недолгих поисков появляется следующая конструкция:
public class Program { private static readonly int LCDHeight = SystemMetrics.ScreenHeight; private static readonly int LCDWidth = SystemMetrics.ScreenWidth; private static Bitmap LCD = new Bitmap(LCDWidth, LCDHeight); public static void Main() { Bitmap habr = Resources.GetBitmap(Resources.BitmapResources.Habr); LCD.Clear(); LCD.DrawRectangle(Colors.White, 0, 0, 0, LCDWidth, LCDHeight, 0, 0, Colors.White, 0, 0, Colors.White, 0, 0, ushort.MaxValue); LCD.DrawImage((LCDWidth - habr.Width) / 2, (LCDHeight - habr.Height) / 2, habr, 0, 0, habr.Width, habr.Height); LCD.Flush(); Thread.Sleep(Timeout.Infinite); } }Ресурс Хабра представляет собой растровое изображение, расположенное в обычном *.
resx Запускаю и вижу.
Работает, рисует картинку, привет Хабру.
Но нам хотелось бы быть более интерактивными.
— Кнопки есть? - Есть! - Мы перехватим прерывания.
Изучив документацию, я обнаружил класс InterruptPort, который позволяет прикрепить обработчик прерываний к контактам GPIO. Немного покурив маны, и был написан код, который при нажатии на центральную кнопку выполняет операцию подъема и опускания пера, при этом мигая светодиодом (класс OutputPort), а курсорные кнопки перемещают перо по экран соответственно.
Код: Pastebin.com/AMF2Th2g
И результат :)
Прошло чуть больше 3 часов.
Пока результат удовлетворительный.
На днях еще что-нибудь напишу.
P.S. На обвязке имеется акселерометр, поэтому продолжение эксперимента будет заключаться в общении с датчиком через I. 2 C и рисуем катящийся шарик на экране :) П.
П.
С.
Литература: Руководство для начинающих по NETMF MicroFrameworkProject.com Теги: #.
net micro framework #.
net micro framework 4.1 #chipworkx #.
NET
-
Покупка Ноутбука С Функциями
19 Oct, 24 -
Дети И Интернет Принимают Трудные Решения
19 Oct, 24 -
Ремонт Компьютеров Бангалор
19 Oct, 24 -
Реконструкция 3D Модели Движущегося Лица
19 Oct, 24 -
Добавляем Bluetooth На Asus Eee Pc 900
19 Oct, 24 -
Подключение Нокиа.
19 Oct, 24