Как сделать сердце Железного Человека своими руками (40 фото). Одноплатные компьютеры своими руками


Разработка одноплатного компьютера с нуля. Пособие для начинающих / Хабр

Я занимаюсь разработкой электроники. Начал сравнительно недавно — когда микроконтроллеры от Atmel стали известны благодаря платформе Arduino. Тогда меня это не особо заинтересовало — на тот момент я уже программировал их из AVR Studio, читал истории DiHalt и мечтал о разработке собственного автопилота. 3 курс, Новосибирск, НГУ — это было увлекательно…

Но я с интересом наблюдаю за развитием и ростом индустрии встраиваемых и портативных систем: появление RaspberryPI, многообразия SoC и плат на их основах, системы умного дома, интернет вещей, смартфоны с растущей вычислительной мощностью — все это фантастический простор для деятельности. Результатом наблюдения стало желание поучаствовать: попробовать себя в разработке простой платформы, с целью изучения и накопления опыта. Проекты на микроконтроллерах мне порядком поднадоели — подводных граблей очень мало, ошибки допустить достаточно сложно, все запускается «из коробки» — ни гибкости, ни сложности. С системами на кристалле — SoC (System on Chip) до этого я дела особо не имел — разве что ядро собрать, да Debian запустить. Поэтому я решил запустить простенький SoC, а именно пройти путь от схемы до рабочего Linux на борту. Да, в последующем я буду не совсем корректно называть SoC процессором, надеюсь, никого это не смутит.

Выбор у меня был небольшой, и определялся сложностью изготовления платы — только выводные корпуса, никаких BGA, максимум четырехслойный дизайн, а все потому, что я собирался прилепить свою платку к одному сравнительно простому рабочему проекту. Еще это означало, что в последующем я получу с производства уже спаянную плату, готовую к экспериментам.

Проектирование

В результате обзора доступных SoC я остановил свой выбор на iMX233 от Freescale. Выводной корпус, 454 МГц, контроллер DDR памяти, интерфейс к карте памяти SD/MMC, отладочный порт — отличный набор новичка. В придачу — композитный видеовыход («тюльпан»), аудио вход/выход, SPI, I2C, UART, USB, LCD. Будет чем заняться на досуге.

После чтения статей о платформе BlackSwift в потенциальных кандидатах появился Qualcom Atheros AR9331, но смутило отсутствие подробной информации в открытом доступе. Жаль, занимательный кандидат.

Меня интересовала минимальная конфигурация, достаточная, чтобы запустить на ней Linux. Соответственно к процессору была выбрана микросхема памяти на 32 МБ (256 МБит) (по тому простому принципу, что она у нас была в наличии). На тот момент я еще не вычитал на десятках форумов о существовании сложностей с этим процессором, только изучил рекомендации производителя по трассировке и, довольный как слон, делал все по рекомендациям.

Вообще, процессор (или SoC, так правильнее) интереснее с той точки зрения, что при его запуске значительно дороже выходят ошибки проектирования. Например, некорректная разводка DDR памяти может выразиться как минимум в последующих ошибках чтения-записи, как максимум — в невозможности инициализации памяти вообще. Цепи питания процессора — ошибка сожжет процессор при первом включении, интерфейсы — потеря периферии на этих интерфейсах, и так далее.

Поэтому начинать проще с изучения готовых отладочных комплектов, например официальной платы и ее документации. Платы у меня не было, но документация доступна всем желающим. В придачу полезно изучить все инструкции по применению, почитать форумы (это уже жизненный опыт :)) — в общем, изучить всю доступную информацию о жертве. После изучения начинается механическая работа — нарисовать схему, а затем и плату. Четыре слоя, минимальная ширина проводника 0.2мм, зазора 0.2мм, отверстия 0.3мм.

Подключил все, что можно подключить безболезненно – аудио входы и выходы, вывел видеосигнал на контактные площадки, всякую простую периферию — микросхему памяти с I2C интерфейсом, еще одну с SPI, держатель для uSD карты, конфигурационные перемычки, обязательно отладочный порт, и потом на свободное место все что осталось. Плата получилась небольшая — 70х40мм, с минимумом компонентов. Для NAND памяти места не осталось, но я планировал запускаться с SD/MMC. Работы на одну ночь.

Получилось страшненько. Слева направо: верхний слой, два внутренних, нижний. Процессор на верхнем слое, память на нижнем; на каждый сигнальный проводник DDR интерфейса по одному переходному отверстию; длины проводников выровнены, их средняя длина в пределах рекомендуемой, полигон земли между процессором и памятью почти без разрывов, и т.д.

Итак, плата спроектирована, документация на нее оформлена, все это передано в производство, и можно начинать готовиться к поступлению плат с производства. Начинаю изучать материалы на предмет нюансов запуска процессора, и натыкаюсь на стостраничные форумы, с описанием проблем и сложностей в запуске.

Становится не по себе — проблемы у людей вплоть до третьей переработки платы, процессор не работает с некоторыми модулями памяти, встроенная подсистема питания очень нестабильна, процессор очень придирчив к питанию, errata (документ, описывающий ошибки на процессор) на многие проблемы отвечает «ничем помочь не можем», софт в открытом доступе кривой, даже внутренний загрузчик нуждается в патче от производителя, в общем, проблемы намечаются серьезные. Выкачиваю BSP (board support package) от производителя — там каша из сотен скриптов и пакетов. Веселье начинается.

Спустя месяц приходят платы, и я начинаю эксперименты. Что-то в уголке подсознания всплывает, связанное с проблемами у монтажного производства.

Отступление

Эта система на кристалле приглянулась мне еще и тем, что несет на борту все необходимые для ее жизни регуляторы питания — как DC/DC (импульсные) так и LDO (линейные). В том числе и зарядное устройство для Li-Pol аккумулятора. Заводишь на SoC 5 вольт от USB — получаешь 1V8, 2V5, 3V3 и 4V2 на выходе. Что-то достается самому процессору, что-то уходит на память, можно аккумулятор подзарядить. Удобно. Можно сжечь все и сразу :)

SoC bringup

Прочь сомнения, подать питание! И никаких признаков жизни. Это хорошо, хорошо потому, что без дыма. Подпаиваю кнопку «Power», смотрю осциллографом на ножку кварцевого резонатора, запускаю — есть генерация на кварце. 24 МГц, страшненькие, но есть. Щуп осциллографа с делителем, пассивный, спишем на него. «Дедушка старый, ему все равно»

Начинается самое интересное — bringup. Как этот термин лаконично перевести на русский в данном контексте? Попытка вдохнуть жизнь? Не звучит.

В процессоре есть свой первоначальный загрузчик, который при включении проверяет условия старта — откуда и что грузить. Он же отвечает на запросы по шине USB. Его можно сконфигурировать перемычками на плате, или однократно прошиваемой OTP-памятью. Если перемычки перепаять я еще смогу, то перепрошить неперепрошиваемое вряд ли. Распаиваю перемычки, подаю питание, и о чудо — с отладочного порта приходят первые байты данных! Это значит, что процессор доволен питанием, самые базовые его узлы запустились, и можно что-то делать дальше. Что значат эти коды, я узнал из кривоватого заголовочного файла, в виде PDF документа, с невнятными пояснениям, пропусками и за авторством huashan. Все ясно.

Хорошо, чтобы максимально оперативно работать с платой, оптимальнее будет подключить ее по проводам, и загружать исполняемый код по нажатию одной кнопки. Ок, подключаю по USB к компу. И ничего.

Никаких транзакций по шине USB, даже генерации на кварце. Плохо. Начинаю думать, изучаю плату, вспоминаю все тонкие моменты. Например, на этой плате рядом с процессором я поставил свой DC/DC преобразователь, с расчетом на питание какой-либо потребляющей нагрузки, подключил его к шине питания USB 5V, и ничем не нагрузил. Промеряю осциллографом — на входе 5 вольт, на выходе 5 вольт. Всплывают слова с производства, что-то по поводу резистора. Да, так и есть — в цепи обратной связи нет резистора. (- Капитан, капитан, якорь всплыл! — Хммм, скверная примета…)

Паяю резистор, и о чудо! Плата определяется по USB! До этого я смотрел на уровень напряжения шины питания — 5.1 вольт, никаких существенных помех, никаких пульсаций. Но процессору виднее. После запайки резистора заработал и DC/DC источник, пока без нагрузки, но, по крайней мере, перестал мешать процессору. Хорошо, что дальше.

Дальше надо разобраться с первоначальным запуском процессора и проверить работу DDR. Начинаю копать, и в процессе поисков собираю набор утилит и «бутлетов» — исходных кодов, позволяющих проинициализировать подсистемы питания, связку DDR контроллер-память и подготовить систему к дальнейшей работе. То, что надо — максимально простые исходники, с обилием индусского кода, но главное, они работают.

Утилиты позволяют загрузить эти бутлеты в память процессора и запустить их на исполнение. Все так сложно, потому что после включения встроенный загрузчик ничего не знает про внешнюю оперативную память, а поскольку нет памяти – некуда загружать, к примеру, ядро Linux. Получается цепочка из нескольких звеньев, где на каждом этапе выполняется незначительный шаг вперед.

