Одноплатные ARM-компьютеры
2011-08-26 12:56 pmЕсли вам надо автоматизировать что-нибудь в доме или в теплице — например, сделать автоматическое открывание окон или включение обогревателя или ламп, где решения о включении/выключении принимаются автоматически на основе температуры/влажности/освещённости — то Arduino [1] и его клоны — это отличное решение.
Однако крошечный контроллер (8-разрядный AVR, 32 килобайта программной памяти, пара килобайт ОЗУ и постоянной памяти) не подходит, если задача усложняется: например, если надо добавить удалённое управление через браузер, или ведение журнала на флешке/SD-карте, или рассылку email/SMS по каким-то "аварийным" событиям. Или автоматическое создание записей в twitter'е.
Здесь начинается совсем другая история: микроархитектура реального времени, которая хороша при считывании данных с сенсоров, особенно тахометров, при подавлении дребезга кнопок и т.п., не подходит для многозадачной среды (например Linux'а); а многозадачная среда не подходит для считывания данных с тахометров и для подавления дребезга переключателей.
Решение заключается в том, чтобы объединить оба подхода — т.е. взять обе платы, контроллер и компьютер, обе архитектуры — реального времени и многозадачную, — и как-то их аппаратно соединить. Например, по шине USB. Или по последовательному порту. Или по шине SPI. Или по шине I2C. Или или или. Контроллер Arduino становится просто "конвертером" USB в связку аналоговых и цифровых линий, а компьютер принимает решения, ведёт журналы и взаимодействует с сетью.
Переходим к примерам. Тут всё сложнее, чем с Arduino. Хотя одноплатные компьютеры на базе ARM-архитектуры, на которых теоретически работает Linux — это не дефицит[2], однако надо различать два состояния: "Linux на плате, в принципе, запустить можно" и "настроенный и работающий Linux с приложениями входит в поставку платы". Потому что вряд-ли средний do-it-yourselfer захочет провести пару месяцев, играя в игру Cross Linux from Scratch — т.е. собирая и настраивая ядро и кросс-компилятор и приложения под этот чудо-компьютер. (C неопределённым конечным исходом.)
Так вот, одноплатных ARM-компьютеров с предустановленным Линуксом, которые могут работать совместно с Arduino, не так уж и много. Вот что я нашёл:
http://www.embeddedarm.com/products/arm-sbc.php
в т.ч. http://www.embeddedarm.com/products/board-detail.php?product=TS-7553 (около $170 с софтом и всем прочим)
http://beagleboard.org/hardware-xM (аналогично)
http://pandaboard.org/content/resources/references (чуть круче и чуть дороже)
http://www.adafruit.com/products/278 (вдвое дешевле, но без Ethernet)
ещё можно купить вот такой серийно выпускаемый (выпускавшийся) девайс и повыбрасывать из него всё лишнее
http://www.ebay.com/itm/400238049812
moar http://www.pogoplug.com/
ещё теоретически должна появиться к концу года
http://www.raspberrypi.org/?p=78 ($35 — почти даром, у них некоммерческая организация по созданию дешёвого компьютера для голодающих негров Африки, соответственно они не платят налоги, broadcom даёт им процессоры почти бесплатно и у них должна быть крупносерийность, теоретически)
А вот что нашло меня само. Вот уж действительно in Soviet Russia, board finds you.
http://rascalmicro.com/
http://pingswept.org/
Пообщались с автором по email, вполне вменяемый человек. Хочет примерно ~$150. Учитывая мелкосерийность производства, это на грани себестоимости.
Какие ещё будут идеи у уважаемого сообщества?
Сноски:
[1] http://ru.wikipedia.org/wiki/Arduino
http://arduino.cc/
[2] http://microcontrollershop.com/default.php?cPath=154_170_272&page=1&sort=4a
Однако крошечный контроллер (8-разрядный AVR, 32 килобайта программной памяти, пара килобайт ОЗУ и постоянной памяти) не подходит, если задача усложняется: например, если надо добавить удалённое управление через браузер, или ведение журнала на флешке/SD-карте, или рассылку email/SMS по каким-то "аварийным" событиям. Или автоматическое создание записей в twitter'е.
Здесь начинается совсем другая история: микроархитектура реального времени, которая хороша при считывании данных с сенсоров, особенно тахометров, при подавлении дребезга кнопок и т.п., не подходит для многозадачной среды (например Linux'а); а многозадачная среда не подходит для считывания данных с тахометров и для подавления дребезга переключателей.
Решение заключается в том, чтобы объединить оба подхода — т.е. взять обе платы, контроллер и компьютер, обе архитектуры — реального времени и многозадачную, — и как-то их аппаратно соединить. Например, по шине USB. Или по последовательному порту. Или по шине SPI. Или по шине I2C. Или или или. Контроллер Arduino становится просто "конвертером" USB в связку аналоговых и цифровых линий, а компьютер принимает решения, ведёт журналы и взаимодействует с сетью.
Переходим к примерам. Тут всё сложнее, чем с Arduino. Хотя одноплатные компьютеры на базе ARM-архитектуры, на которых теоретически работает Linux — это не дефицит[2], однако надо различать два состояния: "Linux на плате, в принципе, запустить можно" и "настроенный и работающий Linux с приложениями входит в поставку платы". Потому что вряд-ли средний do-it-yourselfer захочет провести пару месяцев, играя в игру Cross Linux from Scratch — т.е. собирая и настраивая ядро и кросс-компилятор и приложения под этот чудо-компьютер. (C неопределённым конечным исходом.)
Так вот, одноплатных ARM-компьютеров с предустановленным Линуксом, которые могут работать совместно с Arduino, не так уж и много. Вот что я нашёл:
http://www.embeddedarm.com/products/arm-sbc.php
в т.ч. http://www.embeddedarm.com/products/board-detail.php?product=TS-7553 (около $170 с софтом и всем прочим)
http://beagleboard.org/hardware-xM (аналогично)
http://pandaboard.org/content/resources/references (чуть круче и чуть дороже)
http://www.adafruit.com/products/278 (вдвое дешевле, но без Ethernet)
ещё можно купить вот такой серийно выпускаемый (выпускавшийся) девайс и повыбрасывать из него всё лишнее
http://www.ebay.com/itm/400238049812
moar http://www.pogoplug.com/
ещё теоретически должна появиться к концу года
http://www.raspberrypi.org/?p=78 ($35 — почти даром, у них некоммерческая организация по созданию дешёвого компьютера для голодающих негров Африки, соответственно они не платят налоги, broadcom даёт им процессоры почти бесплатно и у них должна быть крупносерийность, теоретически)
А вот что нашло меня само. Вот уж действительно in Soviet Russia, board finds you.
http://rascalmicro.com/
http://pingswept.org/
Пообщались с автором по email, вполне вменяемый человек. Хочет примерно ~$150. Учитывая мелкосерийность производства, это на грани себестоимости.
Какие ещё будут идеи у уважаемого сообщества?
Сноски:
[1] http://ru.wikipedia.org/wiki/Arduino
http://arduino.cc/
[2] http://microcontrollershop.com/default.php?cPath=154_170_272&page=1&sort=4a