Завтра, 17 октября Ciklum Киев приглашает всех желающих посетить открытый Speakers’ Corner на тему “Программирование микроконтроллеров в домашних условиях и о жизни в Дублине”, подготовленный Владимиром Пузановым, который в настоящее время является сотрудником Google (Дублин).
Читать полностью »
Рубрика «embedded» - 11
Speakers’ Corner “Программирование микроконтроллеров в домашних условиях и о жизни в Дублине” от Владимира Пузанова (17.10.2013)
2013-10-16 в 10:56, admin, рубрики: embedded, embedded software development, smart house, Блог компании Ciklum, метки: embedded, embedded software development, smart houseКак мы делали Wiren Board
2013-10-14 в 18:35, admin, рубрики: diy или сделай сам, embedded, embedded linux, NFC, OLinuXino, Raspberry Pi, RFID, SoC, wiren board, wirenboard, Железо, одноплатный компьютер, разработка, метки: embedded, embedded linux, NFC, OLinuXino, Raspberry Pi, RFID, SoC, wiren board, wirenboard, АРМ, одноплатный компьютерВсем привет! Последние 9 месяцев мы разрабатывали Wiren Board — компактный индустриальный компьютер с множеством встроенных интерфейсов (Wi-Fi, GPRS, GPS, NFC, Ethernet и т.д.) Мы уже писали о нём, и получили кучу отзывов и пожеланий. В итоге в новую версию было внесено много изменений, и эта статья про самые значительные из них.
По сравнению с апрельским прототипом на плате появились 2 USB-host, интерфейс RS-485 и разъём с 8 GPIO. Кроме этого мы сделали новую схему питания, поддерживающую входные напряжения от 5 до 22 вольт, Passive PoE и подключение Li-Pol аккумулятора, добавили управление низковольтной нагрузкой и аналоговые входы на клеммниках.
Как мы это делали, с какими трудностями столкнулись и что получилось в итоге — читайте в нашей статье.
Читать полностью »
Первый Embedded Meetup в Санкт-Петербурге
2013-08-06 в 13:40, admin, рубрики: embedded, event, meetup, Блог компании IT-Доминанта, Программинг микроконтроллеров, метки: embedded, event, meetupВ четверг, 12 сентября, при участии портала Айти-Событие.рф, в Петербурге стартует новый проект — Embedded Meetup.
Embedded Meetup — это регулярные встречи профессиональных разработчиков встраиваемых систем в неформальной обстановке. Основными составляющими являются доклады и networking.
Читать полностью »
Сборка упаковщика Cmake-ом или тренировка на кошечках
2013-05-06 в 12:33, admin, рубрики: embedded, lz4, lz77, open source, Программирование, разработка, метки: embedded, lz4, lz77, Программирование— Вы не скажете сколько сейчас градусов ниже нуля?
— Чего чего?
— Ну я …. тренируюсь.
— Тренируйся лучше..(смотрит на Моргунова) … на кошках.
В статье описывается опыт использования CMAKE и LZ4 c некоторым уклоном на embedded системы. Читать полностью »
Wiren Board — встраиваемый компьютер с Wi-Fi, GPRS, GPS, NFC и Ethernet из коробки
2013-04-11 в 14:06, admin, рубрики: diy или сделай сам, embedded, embedded linux, embedded systems, NFC, OLinuXino, Raspberry Pi, RFID, SoC, wiren board, Железо, одноплатный компьютер, разработка, метки: embedded, embedded linux, embedded systems, NFC, OLinuXino, Raspberry Pi, RFID, SoC, wiren board, АРМ, одноплатный компьютер
TL;DR (Abstract)
Мы сделали маленький «одноплатный» встраиваемый компьютер с хорошим набором периферии, в основном беспроводной (GSM/GPRS, NFC, Wi-Fi, GPS, Ethernet, etc). Рабочее название — Wiren Board (от Wireless Enabled)
Предполагается, что использоваться он будет для всяческой автоматизации — то есть в качестве «мозга» для оборудования. Если вы хотите сделать умное устройство, не разрабатывая целиком собственное сложное железо, то это для вас. Впрочем, для DIY наш компьютер тоже весьма полезен, и об этом направлении мы не забыли при разработке. Если понадобится дополнить чем-то специфическим — функциональность можно расширять готовыми модулями. Что ещё приятно, стоимость компьютера мы планируем сделать всего около $100.
Первая версия уже готова, открыт предзаказ.
Что привело нас к разработке встраиваемого компьютера, через какие этапы мы прошли, и что в итоге получилось — читайте дальше.
Читать полностью »
Самодельный бот с камерой и управлением по wifi
2013-04-11 в 7:58, admin, рубрики: diy или сделай сам, embedded, linux, Программинг микроконтроллеров, робототехника, сделай сам, метки: embedded, linux, робототехника, сделай самПрочитав опубликованную статью Однажды фанера, atmega, да малина, я решил поделиться своей поделкой, которая доступна (не сложна) для повторения.
При создании бота ставились следующие задачи:
- Управление ботом по беспроводной сети
- Наличие онлайн камеры
- Удобство программирования
Бортовой компьютер
Для бортового компьютера был выбрал двухъядерный андроидный миникомпьютер UG-802, который имелся под рукой. В качестве операционной системы — Linaro, полноценный линукс дистрибутив, основанный на Ubuntu.
Автономная кроссплатформенная монолитная программа на Java
2013-04-10 в 15:15, admin, рубрики: Avian, c++, cross-platform, embedded, java, jni, jvm, makefile, Песочница, метки: Avian, c++, cross-platform, embedded, java, jni, jvm, makefileЯ люблю desktop-приложения. Признаваться в этом нынче, похоже, стыднее, чем в связях с иностранной разведкой, но это так. Нет, это не значит, что я не люблю интернет-технологии. Более того, некоторые я не только уважаю, а даже более-менее знаю. Но, тем не менее, я скучаю по тем временам, когда программа писалась на одном компьютере, потом компилировалась и запускалась на других, разных компьютерах. Тогда везде (почти) была одна система — Windows с одной и той же API, почти не было проблем совместимости на уровне приложений, никто не материл разработчиков браузеров — все берегли нервы на разработчиков WinAPI, которые умудрялись создавать конфликты даже внутри нее одной. Но это я, конечно, иронизирую, а если серьезно — иногда и сейчас хочется написать просто desktop-приложение, да так, чтобы работало оно на всех популярных системах. Трудно? Если подумать и покопать, то не очень.
Еще я люблю языки высокого уровня с аккуратной архитектурой и строгой типизацией. Это — Java и C#. Оба они предоставляют разработчику множество преимуществ по сравнению с C++, оба избавляют от ряда забот. Чем приходится платить? Тем, что таскаешь за собой тяжелую колоду, которая называется Oracle JVM, .NET или mono. Все три колоды весят сотни мегабайт и лицензию имеют такую, что каждый пользователь вынужден качать эту штуку сам, не путая при этом разрядность своего компьютера, а главное — программа на Java не может быть совместима со всеми версиями JVM разом, не так ли? И вот — мы приходим к тому, что просто скинуть программку другу (или миллиону друзей) и не заботиться о том, что она у него не запустится, не выходит. Приходится делать хитрые сетапы, вбивать костыли, и это я еще не упомянул .NET — однажды я видел у друга сразу 3 установленных версии, причем все три были нужны разным приложениям…
Стоп! А давайте напишем программу на Java, но так, чтобы она не требовала установки на машину какой-либо JVM, чтобы одним касанием собиралась под Windows, Linux и OS X и чтобы при этом занимала совсем чуть-чуть; так, чтобы никто даже не понял, что она написана, скажем, не на C. Невозможно? Совсем наоборот! (И нет, я имею в виду не gcj, который лишает Java всех ее прелестей. Рефлексия будет работать и даже сторонние jar вы сможете запускать).
Читать полностью »
Путешествие исключений между C++ и Python или «Туда и обратно»
2013-02-17 в 13:37, admin, рубрики: boost.python, c++, c++11, embedded, exception, python, python3, translation, wrapper, гибрид, исключение, модуль, Программирование, скрипт, метки: boost.python, c++, c++11, embedded, exception, python, python3, translation, wrapper, гибрид, исключение, модуль, скрипт В этой главе сказа про дружбу C++ и Python будет на удивление мало использования Boost.Python. Передача исключений туда и обратно является по сути слабым местом данной библиотеки. Будем обходиться родным API языка Python, а где это возможно использовать Boost.Python.
Тем не менее Boost.Python создаёт окружение, в котором исключения из C++ попадают в Python в виде стандартного RuntimeError, а обратно из Python генерируется исключение C++ типа error_already_set, что означает «тебе что-то прилетело, сходи сам почитай что там». И вот здесь нам как раз будет не лишним использовать C-API языка Python, чтобы вычитать необходимую информацию об исключении и преобразовать в соответствующий класс сообразно логике приложения.
К чему такие сложности? — Дело в том, что в Python, в отличие от C++, кроме текста исключения и его типа приходит ещё и traceback — стек до места возникновения исключения. Давайте немного расширим стандартный std::exception дополнительным параметром для этого stacktrace, а заодно напишем конвертер исключений туда и обратно из классов C++ в классы исключений Python.
Читать полностью »
Конвертация типов в Boost.Python. Делаем преобразование между привычными типами C++ и Python
2013-02-10 в 8:24, admin, рубрики: boost.python, c++, c++11, class, converter, embedded, python, python3, wrapper, гибрид, класс, конвертер, модуль, Программирование, скрипт, метки: boost.python, c++, c++11, class, converter, embedded, python, python3, wrapper, гибрид, класс, конвертер, модуль, скрипт Данная статья не является продолжением повествования об обёртках C++ API. Никаких обёрток сегодня не будет. Хотя по логике это третья часть данного повествования.
Сегодня будет море крови, расчленение существующих типов и магическое превращение их в привычные аналоги в другом языке.
Речь не пойдёт о существующей конвертации между строками, нет, мы напишем свои конвертеры.
Мы превратим привычный datetime.datetime питона в boost::posix_time::ptime библиотеки Boost и обратно, да чёрт с ним, мы вообще всю библиотеку datetime превратим в бустовые типы! А чтобы не было скучно, принесём в жертву встроенный класс массива байт Python 3.x, для него как раз ещё нет конвертера в Boost.Python, а потом зверски используем конвертацию массива байт в новом конвертере питоновского uuid.UUID в boost::uuids::uuid. Да, конвертер можно использовать в конвертере!
Жаждешь крови, Колизей?!..
Читать полностью »
Объединяя C++ и Python. Тонкости Boost.Python. Часть вторая
2013-02-06 в 11:42, admin, рубрики: boost.python, c++, c++11, class, embedded, python, python3, wrapper, гибрид, класс, модуль, обертка, Программирование, скрипт, метки: boost.python, c++, c++11, class, embedded, python, python3, wrapper, гибрид, класс, модуль, обертка, скрипт Данная статья является продолжением первой части.
Продолжаем мучить Boost.Python. В этот раз настала очередь класса, который нельзя ни создать, ни скопировать.
Обернём обычные обычную сишную структуру с необычным конструктором.
И поработаем с возвращением ссылки на поле объекта C++, так чтобы сборщик мусора Python его не удалил ненароком. Ну и наоборот, сделаем альтернативный вариант, чтобы Python прибрал мусор после удаления того, что ему отдали на хранение.
Поехали…
Читать полностью »