Отступление Для подключения к последовательным портам, для реализации всяких внутрисхемных JTAG отладчиков, программаторов и аналогичных задач в другом проекте был реализован USB-UART мост на FT2232. Двухслойный дизайн, выведены оба порта на гребенку с шагом 2 мм. В этом проекте другая история – USB-UART мост + платка сбора данных размещается в центре основной платы, и конструктив прибора предполагает ее удаление.

Т.е. в прибор плата без дырки в центре встать просто не сможет. Мне показалось нерациональным выбрасывать текстолит, и я внес свои творческие правки – собственно вышеописанный мост USB-UART(поменьше), и контроллер (MSP430FR5738) с датчиком тока, напряжения, электромеханическим реле, источником тока и термометром. Вся эта «горячая» часть гальванически изолирована от интерфейса RS485 через пару ADuM1281 и развязанный DC/DC (на плате еще не установлен). В контроллере крутится Modbus стек, т.е. десяток таких плат можно объединить в сеть, завести данные с плат в SCADA систему, и автоматизировать произвольные процессы. В частности у нас эти платки будут использоваться для испытания приборов на -40/+60 в термокамере. Налепил их на проверяемый прибор, и сиди@наблюдай как меняются токи, напряжения и температуры на ответственных узлах.

Все эти платы проектировались параллельно, поэтому я сразу заложил идентичные размеры и возможности гибкого соединения. Не зря :)

Отлично, компилирую исходники, собираю этот конструктор, загружаю, и получаю первые строчки из отладочного порта! Подсистема питания запустилась!

PowerPrep start initialize power… Battery Voltage = 0.65V No battery or bad battery detected!!!.Disabling battery voltage measurements. EMI_CTRL 0x1C084040 FRAC 0x92926152 power 0x00820710 Frac 0x92926152 start change cpu freq hbus 0x00000003 cpu 0x00010002 Заглядываю в исходники инициализации памяти, разрешаю простейший тест, правлю ручками процедуру инициализации под мою конфигурацию платы, запускаю вновь:PowerPrep start initialize power… Battery Voltage = 1.74V No battery or bad battery detected!!!.Disabling battery voltage measurements. EMI_CTRL 0x1C084040 FRAC 0x92926152 power 0x00820710 Frac 0x92926152 start change cpu freq hbus 0x00000003 cpu 0x00010002 start memory test, at 0x40000000 end memory test, at 0x41FFFFFC Замечательно! Тест памяти пройден! Это очень хорошо, теперь туда можно загрузить что-то посерьезнее.

U-Boot

Посерьезнее у меня это U-Boot. Я знаком с этой системой, мне она кажется вполне адекватной и функциональной. Позволяет работать с периферией — актуальные версии работают с USB, SD/MMC, Ethernet, загружать образы c FAT/ext2 разделов, передавать управление, и главное — моргать светодиодиком — все то, что нужно для счастья и более гибкой отладки на первоначальном этапе. Поэтому не долго думая выкачиваю актуальную версию из официального репозитория, беру самую близкую конфигурацию, компилирую, собираю с индусскими бутлетами в один файл, и загружаю в процессор:PowerPrep start initialize power… Battery Voltage = 1.74V No battery or bad battery detected!!! Disabling battery voltage measurements. EMI_CTRL 0x1C084040 FRAC 0x92926152 power 0x00820710 Frac 0x92926152 start change cpu freq hbus 0x00000003 cpu 0x00010002 start memory test, at 0x40000000 end memory test, at 0x41FFFFFC

U-Boot 2015.04-rc3-00209-ga74ef40 (Mar 16 2015 — 12:47:34)

CPU: Freescale i.MX23 rev1.4 at 227 MHz BOOT: USB DRAM: 32 MiB MMC: MXS MMC: 0 MMC0: Bus busy timeout! MMC0: Bus busy timeout! MMC0: Bus busy timeout! MMC0: Bus busy timeout! Card did not respond to voltage select! MMC init failed Using default environment

In: serial Out: serial Err: serial Net: Net Initialization Skipped No ethernet found. Hit any key to stop autoboot: 0 =>

И U-Boot запустился! Отлично, но плата запускается все еще по проводам. Надо разбираться с картой памяти. Хорошо, перепаиваю резисторы выбора загрузки, втыкаю карту — в терминале от процессора приходит ошибка. Вытаскиваю карту — другая. Вот это поворот! ©

SD/MMC

Начинаю искать, поиски выводят на русскоязычный форум, на полезные и интересные 380 страниц обсуждения. Боюсь, ребята до сих пор вспоминают этот SoC крепким словцом.

Выясняется, что для загрузки с SD/MMC карты нужно обязательно прошить OTP биты, тогда еще что-то может быть и получится. В частности надо перенастроить в регистре OTP Register: 24 биты SD MBR Boot[3] — прошить в единицу, и SD_POWER_GATE_GPIO[21:20] — выбрать NO_GATE — в моем дизайне управление питанием карточки не предусмотрено.

«Неудобненько как-то получается». Это означает, что нельзя сделать загрузочную карту памяти, которой можно будет прошивать готовые приборы в партии, вместо этого придется подключать каждый прибор, и вручную прошивать эти злосчастные OTP биты. Разумеется, этот процессор я не буду использовать в сколько-нибудь серьезном проекте, но про такой момент забывать не стоит. Скачиваю виндовую утилитку, прошиваю эти биты, вставляю карту памяти, аккумулятор… Система стартует, и циклически перезагружается. Блин!

PowerPrep start initialize power… Battery Voltage = 3.75V Boot from battery. 5v input not detected

PowerPrep start initialize power… Battery Voltage = 3.75V Boot from battery. 5v input not detected

PowerPrep start initialize power… Battery Voltage = 3.75V Boot from battery. 5v input not detected ...

Правлю исходники бутлетов, в частности добавлю дополнительные отладочные сообщения, и выхожу на проблемный участок кода:PowerPrep start initialize power… Battery Voltage = 3.75V Boot from battery. 5v input not detected Try poweron_pll Try turnon_mem_rail Падает при подаче питания на DDR память. Хм. Где-то я уже читал об этом. А как до этого работало? Ладно, нестабильность найдена, надо разбираться.

Вокруг микросхемы памяти расположены ее законные развязывающие конденсаторы, 8 шт. по 100 nF. Но на выходе встроенного в SoC источника питания для памяти я поставил 2x10 uF, хотя производителем рекомендовано всего 1uF (инструкции читаю, если ничего другое уже не помогает, да). Ломать, не строить: отпаиваю один конденсатор, подключаю аккумулятор, и система стартует!

На самом первом фото виден этот конденсатор — вокруг него грязь, и он припаян только одним контактом.

PowerPrep start initialize power… Battery Voltage = 3.75V Boot from battery. 5v input not detected Try poweron_pll Try turnon_mem_rail Try init_clock EMI_CTRL 0x1C084040 FRAC 0x92926192 Try init_ddr_mt46v32m16_133Mhz power 0x00820710 Frac 0x92926192 start change cpu freq hbus 0x00000003 cpu 0x00010001

initcall: 3e09f908 (relocated to 40002908) initcall: 3e0a013c (relocated to 4000313c) initcall: 3e0a2ec0 (relocated to 40005ec0) initcall: 3e0a2ea8 (relocated to 40005ea8) initcall: 3e0a2e88 (relocated to 40005e88) initcall: 3e0a2e68 (relocated to 40005e68) Net: Net Initialization Skipped No ethernet found. initcall: 3e0a2e5c (relocated to 40005e5c) Initial value for argc=3 Final value for argc=3 ### main_loop entered: bootdelay=3

### main_loop: bootcmd=«mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loaduimage; then run mmcboot; else» Hit any key to stop autoboot: 0 => =>

Хе-хе, работает! Ок, запишу этот факт как причину потенциальных нестабильностей в будущем, ибо остался еще один 10uF, который тоже может усложнять жизнь. Теперь пробую с внешним питанием.PowerPrep start initialize power… Battery Voltage = 3.74V 5v source detected.Valid battery voltage detected.Booting from battery voltage source. Mar 18 2015 07:59:13 Try poweron_pll Try turnon_mem_rail Try init_clock EMI_CTRL 0x1C084040 FRAC 0x92926192 Try init_ddr_mt46v32m16_133Mhz power 0x00820710 Frac 0x92926192 start change cpu freq Теперь начались зависания. Более того, ситуация не регулярная, периодически проявляется при питании от аккумулятора, периодически от внешних 5В, периодически стартует и работает. Опять правлю код, отключаю переключение процессора на PLL, ядро остается работать на 24МГц. Все стабильно. Меняю делитель PLL, скручиваю частоту, и плата успешно запускается на 320 МГц. Надо попробовать рекомендацию производителя — конденсатор на 100 pF в цепи импульсного DC/DC. Место на печатной плате под конденсатор я заложил. Позже вернусь к этому вопросу.

Linux kernel

Итак, на текущий момент есть плата, стартующая с карты памяти, и загружающая U-Boot. Дальше по плану надо загружать ядро.

Выкачиваю актуальные исходники ядра с kernel.org, распаковываю и в три клика собираю ядро.

make ARCH=arm CROSS_COMPILE=${CC} mxs_defconfig make ARCH=arm CROSS_COMPILE=${CC} menuconfig make ARCH=arm CROSS_COMPILE=${CC} -j4 zImage modulesВот эти три кликаПри настройке ядра надо строго указать слияние ядра+dtbBoot options ---> Use appended device tree blob to zImage ----> Supplement the appended DTB with traditional ATAG information Надо включить Kernel low-level debugging functions вместе с early printk И еще enable dynamic printk() support И еще видеоподсистему отключить И еще половину лишних и не очень драйверов

И еще собрать dtb — device tree blob, структуру, описывающую ядру базовые вещи — количество памяти, периферию SoC, и т.д.

make ARCH=arm CROSS_COMPILE=${CC} imx23-olinuxino.dtb И собрать все это в один файл cat arch/arm/boot/zImage arch/arm/boot/dts/imx23-olinuxino.dtb > arch/arm/boot/zImage_dtb После чего можно копировать ядро на флешь.

Запускаю, и получаю kernel panic. Логично, корневой файловой системы еще нет.

Debian

В качестве собственно операционной системы я выбираю Debian. По-моему, отличный дистрибутив — простой и надежный, как деревянная палка. Беру готовую сборку, распаковываю на раздел карточки, и указываю при загрузке ядра, где искать его законную корневую.Лог загрузкиPowerPrep start initialize power… Battery Voltage = 3.68V Boot from battery. 5v input not detected poweron_pll turnon_mem_rail init_clock EMI_CTRL 0x1C084040 FRAC 0x92925E92 init_ddr_mt46v16m16_96Mhz power 0x00820710 Frac 0x92925E92 start change cpu freq Try now hbus 0x00000003 cpu 0x00010001

U-Boot 2015.04-rc3-00209-ga74ef40-dirty (Mar 18 2015 — 14:26:18)

CPU: Freescale i.MX23 rev1.4 at 320 MHz BOOT: USB DRAM: 32 MiB MMC: MXS MMC: 0 In: serial Out: serial Err: serial Net: Net Initialization Skipped No ethernet found. Hit any key to stop autoboot: 0 2650994 bytes read in 906 ms (2.8 MiB/s) Kernel image @ 0x41000000 [ 0x000000 — 0x284e60 ]

Starting kernel…

Uncompressing Linux… done, booting the kernel. [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 3.19.2 (freeman@freeman-PC) (gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 — Linaro GCC 4.5 [ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine model: i.MX23 Olinuxino Low Cost Board [ 0.000000] Memory policy: Data cache writeback [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128 [ 0.000000] Kernel command line: console=ttyAMA0,115200 root=/dev/mmcblk0p3 rw rootwait [ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes) [ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Memory: 18972K/32768K available (3475K kernel code, 244K rwdata, 1372K rodata, 188K init, 8096K bss, 13796K reserved, 0K cma-reserved) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector: 0xffff0000 — 0xffff1000 ( 4 kB) [ 0.000000] fixmap: 0xffc00000 — 0xfff00000 (3072 kB) [ 0.000000] vmalloc: 0xc2800000 — 0xff000000 ( 968 MB) [ 0.000000] lowmem: 0xc0000000 — 0xc2000000 ( 32 MB) [ 0.000000] modules: 0xbf000000 — 0xc0000000 ( 16 MB) [ 0.000000] .text: 0xc0008000 — 0xc04c42ac (4849 kB) [ 0.000000] .init: 0xc04c5000 — 0xc04f4000 ( 188 kB) [ 0.000000] .data: 0xc04f4000 — 0xc0531018 ( 245 kB) [ 0.000000] .bss: 0xc0531018 — 0xc0d19264 (8097 kB) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:16 nr_irqs:16 16 [ 0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836480000000ns [ 0.000000] Console: colour dummy device 80x30 [ 0.000000] Lock dependency validator: Copyright © 2006 Red Hat, Inc., Ingo Molnar [ 0.000000]… MAX_LOCKDEP_SUBCLASSES: 8 [ 0.000000]… MAX_LOCK_DEPTH: 48 [ 0.000000]… MAX_LOCKDEP_KEYS: 8191 [ 0.000000]… CLASSHASH_SIZE: 4096 [ 0.000000]… MAX_LOCKDEP_ENTRIES: 32768 [ 0.000000]… MAX_LOCKDEP_CHAINS: 65536 [ 0.000000]… CHAINHASH_SIZE: 32768 [ 0.000000] memory used by lock dependency info: 5167 kB [ 0.000000] per task-struct memory footprint: 1152 bytes [ 0.060000] Calibrating delay loop… 159.12 BogoMIPS (lpj=795648) [ 0.070000] pid_max: default: 32768 minimum: 301 [ 0.070000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.070000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.080000] CPU: Testing write buffer coherency: ok [ 0.080000] Setting up static identity map for 0x40353070 — 0x403530c8 [ 0.110000] devtmpfs: initialized [ 0.130000] pinctrl core: initialized pinctrl subsystem [ 0.180000] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.290000] Serial: AMBA PL011 UART driver [ 0.290000] 80070000.serial: ttyAMA0 at MMIO 0x80070000 (irq = 17, base_baud = 0) is a PL011 rev2 [ 0.480000] console [ttyAMA0] enabled [ 0.560000] mxs-dma 80004000.dma-apbh: initialized [ 0.590000] mxs-dma 80024000.dma-apbx: initialized [ 0.600000] SCSI subsystem initialized [ 0.610000] pps_core: LinuxPPS API ver. 1 registered [ 0.610000] pps_core: Software ver. 5.3.6 — Copyright 2005-2007 Rodolfo Giometti <[email protected]> [ 0.620000] Switched to clocksource mxs_timer [ 1.130000] futex hash table entries: 256 (order: 1, 11264 bytes) [ 1.290000] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc. [ 1.320000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250) [ 1.330000] io scheduler noop registered (default) [ 1.340000] of_dma_request_slave_channel: dma-names property of node '/apb@80000000/apbx@80040000/serial@80070000' missing or empty [ 1.360000] uart-pl011 80070000.serial: no DMA platform data [ 1.360000] 8006c000.serial: ttyAPP0 at MMIO 0x8006c000 (irq = 146, base_baud = 1500000) is a 8006c000.serial [ 1.380000] mxs-auart 8006c000.serial: Found APPUART 3.0.0 [ 1.410000] mousedev: PS/2 mouse device common for all mice [ 1.430000] stmp3xxx-rtc 8005c000.rtc: rtc core: registered 8005c000.rtc as rtc0 [ 1.440000] i2c /dev entries driver [ 1.450000] stmp3xxx_rtc_wdt stmp3xxx_rtc_wdt: initialized watchdog with heartbeat 19s [ 1.460000] softdog: Software Watchdog Timer: 0.08 initialized. soft_noboot=0 soft_margin=60 sec soft_panic=0 (nowayout=0) [ 1.470000] Driver 'mmcblk' needs updating — please use bus_type methods [ 1.480000] 80010000.ssp supply vmmc not found, using dummy regulator [ 1.540000] mxs-mmc 80010000.ssp: initialized [ 1.630000] mmc0: host does not support reading read-only switch, assuming write-enable [ 1.640000] stmp3xxx-rtc 8005c000.rtc: setting system clock to 1970-01-01 00:27:21 UTC (1641) [ 1.660000] mmc0: new high speed SD card at address e624 [ 1.680000] mmcblk0: mmc0:e624 SU02G 1.84 GiB [ 1.730000] mmcblk0: p1 p2 p3 [ 1.740000] usb0_vbus: disabling [ 1.780000] EXT3-fs (mmcblk0p3): error: couldn't mount because of unsupported optional features (240) [ 1.800000] EXT2-fs (mmcblk0p3): error: couldn't mount because of unsupported optional features (240) [ 1.870000] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null) [ 1.880000] VFS: Mounted root (ext4 filesystem) on device 179:3. [ 1.910000] devtmpfs: mounted [ 1.920000] Freeing unused kernel memory: 188K (c04c5000 — c04f4000) INIT: version 2.88 booting Using makefile-style concurrent boot in runlevel S. Starting the hotplug events dispatcher: udevdudevd[78]: error getting socket: Function not implemented

error initializing control socketudevd[78]: error initializing udevd socket failed! Setting the system clock. Activating swap...done. [ 6.410000] EXT4-fs (mmcblk0p3): re-mounted. Opts: (null) Checking root file system...fsck from util-linux-ng 2.17.2 rootfs: clean, 10152/115920 files, 89453/462839 blocks done. [ 6.870000] EXT4-fs (mmcblk0p3): re-mounted. Opts: (null) Setting the system clock. Cleaning up ifupdown… Setting up networking… Loading kernel modules...done. Activating lvm and md swap...done. Mounting local filesystems...done. Activating swapfile swap...done. Cleaning up temporary files… Setting kernel variables ...done. INIT: Entering runlevel: 2 Using makefile-style concurrent boot in runlevel 2. Starting NTP server: ntpd. Starting OpenBSD Secure Shell server: sshd.

Debian GNU/Linux 6.0 debian ttyAMA0

debian login: root Password: Last login: Thu Jan 1 02:00:41 EET 1970 on ttyAM0 Linux debian 3.19.2 #5 Thu Mar 19 10:58:08 EDT 2015 armv5tejl

The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@debian:~# root@debian:~# free total used free shared buffers cached Mem: 19160 18292 868 0 1496 9756 -/+ buffers/cache: 7040 12120 Swap: 0 0 0 root@debian:~# root@debian:~# cat /proc/cpuinfo processor: 0 model name: ARM926EJ-S rev 5 (v5l) BogoMIPS: 159.12 Features: swp half fastmult edsp java CPU implementer: 0x41 CPU architecture: 5TEJ CPU variant: 0x0 CPU part: 0x926 CPU revision: 5

Hardware: Freescale MXS (Device Tree) Revision: 0000 Serial: 0000000000000000 root@debian:~# root@debian:~# df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 1789440 295900 1384592 18% / tmpfs 9580 0 9580 0% /lib/init/rw udev 10240 0 10240 0% /dev tmpfs 9580 0 9580 0% /dev/shm tmpfs 9580 0 9580 0% /var/volatile tmpfs 9580 0 9580 0% /media/ram root@debian:~# root@debian:~# mount rootfs on / type auto (rw) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) tmpfs on /var/volatile type tmpfs (rw) tmpfs on /media/ram type tmpfs (rw)

Дааа, есть над чем поработать.

Но, тем не менее, система работает, грузится с карточки памяти, размещается во всем диапазоне DDR памяти, и по праву может называться одноплатным компьютером! Это от схемы в голове до реализации в железе. Итого, ошибок дизайна пока что не обнаружено, хотя нарекания уже есть. Что-ж, для начала, я считаю, достаточно.

Заключение

На самом деле это только начало. Еще есть над чем поработать — разобраться с периферией, в частности интересен аудио и видеовыход, протестировать SoC на штатных частотах, а еще лучше разогнать, измерить потребляемый ток, проверить при минусовых и плюсовых температурах (интересна устойчивость DDR контроллера), проверить на ресурсоемких задачах (например, видеотрансляция с веб камеры по USB WIFI), и в результате сделать на платке WiFi-управляемый танк с камерой и направленным микрофоном. Но не сейчас. Сейчас у меня есть деловое предложение :)

Есть три платы, которые я могу отдать. Все что нужно для получения — озвучить в комментариях идею, как можно применить получившуюся систему. Лучшие предложения получат по экземпляру даром, с надеждой, что вы реализуете свою идею, и расскажете, что у вас получилось. Раздачу слонов осуществлю 30 марта 2015 года, т.е. через неделю.

Для меня это будет обратной связью: мне нужно знать как поведет себя система в реальных условиях, насколько надежно себя покажет, какие проблемы возникнут, и т.д.

На этом пожалуй все, жду ваших комментариев.

UPD: по заявкам: первый экземпляр достается neochapay за идею с положительным рейтингом второй экземпляр уйдет r00tGER, третий REPISOT «Кто раньше встал, того и тапки».

habr.com

Гид по выбору платформы разработки / Амперка

Итак, у вас есть замысел проекта, но вы сомневаетесь, какую плату выбрать в качестве мозга устройства? Попробуем помочь вам определиться.

Если вы просто хотите освоить схемотехнику, программирование, Linux и конкретной цели кроме обучения пока нет, возможно лучшим выбором станет один из готовых обучающих наборов.

Но если вы уже освоились, и хотите сделать конкретный проект, этот гид поможет определиться с платформой для разработки и сделать взвешенный выбор.

Arduino или Raspberry Pi? Микроконтроллер или микрокомпьютер?

Все платы для разработки можно разбить на 2 большие категории:

Платы на микроконтроллере(MCU, MicroController Unit) Одноплатные компьютеры(SoC, System on a Chip)
Типичный представитель —Arduino Uno Типичный представитель —Raspberry Pi

Микроконтроллеры могут одновременно исполнять всего одну задачу и отлично с этим справляются. А одноплатные компьютеры исполняют программы в рамках операционной системы (чаще всего Linux), обладают большей производительностью и широкими мультимедийными возможностями.

Существуют также гибридные платформы, где на одной плате расположен и микроконтроллер и процессор. Идея в том, чтобы оставить мощному процессору сложные задачи: выход в сеть, обработку медиа, а на микроконтроллер возложить функцию точного управления приводами, реле, сенсорами и другой периферией. Вы можете создать гибрид и сами, если возьмёте по одной плате из каждого семейства. У всех них найдутся общие интерфейсы, через которые можно организовать их взаимодействие.

И в одном и в другом лагере можно найти специализированные платы, которые сильно выделяются среди прочих какой-нибудь особенностью, но сравнить возможности среднестатистических микроконтроллеров и компьютеров поможет таблица.

 МикроконтроллерОдноплатный компьютерПроизводительность Многозадачность Удобство работы с интернетом Длительность работы от батареек Скорость реакции в проектах критичных к времени Выбор языков программирования Возможности для работы с видео, компьютерным зрением Возможности для работы со звуком
1 ядро,десятки-сотни МГц,десятки КБ оперативки,десятки-сотни КБ постоянной памяти. 1 или более ядер,сотни-тысячи МГц,сотни МБ оперативки,гигабайты постоянной памяти.
Нет.Но можно эмулировать. Да.Управляется ОС.

★☆☆

Обычно нужны дополнительные модули и глубокое знание протоколов.

★★★

Легко подключается из коробки, сетевой модуль обычно уже на борту.

★★★

Потребляет единицы-десятки мА. Возможны недели работы от батареек.

★☆☆

Потребляет сотни-тысячи мА. Заряда большого аккумулятора хватит от силы на десяток часов.

★★★

100% контроль над временем и длительностью подачи сигналов.

★☆☆

Из-за многозадачности критический процесс может проспать своё время.

★☆☆

Ограниченный. Чаще C/C++.

★★★

Python, JavaScript, Bash и десяткии других: любые доступные в ОС.

☆☆☆

Не хватит мощности.

★★★

OpenCV, аппаратные видеокодеки, HDMI-выход.

★★☆

На мощных микроконтроллерах возможен синтез звука. Для работы с MP3/OGG/WAV нужны дополнительные модули.

★★★

Поддержка MP3/OGG/WAV на уровне ОС. Аудиовыход HDMI и/или разъём 3,5 мм.

Итак, в зависимости от своей задачи вы определились нужен ли вам микроконтроллер или компьютер. Как решить какая именно плата подойдёт лучше всего?

Так как нет большого смысла сравнивать лицом к лицу микроконтроллеры и микрокомпьютеры, далее мы отдельно приведём преимущества и недостатки конкретных плат в рамках своего семейства.

Сравнение микроконтроллеров

Если рассматривать микроконтроллерные платы в отрыве от задач вашего проекта, сложно в двух словах объективно описать преимущества и недостатки разных платформ. То, что в общем является недостатком, в вашем устройстве может не играть роли и наоборот.

Мы попытались сравнить платы, отталкиваясь от возможностей флагманской DIY-платформы Arduino Uno, так как платы именно этого семейства дали невероятный пинок развитию хобби-электроники во всём мире. Разные компании выпускают модули, сенсоры, платформы, дополнения с шильдами «Arduino compatible», «Designed for Arduino» и т.д. За этими словами стоит электронная и программная совместимость в первую очередь с Arduino Uno, а уж затем со всем остальным.

Как правило, с помощью ухищрений или дополнительных компонентов можно подключить что угодно, к чему угодно. Но ведь вам хочется сосредоточиться на своём проекте, а не на борьбе с электроникой? Поэтому волей не волей хочется сравнить любую плату на микроконтроллере именно с Arduino Uno. Так и сделаем.

Arduino Uno Процессор на 16 МГц, 32 КБ постоянной и 2 КБ оперативной памяти, 20 портов ввода-вывода, 6 аналоговых входов, 6 каналов ШИМ, 2 аппаратных прерывания, может, и не впечатляют, но без балласта в виде операционной системы и интерпретаторов, они позволяют решать практически любые задачи по точному дирижированию множеством сенсоров и исполнительных устройств. Тонны документации, уроков и готовых библиотек, огромное сообщество, работа из простой в освоении среды Arduino IDE с языком Arduino C++. Всё это просто не даст вам возможности сказать «не осилил». Родное напряжение в 5 вольт, которое является де-факто стандартом и колодки для установки плат расширения, аналоговые входы, всевозможные аппаратные интерфейсы позволяют подключить практически любую периферию, сенсоры и исполнительные устройства. Arduino Leonardo Та же Arduino Uno, но с другим микроконтроллером, который находится в том же классе, но имеет некоторые отличия положительного характера. Большее количество аналоговых входов (12 против 6) для сенсоров, больше каналов ШИМ (7 против 6), больше пинов с аппаратным прерыванием (5 против 2), раздельные независимые serial-интерфейсы для USB и UART. Arduino Leonardo может притворяться клавиатурой или мышью (HID-устройством) для компьютера. Это позволяет легко сделать своё собственное устройство ввода. Из-за распиновки чуть отличной от Arduino Uno возможна несовместимость с некоторыми платами расширения. Такие случаи, однако, редки, и в нашем магазине мы явно их прописываем. Iskra Neo Та же Arduino Leonardo, но произведённая нами, в России. Заметно дешевле оригинала. Arduino Mini Та же Arduino Uno, но в другом форм-факторе. Компактная. Всего 30×18 мм. Из-за форм-фактора нельзя без ухищрений устанавливать платы расширения Arduino. Предполагается соединение с дополнительными модулями проводами и/или через макетную плату. На плате нет USB-порта, поэтому прошивать нужно через отдельный USB-Serial адаптер. Iskra Mini Та же Arduino Mini, но произведённая нами, в России. Заметно дешевле оригинала. Есть в варианте с распаянными колодками и с незапаянными отверстиями. Arduino Micro Та же Arduino Leonardo, но в другом форм-факторе. Компактная. Всего 48×18 мм. Из-за форм-фактора нельзя без ухищрений устанавливать платы расширения Arduino. Предполагается соединение с дополнительными модулями проводами и/или через макетную плату. Arduino Mega Как Arduino Uno, но на базе более мощного микроконтроллера той же архитектуры. Отличный выбор «на вырост» или если Arduino Uno перестала справляться. В разы больше памяти: 256 КБ постоянной и 8 КБ оперативной. В разы больше портов: 60 из них 16 аналоговых и 15 с ШИМ. Немного длиннее базовой Arduino Uno: 101×53 мм против 69×53 мм. Arduino Due Одна из самых производительных плат от Arduino на микроконтроллере Cortex-M3 по форм-фактору аналогичная Arduino Mega. Процессор на 84 МГц и 512 КБ памяти. 66 пинов ввода-вывода, из которых 12 могут быть аналоговыми входами, 12 поддерживают ШИМ и все 66 могут быть настроены, как аппаратные прерывания. Встроенный контроллер шины CAN позволяет создавать сеть из Due или взаимодействовать с автомобильной электроникой. Два канала ЦАП позволяют синтезировать стереозвук с разрешением в 4,88 Гц. Родным напряжением для платы является 3,3 В, а не традиционные 5 В. Необходимо следить, чтобы выбираемая периферия поддерживала работу с этим уровнем или ставить преобразователи уровней напряжения. Iskra JS Плата на ядре Espruino: её программируют на JavaScript. JavaScript — язык высокого уровня. Программы писать проще, они компактнее и выразительнее. Особенно если речь идёт о многочисленных строковых операциях, массивах данных, веб-интерфейсе. Мощный микроконтроллер Cortex M4 на 168 МГц, 1 МБ флеш, 192 КБ оперативной памяти, десятки портов с ШИМ и аналоговых входов, 2 аналоговых выхода, по нескольку I²C, SPI, UART — всё это даёт подключить и одновременно работать с самыми разнообразными сенсорами и модулями. Несмотря на то, что родной уровень для платы — 3,3 вольта, пины толерантны к 5 вольтам: подключение пятивольтовой периферии тривиально. Из-за другой среды и экосистемы для программирования, может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно. Strela Робототехническая платформа «всё в одном» содержит в себе большинство тех вещей, которые нужны при создании любого лёгкого мобильного робота. Strela, как и любая другая Arduino, программируется из Arduino IDE, а в основе содержит тот же микроконтроллер, что и Arduino Leonardo. Встроенный драйвер для двух двигателей, 4 разъёма для сервоприводов, 4 кнопки и 4 светодиода свободного назначения, зуммер, слоты для ЖК-экрана и модуля беспроводной связи. Мощный регулятор питания позволяет без ухищрений использовать множество различных аккумуляторов. 11 входов-выходов выведены в виде 3-контактных разъёмов для лёгкого подключения дополнительных датчиков и модулей. ЖК-экран, кнопки и светодиоды подключены через расширитель портов, поэтому они не занимают входы-выходы общего назначения. На плате не предусмотрены колодки для установки плат расширения Arduino. Из-за изменённой нумерации контактов (в сравнении с базовой Arduino Leonardo), необходимо использовать немного другие функции для работы с пинами платы. Они предоставлены в одноимённой библиотеке. Arduino Yún Уникальный гибрид Arduino Leonardo и микрокомпьютера на OpenWRT Linux. Отличный выбор для «интернета вещей». Плата оснащена Ethernet и WiFi, через которые можно общаться с устройством и даже перепрошивать платформу удалённо. Мощь Linux позволяет работать с мультимедиа, а его сетевые возможности легко интегрироваться с социальными сетями и другими веб-сервисами. OpenWRT — это порезанный Linux. На микрокомпьютере можно установить не любой Linux-софт. А в качестве скриптовых языков программирования из коробки можно использовать только Bash и Python. STM32 Nucleo F401RE Плата с мощным микроконтроллером Cortex-M4. Платформа программируется не через Arduino IDE, а через онлайн-среду mbed.org. Субъективно, она мощнее и стройнее Arduino IDE, хотя и не так распространена. Для пытливого ума — отличный выбор. Процессор на 84 МГц, 512 КБ постоянной и 96 КБ оперативной памяти. 50 портов ввода-вывода, из которых 16 аналоговых и 29 с ШИМ. Родной уровень напряжения — 3,3 В, но все пины толерантны к 5 В, поэтому проблем электронной совместимости с Arduino-периферией возникнуть не должно. Колодки для плат расширения по конфигурации совпадают с Arduino Uno, поэтому на Nucleo можно поставить множество плат расширения от Arduino. На плате не выведен отдельный SPI-разъём. Платы расширения Arduino, которые используют SPI через ICSP-разъём без ухищрений не будут работать. Из-за другой среды и экосистемы для программирования, может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно. Teensy 3.2 Компактная плата с мощным микроконтроллером Cortex-M4. Программируется из привычной Arduino IDE. Меньше Arduino Micro (35×17 мм), но почти столь же мощная, как Nucleo: процессор 72 МГц, 256 КБ постоянной и 64 КБ оперативной памяти, 34 порта ввода-вывода, из которых 21 могут быть аналоговыми, а 12 поддерживают ШИМ. Teensy 3.1 очень энергоэффективна. У неё нет регулятора напряжения, но входным может являться любое от 3,3 до 5,5 В. Это же напряжение и будет логическим уровнем. В режиме сна плата потребляет всего 0,25 мА, что даёт возможность работать от аккумулятора несколько месяцев. Встроенный контроллер шины CAN позволяет создавать сеть из Due или взаимодействовать с автомобильной электроникой. Два канала ЦАП позволяют синтезировать стереозвук с разрешением в 4,88 Гц. Плата поставляется с нераспаянными контактами. Вам предстоит самостоятельно впаять штырьковые соединители или проводки. Из-за большой разницы в архитектуре с классическим Arduino не все библиотеки для сторонней периферии могут работать из коробки. Рабочее напряжение равно входному, а поэтому плывёт по мере разряда батарейки. Это может оказаться важным при выборе периферии, если она рассчитана на какой-то конкретный вольтаж. Netduino 2 Плата повторяет форм-фактором Arduino Uno, но имеет мощную начинку, достаточную для исполнения программ, написанных на платформе .NET. Netduino программируется на C# или любом другом .NET-языке в привычной любому .NET-разработчику среде Visual Studio. В качестве стандартной библиотеки предоставляется .NET Micro Framework. В Visual Studio работает автодополнение, подсказки, контекстная помощь в MSDN и полноценный отладчик. Вам доступны breakpoint’ы, пошаговое исполнение кода, наблюдение за переменными. Отладка происходит без ухищрений, просто с подключённым USB-кабелем. Благодаря всему этому, скорость разработки под Netduino в разы превосходит скорость разработки под любую другую платформу. На плате не выведен отдельный SPI-разъём. Платы расширения Arduino, которые используют SPI через ICSP-разъём без ухищрений не будут работать. Из-за другой среды и экосистемы для программирования, может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно. Netduino Plus 2 Как Netduino, только мощнее и с Ethernet на борту. Отличный выбор для реализации проектов интернета вещей. Те же, что и у Netduino 2.

Сравнение одноплатных компьютеров

Законодателем моды среди одноплатных компьютеров является Raspberry Pi. Эта сверхпопулярная платформа в своё время перевернула представление о возможностях, габаритах и стоимости полноценного компьютера для DIY-электронщиков.

Опять же, для каждого проекта может лучше подойти тот или иной одноплатный компьютер, но в силу популярности Raspberry Pi, будем сравнивать другие платформы именно с ней.

Raspberry Pi 3 Model B Один из самых популярных одноплатников. Четыре ядра по 1200 МГц, 1 ГБ оперативной памяти и полноценный Linux, основанный на Debian помогут решить множество задач, требовательных к вычислительным ресурсам. Среди них можно выделить компьютерное зрение, обработку звука в реальном времени, создание веб-сервисов. Тонны документации, уроков и готовых библиотек, огромное сообщество. Всё это просто не даст вам возможности сказать «не осилил». Привычные порты HDMI, 3,5 мм аудио, 4 USB помогут с лёгкостью подключить монитор, колонки, клавиатуру, мышь и другие USB-устройства. Модули BLE и WiFi на борту помогут соединить компьютер с другими устройствами без проводов. На плате нет АЦП, поэтому подключение аналоговых сенсоров возможно только с помощью внешних, дополнительных компонентов. Предоставляется лишь 1 аппаратный ШИМ-канал, что усложняет работу с периферией, которая управляется ШИМ’ом. BeagleBone Black Микрокомпьютер схожий с Raspberry Pi, который даёт больше благ, привычных для микроконтроллерных плат. Отличный выбор для проектов интернета вещей, когда необходимо управляться с множеством сенсоров и исполнительных устройств. Мощная среда для разработки Cloud9 IDE. Вы просто заходите на BeagleBone через браузер и программируете на любимом языке будь то Python, JavaScript (Node.js), Bash или любой другой язык Linux. Результат можно проверить мгновенно, а если что-то не заработало, использовать встроенный в среду полноценный отладчик. На борту уже установлена флеш-память eMMC на 4 ГБ с операционной системой Linux. Память может быть увеличена внешней microSD-картой. Широкие возможности по подключению периферии. 8 ШИМ-выходов и 7 аналоговых входов. Возможны аппаратные прерывания. Диковинный разъём microHDMI для подключения монитора. Для передачи звука используется он же. Вычислительная мощность скромнее, чем у Raspberry Pi: 1 ядро на 400 МГц и 512 МБ оперативной памяти.

amperka.ru

Одноплатный компьютер: варианты использования

Raspberry Pi 3 Model B -  это самый популярный одноплатный компьютер, построенный на базе 64-битного процессора ARM Cortex A53 с частотой 1,2 ГГц со встроенным модулем беспроводной связи Wi-Fi и Bluetooth.

 

 

Для чего нужен Raspberry Pi?

Благодаря небольшому размеру, малому энергопотреблению и наличию большой библиотеки программного обеспечения его можно использовать в различных проектах, например, при создании системы управления умным домом, домашнего кинотеатра или игровой консоли. Наиболее яркие проекты вы можете увидеть ниже:

Робот
Умный дом

 

Почему выбирают Raspberry Pi?

Тут все очень просто – Raspberry Pi стал самой продаваемой платформой из всех одноплатных компьютеров благодаря отличной цене, универсальности, открытости архитектуры, поддержке различных операционных систем и огромному сообществу, которое сложилось вокруг него. 

 

 

 

С чем обязательно нужно покупать Raspberry Pi?

Для работы одноплатного компьютера Raspberry Pi 3 необходимо приобрести сетевой адаптер с разъемом Micro USB. Рекомендуется выбрать модель с силой тока не менее 2,1А при напряжении 5В. Кроме того, вам понадобится карта памяти microSD, на которой будет храниться операционная система, радиаторы охлаждения, а также корпус для защиты от ударов и статики. Для расширения возможностей компьютера можно воспользоваться датчиками, камерами, модулями расширения. В нашем ассортименте вы также сможете найти готовый стартовый набор на базе Raspberry Pi.

 

 

 

 

Если возникнут технические вопросы?

Raspberry Pi - один из немногих продуктов, который популярен подобно контроллеру Arduino,  имеет огромное сообщество в интернете, где можно найти ответы на самые каверзные вопросы и поделиться своими идеями и разработками.

http://raspberrypi.ru http://raspberrypi.ru/forum/ https://vk.com/raspberrypi_ru

В таблице представлены наиболее интересные товары, которые выбирают наши покупатели:

Опубликовано: 11.04.2017

www.electronshik.ru

делаем сами » 24Gadget.Ru :: Гаджеты и технологии

Загрузка. Пожалуйста, подождите...

Как сделать сердце Железного Человека своими руками (40 фото)Наверняка вы помните блокбастер «Железный человек» с Робертом Дауни младшим в главной роли. Согласно сюжету миллиардер и ученый Тони Старк изобрел металлический костюм, который был способен сделать его сверхчеловеком. Главной деталью костюма было сердце, которое представляло собой небольшой атомный реактор. Один народный умелец решил воссоздать главную деталь костюма своими руками из подручных средств. Что в итоге вышло смотрите сами.... Самодельный Apple Mac Pro из мусорного ведра (19 фото)Из-за своей необычной формы новый ПК яблочной компании - Mac Pro сравнивали с мусорным ведром. Некто под ником sascha288 решил весьма остроумно собрать самодельный Mac Pro из мусорного ведра. Металлическая основа была выкрашена в красный цвет и сходство в итоге получилось потрясающим. Габариты устройств, кстати, тоже сравнимы: 28 x 19 см против 25,1 x 16,8 см. В роли комплектующих выступили материнская плата Gigabyte z87n WiFi, процессор Core i3 (Haswell), видеокарта Radeon 7750, SSD и жесткий диск, ATX PSU. Система работает под управлением модифицированной версии Mac OS X... Самодельный планшет из Raspberry Pi (6 фото)Некто под именем Michael Castor собрал собственными руками планшет и назвал его PiPad. В основе устройства лежит одноплатный компьютер Raspberry Pi Model B, в комплектацию которого входит процессор ARM с тактовой частотой 700 МГц, 512 МБ оперативной памяти, два порта USB и разъем Ethernet, слот для карт SD. В финальном варианте PiPad один USB-порта и Ethernet отсутствуют, так как для них просто не хватило места. Размеры мини-ПК составляют 85,6x56x21 мм, вес — 45 г. В качестве дисплея используется 10-дюймовая ЖК-панель с разрешением 1280 x 800 пикселей и напряжением питания 5 В. Аккумулятор емкостью 10 000 мАч обеспечивает 6 часов работы гаджета. Каркас PiPad изготовлен из фанеры, задняя панель сделана из углеродного волокна. Ноутбук своими руками (5 фото)Банни Хуан отказался от использования планшета и смартфона, и задался целью собрать собственными руками ноутбук с открытым исходным кодом для повседневной работы. Устройство получило название Project Novena, а в его технические характеристики вошли: 13-дюймовый дисплей с разрешением 2560 × 1700 пикселей и каркас с корпусом, которые выполнены из 5052 и 7075 сплавов алюминия. На портале Makezine Банни даже выложил подробную инструкцию для всех желающих повторить этот опыт... Вертолёт на мышцах (видео)В 1980 году Американское Вертолетное Общество объявило, что вручит премию в $10000 тому, кто сумеет создать вертолет, который пробудет в воздухе 60 секунд, достигнет в процессе этого полета высоты в 3 метра и не вылетит при этом за границы площадки 10 на 10 метров. При этом приводиться в движение вертолет должен исключительно силой человеческих мышц. Назвали эту премию в честь Игоря Ивановича Сикорского. С тех пор прошло 33 года и размер премии вырос до $250000. Вчера она была вручена команде AeroVelo из университета Торонто за созданный ими вертолет Atlas. Самодельный апгрейд смартфона Galaxy Note IIОдин из владельцев смартфона Galaxy Note II в китайской модификации, рассчитанной на 2 сим-карты, устав от слабой батарейки (3100 мАч) и недостаточного объёма (32ГБ) встроенной памяти решил провести апргейд гаджета. Для этого он приобрёл адаптер MicroSD -> SD, карту памяти Lexar SDXC объёмом 256ГБ и аккумулятор впечатляющей ёмкости - 8500 мАч. Как описывает автор - самое долгое время ушло на доставку комплектующих из интернет-магазинов, а на сборку потратил всего несколько минут. В итоге смартфон получил огромный аккумулятор и суммарный объём памяти равный 288ГБ. Единственное с чем ещё нужно будет поработать - это задняя крышка смартфона... Cветовой меч из лазерной указки (видео)Фанаты «Звездных Войн», внимание, эта новость для вас! Если вы мечтаете о световом мече, но не хотите, как Костя Хабенский в «Ночном Дозоре», ходить с лампой дневного света в руках, то можете попытаться сделать его из самой обычной лазерной указки. Для создания светового меча фанату Дарта Вейдера потребовалась всего лишь-навсего лазерный диод 9мм 450нм мощностью 3 ватта, генерирующая луч зеленого цвета, и стильный корпус для нее. В комментариях к видео сказано, что это очень мощный лазер, и использовать его нужно с крайней осторожностью. Также рекомендуется надеть на глаза очки во избежание перенапряжения сетчатки – лазер очень яркий... Самодельный чехол для смартфона или плеера из старых джинс (31 фото)Джинсы любят все. Ну, или почти все. И старая завалявшаяся на антресолях парочка джинс — у кого-то это любимые, протертые до дыр штанишки, у кого-то совсем новенькие, неношеные (так как кто-то слегка поднабрал тысячи граммов) — наверняка имеется. Сегодня я предложу вам не революционную, но достаточно любопытную идею, как можно с пользой применить старые джинсы. И не надо их жалеть! Признайтесь уже честно, что они всё равно бы лежали мертвым грузом на дальней полке и так бы и не увидели свет в конце своей полотняной жизни... Как сделать электробайк (3 фото + видео)Любите кататься на велосипеде? Хотите на нем путешествовать дальше, а уставать меньше? Это возможно, если добавить к вашему двухколесному другу электромотор и батарею. Для превращения своего обычного велосипеда в электробайк, вам понадобится только готовый набор, состоящий из специального колеса с электро-двигателем и батареи... Очередное оружие для 3D-принтера (видео)Австралийская компания Lulzbot разработала дешевый аналог распечатываемого на 3D-принтере пистолета Liberator. Оригинальный проект был предложен фирмой Defense Distributed из США, однако для создания оружия требовался промышленный принтер стоимостью около $8000. Схемы, необходимые для распечатки пистолета на 3D-принтере, Defense Distributed выложила в интернет, открыв к ним доступ всем желающим. Таких оказалось немало, среди них была и компания Lulzbot. Ее специалисты внесли корректировки в проект, и оказалось, что для создания Liberator можно использовать «бытовой» 3D-принтер Lulzbot AO-101 стоимостью $1700, материалы обойдутся еще в $25. Создатели модификации, получившей название Lulz Liberator, отмечают, что кажущаяся доступность не означает широкого распространения такого оружия: дешевле все же купить «классический» пистолет. 01LAMP - лампа из коробки от пиццы (6 фото)Дизайнеры-энтузиасты из Италии представили на суд любителей экологичных гаджетов настольную лампу из картона. Её трудно заподозрить в каких-либо технических изысках, конёк лампы 01LAMP - максимальная функциональность. Собрать такое устройство можно, не выходя из дома. Всё что необходимо - заказать пиццу, опустошить коробку и проникнуться творческим настроением. Создавая лампу, дизайнеры отказались от использования клея, и все детали 01LAMP скрепляются специальными клапанами. В конструкции лампы нет никаких деревянных, пластиковых или железных частей. Исключение составляет кнопка «ВКЛ», провода и лампочка. Именно поэтому авторы проекта утверждают, то одним из достоинств лампы является её экологичность. Приложив соответствующие усилия, собрать подобную лампу в домашних условиях может любой человек. Чтобы облегчить данный процесс, итальянские дизайнеры даже выложили в Интернете подробную инструкцию, к которой прилагаются схемы и рисунки, облегчающие процесс сборки. Самые ленивые борцы за экологию, впрочем, могут просто заказать уже собранный необычный гаджет у авторов проекта. Готовая лампа 01LAMP обойдется в 40 евро или $53.

24gadget.ru

Pi-Top: компьютер своими руками

Вы можете приобрести набор деталей и собрать компьютер своими руками. Благодаря развитию технологий, в частности 3D-печати, это может быть полноценный ноутбук с экраном, клавиатурой и возможностью подключения периферийных устройств. Цена же такого устройства будет значительно ниже той, которую запрашивают за аналогичный товар «именитые» производители.

Набор для сборки ноутбука Pi-Top будет официально представлен в мае 2015 года, хотя продажи уже идут. Кампания по сбору средств для его производства была проведена на indiegogo.com и принесла проекту чуть более 130 тысяч долларов.

Для того чтобы получить этот компьютер, вам потребуется доступ к 3D-принтеру и набор для сборки стоимостью 290 долларов. В итоге у вас в руках окажется полноценный ноутбук с возможностью дальнейшей кастомизации и апгрейда. Авторы проекта надеются, что их компьютер будет полезен в первую очередь детям, которые смогут освоить как сборку устройства из комплектующих, так и работу с программным обеспечением и основы робототехники.

Основатели проекта — Райен Данвуди (Ryan Dunwoody), 23-летний выпускник Оксфорда и 27-летний Джесси Лозано (Jesse Lozano), юрист по образованию, самостоятельно освоивший программирование.

Джесси Лозано и Райен Данвуди — создатели Pi-Top

«Вместо того чтобы использовать ноутбук как закрытое устройство, вы можете понять, как работает экран, как заряжается аккумулятор, как происходит переключение между аккумулятором и сетевым питанием, — рассказывает Данвуди. — Если что-то сломается, вы сможете это починить. Многие родители покупают наш компьютер для своих детей, так как видят в нём способ донести до ребёнка понимание технологий и устройств, которые мы используем ежедневно».

По словам Лозано, Pi-Top «предназначен для того, чтобы научить вас, как сделать другие вещи», позволяя экспериментировать с оборудованием. Он надеется, что компьютер будет использоваться в школах.

Основа компьютера Pi-Top — Raspberry Pi (Модель B+), одноплатный компьютер размером с банковскую карту. Корпус ноутбука необходимо напечатать самостоятельно, для этого в наборе имеются пластиковые «чернила» для 3D-принтера и файлы для печати. Сборка готового устройства предельно проста, человек с самыми минимальными техническими навыками, пользуясь инструкцией, соберёт Pi-Top за вечер. Кроме набора начального уровня, разработчики предлагают несколько плат расширения. Так, благодаря дополнительным модулям, Raspberry Pi может быть запрограммирован таким образом, что сможет служить центральным управляющим устройством для робота. Записав программу в Raspberry Pi, пользователь может достать его из корпуса ноутбука и поместить на шасси, которое можно также распечатать на 3D-принтере.

22century.ru

Что такое одноплатный компьютер и как его используют?

Чем SBC отличаются от обычных компьютеров?

Пожалуй, только названием. В то время, как типичные компьютеры диверсифицируют, используя несколько компонентов, подключенных к центральной плате через кабеля, одноплатный компьютер имеет свой микропроцессор со встроенной памятью на одной печатной плате.

Одноплатные компьютеры бывают различных размеров и способны охватывать различные области применения: некоторые совместимы с ПК и имеют совместимость с идентичным типом оборудования, в то время как другие могут иметь узкую специализацию. Некоторые модели одноплатных компьютеров поставляются со встроенными микроконтроллерами. Целый ряд одноплатных компьютеров представляют возможность для расширения заводских установок и реконфигурации, в тоже время - некоторые модели не предлагают никаких вариантов для модификации. В целом, большинство производителей подразумевает стартовый базис, который может быть изменен и дополнен.

Как используются SBC?

Как упоминалось ранее, одноплатные компьютеры имеют ряд приложений. Первый выпуск аналогичных моделей состоялся в 2000 году, а в последнее время такие модели стали набирать темпы в области развития. Они служат в качестве основы для множества проектов с открытым кодом, благодаря своей компактности и дешевизне.

Одноплатные компьютеры используются в сфере образования для преподавания информатики. Ну конечно, большая часть пользователей – это опытные программисты, которые не стали довольствоваться заводскими конфигурациями, а предпочитают самостоятельно приобретать комплектующие для компьютеров и создавать прогрессивные системы.

Как выбрать одноплатный компьютер?

Само собой разумеется, что ваш выбор SBC будет определяться областью применения. Тем не менее, есть несколько общих соображений, которые следует иметь в виду, если вы намерены приобрести такое устройство.

Мощность

Убедитесь, что характеристики SBC соответствуют вашим заявленным требованиям, а также следует обратить внимание на возможности куллера, которому предстоит защищать вашу систему от перегревов.

Память

Здесь главным критерием опять становятся ваши потребности. Первые устаревшие модели  SBC поставлялись только с 512 Мб встроенной памяти, что казалось, совершенно разумным в то время. В наши дни, подобная система должна содержать, по крайней мере, 1 Гб оперативной памяти, а более продвинутые модели будут предлагать 32 ГБ.

Процессор

В настоящее время на рынке представлены три основных варианта: Intel, Power Architecture и ARM. Ваш выбор может руководствоваться требованиями памяти, предыдущим опытом работы с конкретным типом процессора и, конечно, требованиями.

Операционная Система

Типичные операционные системы, доступные на большинстве SBC, - Linux (самый популярный), INTEGRITY, Wind River VxWords, QNX, LynxOS и GreenHills. Большинство процессоров поддерживает Linux, меньшее число будут совместимы с VxWorks или другими инструментов проектирования, поэтому снизится возможность создания безопасных приложений.

Элемент I/O

SBC обеспечивает наличие необходимых элементы ввода/вывода, таких как Ethernet, USB, DIO и других. Если необходимые ввод/вывод не поддерживаются базовой SBC, вам следует узнать о дополнительной поддержки системы.

2ezone.ru

Одноплатный компьютер своими руками, ar9331 datasheet

Одноплатные компьютеры – устройства, которые собраны на одной лишь «материнке». На последней установлены все необходимые детали: микропроцессор, оперативная память, способы ввода данных и их вывода, другие модули, нужные для полноценной работы устройства. Зачастую одноплатные ПК используются (и, соответственно, разрабатываются) как демонстрационная система или же приспособление для образования. Нередко их применяют в промышленной сфере.

Если говорить о стандартных компьютерах типа «дектоп», то при сравнении с описываемым, последний не требует установки периферийных плат. В зависимости от модели, некоторые варианты выпускаются в виде небольшой «материнки», оснащенной памятью и процессором. Такую плату можно подключить к внутренней магистрали. Это позволит увеличить доступные характеристики, а также воспользоваться дополнительными разъемами.

Довольно часто требуется защита различных деталей. Необходимо, чтобы они компактно располагались рядом друг с другом. Именно поэтому стали популярными одноплатные компьютеры. Такое решение позволит сделать устройство небольшим по размеру и совсем недорогим. Но система на кристалле имеет и свои недостатки. Например, сменить процессор или увеличить память не получится, зачастую эти детали припаяны.

Аппаратные одноплатные платформы

Сравнение одноплатных компьютеров с аппаратными платформами поможет понять, чем отличаются устройства друг от друга. Нередко пользователи и потребители путают их между собой. Платформа – обычный микроконтроллер, который нельзя называть полноценным компьютером. На ней не установлена операционная система, поэтому пользователь не может взаимодействовать с устройством, как с обычным ПК.

Нередко аппаратные платформы используют для строения роботов, а также создания простых автоматических систем. По сути, главная задача подобного приспособления – управлять другими устройствами. Можно сказать, что аппаратная платформа – не более чем альтернатива одноплатной системы. Назвать их аналогами нельзя.

Для чего необходим одноплатный компьютер?

Некоторые пользователи почему-то считают, что одноплатный компьютер не способен выполнять многие функции. Однако его спектр решаемых задач велик. Такое устройство используют в компьютерах, роутерах и другой технике. На этом приспособлении можно с легкостью установить операционную систему Lunix. В таком случае одноплатное устройство будет выполнять практически все задачи: от поиска документов до прослушивания музыки. Если подобрать для себя модель подороже, то можно также просматривать видео качеством не более 1080р. Такие манипуляции производятся с привычным для потребителя интерфейсом. Недостатки можно выявить при работе с другими архитектурами. Зачастую приложения функционируют на ARM. Поэтому желательно подбирать плату именно с такой архитектурой.

Рассматривая подобные системы в узкой специализации, можно наткнуться на некоторые нюансы работы. Например, для того чтобы одноплатные компьютеры Raspberry превратить в роутер или модем, необходимо лишь установить соответствующую прошивку.

Мал золотник: что умеет компьютер за 35 долларов

Чаще всего этот процесс запрашивает минимальное вмешательство человека, являясь завершенными решениями. От владельца требуется лишь записать образ на карту памяти и правильно указать все необходимые настройки. Превратить одноплатный компьютер в роутер не единственное, что можно сделать. Для того чтобы дом стал «умным», понадобится лишь три-четыре системы. Конечно, придется немного дольше заниматься настройками, но уже сейчас существуют более менее готовые решения, которые практически не нужно редактировать.

Для тех, кто интересуется технической сферой, не секрет, что «Майкрософт» собралась выпускать специальное устройство. Сейчас большую популярность приобретает «интернет вещей». Разрабатываемые устройства работают на особых протоколах. Благодаря этому они смогут функционировать даже с обычными сотовыми телефонами. Если рассматривать эту возможность как развитие однопроцессорных компьютеров, то такое решение – прорыв. Ведь ранее управление осуществлялось через маршрутизатор. Сейчас последнее решение уже практически не используется. Проще работать, когда устройства обращаются друг к другу напрямую.

То, без чего не сможет существовать ни одна плата, порты входа и выхода – GPIO. Они позволяют моментально выключать лампочку после получения электронного сигнала. Стандартная модель оснащается 5-10 разъемами. При желании их количество можно расширить.

Raspberry Pi

Обзор одноплатных компьютеров следует начать с одной из самых популярных моделей – Raspberry Pi. Это устройство известно как «Малинка». Именно оно стало началом развития одноплатных компьютеров. Появилась модель в 2012 году и не все потребители адекватно оценивали ее способности и функционал. Для покупателей казалось это невозможным: целый компьютер, размер которого не превышает габариты кредитной карты, стоимость на него составляла $25. Работал на операционной системе Linux. Так или иначе, после релиза потребители стали потихоньку приобретать модель, тем самым сделав ее довольно популярной.

Из чего состоит Raspberry Pi?

По стандарту «Малинка» получила слот для карты памяти, разъем для питания, выходы для наушников, видео, USB, Ethernet, HDMI.

Помимо этого, встроены универсальные порты, позволяющие взаимодействовать с любыми другими устройствами.

Система продается в пяти различных конфигурациях. Наиболее простые модели – A. Они работают с 256 Мб ОЗУ. Используется ARMv6. Установлен один USB-порт. Модели с индексом B предлагают владельцу 512 Мб оперативной памяти. Имеются 2-4 порта USB и Ethernet. Модификация 2B работает с 4-ядерным процессором. Оперативная память составила 1 Гб. В продаже также имеются варианты с индексами A+, B+.

Цены на модели изменяются от $20 до $35.

Возможности Raspberry Pi

«Малинка» сильно распространена, именно поэтому к ней продается много различных дистрибутивов. Речь идет о софте, который, как правило, создается для работы с Linux.

Возможности устройства практически бесконечны. Одноплатный компьютер (x86 или x64) способен выполнять любую задачу. Основным нюансом является мощность процессора, от которой следует отталкиваться. К сожалению, он слабый во всех модификациях, кроме 2B. «Малинку» купить можно как в интернет-магазинах, так и в любых розничных точках продаж. В первую очередь, лучше приобрести именно 2B, если есть на то средства. Эта плата намного мощнее, имеет много портов. Разница в цене между моделями небольшая, а вот в совместимом софте – существенная.

Cubieboard

Модель Cubieboard получила GPIO, SATA, HDMI, USB, VGA, Ethernet, а также следующие разъемы: питания, оптического и стандартного аудиовыхода («мини-джек»).

Одноплатные компьютеры модели Cubieboard родом из Китая. Были созданы в 2012 году, однако первая модификация, мягко говоря, не удалась. Третья версия лучше всего себя проявила. В отличие от предыдущей «Малинки», плата имеет больше портов, встроены инфракрасный порт, «блютуз» и модуль беспроводной сети. Гаджет работает с 1/2 Гб оперативной памяти (в зависимости от модификации) на процессоре ARM Cortex-A7.

Дополнительная информация о модели

Одноплатные компьютеры этой модели работают тоже на базе Lunix. Производитель установил особенную версию, созданную собственноручно. В целом девайс отдаленно напоминает описанную ранее «Малинку». В некоторых нюансах она повторяет характеристики и иногда их расширяет. Цена немного выше: средняя стоимость $85.

BeagleBone

Модель появилась в 2013 году. Она получила разъем питания и другие стандартные порты. В своей линейке BeagleBone считается одной из самых мощных, если не лучшей. Разработчики решили уделить внимание большому количеству всех имеющихся портов. В продаже есть много интересных приспособлений. Работает плата на процессоре Cortex-A8, ядра которого функционируют с частотой 1 ГГц. Оперативная память составляет 512 Мб.

Дополнительные особенности

Как и другие вышеописанные одноплатные компьютеры, система работает на базе Linux. В заводской начинке производитель уже установил 2-4 Гб памяти. В некоторых модификациях встроен и дистрибутив Debian. За счет того, что имеется много портов, можно с легкостью подключать плату к любому устройству. Если использовать периферийные девайсы, то запросто возможности системы увеличатся в разы. Производитель сделал упор на дополнительные приспособления. Цена на само устройство $45.

Выводы

Сейчас мощные одноплатные компьютеры продаются в любой точке реализации. Ассортимент большой, иногда даже стирается понимание того, что собой представляет данное устройство. В статье описаны три наиболее популярные модели, которые пользуются огромным спросом и хорошо зарекомендовали себя. Какой вариант предпочесть, следует решать лишь самому покупателю. Одноплатные мини компьютеры – то, что сделает жизнь намного легче, поэтому стоит подойти к выбору осознанно.

rpilot62.ru


Читайте также
  • Гиперскоростная звезда – более 1.000.000 миль в час
    Гиперскоростная звезда – более 1.000.000 миль в час
  • Астрономы обнаружили самую большую спиральную галактику
    Астрономы обнаружили самую большую спиральную галактику
  • Млечный путь содержит десятки миллиардов планет, схожих с Землей
    Млечный путь содержит десятки миллиардов планет, схожих с Землей
  • Млечный путь разорвал своего спутника на четыре отдельных хвоста
    Млечный путь разорвал своего спутника на четыре отдельных хвоста
  • Найден источник водородных газов для нашей Галактики
    Найден источник водородных газов для нашей Галактики