![image](https://habrastorage.org/getpro/geektimes/post_images/b16/777/1fc/b167771fcbe179abe8c51b266ede6d7b.jpg)
На Geektimes'ах уже пролетала информация о том, как 9-долларовый Linux компьютер собрал больше $2 000 000 на кикстартере. Я также поддержал этот проект в момент сбора средств и на днях ко мне прилетел мой экземпляр данного девайса
Данный компьютер комплектуется процессором Allwinner R8 на архитектуре ARM с частотой 1ГГц, ОЗУ 512Мб, 4Гб встроенной flash-памяти, а также имеет встроенный Wi-Fi с поддержкой стандартов b/g/n и на борту в наличии bluetooth 4.0. В качестве интерфейсов тут содержатся один порт USB, композитный AV выход для подключения к ТВ или любого дисплея с поддержкой композитного видеовхода, micro-USB для питания и прошивки самого C.H.I.P'а, разъем для подключения внешнего аккумулятора, а также колодки с портами GPIO. Впрочем, используя последние, можно подключить дополнительные HDMI или VGA адаптеры, которые приобретаются отдельно по цене $15 и $10 соответственно
![image](https://habrastorage.org/getpro/geektimes/post_images/012/3f7/121/0123f7121baa06accc2a76e78ae65514.jpg)
![image](http://cdn.shopify.com/s/files/1/1065/9514/products/vga_medium.jpg)
Также существует расширение PocketC.H.I.P., позволяющее сделать мини-компьютер полностью мобильным, за счет подключения аккумулятора и клавиатуры с дисплеем.
![image](https://habrastorage.org/getpro/geektimes/post_images/c08/8eb/7de/c088eb7decf4a37a5c9766af0637e72c.jpg)
Девайс прилетел упакованным в бумажный конверт, внутри которого симпотная квадратная коробочка из картона, содержащая мини-компьютер
![](https://habrastorage.org/files/2b2/983/f00/2b2983f001754c34aec3f92aa48d5b61.jpg)
А вот и содержимое коробочки
![](https://habrastorage.org/files/7ff/17b/47c/7ff17b47cb6544a8a1d6daa02f3980a6.jpg)
Мой экземпляр снабдили гламурным AV кабелем розового цвета
![](https://habrastorage.org/files/98e/835/842/98e835842c1546b1a3ebfcff4666fa62.jpg)
А сзади стоит полупрозрачный корпус, закрывающий процессор
![](https://habrastorage.org/files/d8b/e6b/bbd/d8be6bbbdf16415f8749c9296c137208.jpg)
Работает это все под модификацией Linux Debian в качестве OS, отмечу, что производительность в целом не велика. Bluetooth и Wi-Fi работают на отлично, без проблем подключились беспроводные клавиатура и мышь от iMac'а и законнектился к инету. С USB тоже никаких проблем, флешка, мышка, а также стик от беспроводного Logitech F710 геймпада определились и заработали нормально. Кстати, что касательно игр, то попробовал превратить его в миниатюрный эмулятор игровых платформ, установил эмулятор mednafen, который поддерживает множество старых игровых систем, и собрал к нему из исходников GUI mednaffe. Производительность и качество можно увидеть на этом видео.
Ну а на закуску попробуем поуправлять портами GPIO, например, помигаем светодиодом через него. Для этого подключим светодиод через резистор 100-200 Ом анодом к 5му выходу колодки U13 и катодом к 13му выходу колодки U14 как на схеме
![](https://habrastorage.org/files/95f/04e/9f6/95f04e9f6adc4a4fa7928b81ce02b786.jpg)
или как сделал я
![](https://habrastorage.org/files/941/70f/e6f/94170fe6fbd14760ab007ac719aca9ad.jpg)
Все дальнейшие действия можно выполнять непосредственно на устройстве, а можно сделать удаленно, подключившись к девайсу по ssh. По умолчанию в системе имя пользователя и пароль chip, нужно лишь только узнать IP-адрес устройства.
ssh chip@192.168.1.109
За управление портами ввода вывода отвечает PCF8574A контроллер. Управление им осуществляется через манипуляции с файлами /sys/class/gpio/gpio408, доступ к которым возможен только из под рута, поэтому нужно переключится на него предварительно
su
Рассмотрим два способа управления, через консоль и с помощью программы на Си. Итак, мигаем светодиодом из консоли. Переходим в каталог /sys/class/gpio
cd /sys/class/gpio
Активируем GPIO и включаем работу порта на выход
echo 408 > export
echo out > gpio408/direction
Теперь можем выставлять значение в порту записывая значения в gpio408/value
echo 1 > gpio408/value # включаем светодиод
echo 0 > gpio408/value # выключаем светодиод
По окончании незабываем деактивировать работу с GPIO
echo in > gpio408/direction
echo 408 > unexport
А теперь все тоже самое, но на языке Си. Создадим в домашней директории каталог projects, а в нем blink.
cd ~/
mkdir projects
cd projects
mkdir blink
cd blink
Запустим текстовый редактор nano и создадим новый файл (ctrl+o) с именем main.c, т.о. получим сразу подсветку синтаксиса.
nano
И, собственно, листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
int fd;
// Активируем работу с GPIO
fd = open("/sys/class/gpio/export", O_WRONLY);
if (fd < 0)
{
return -1;
}
write(fd, "408", 3);
close(fd);
// Включаем порт на выход
fd = open("/sys/class/gpio/gpio408/direction", O_RDWR);
if (fd < 0)
{
return -1;
}
write(fd, "out", 4);
close(fd);
// В цикле включаем и выключаем светодиод
fd = open("/sys/class/gpio/gpio408/value", O_RDWR);
if (fd < 0)
{
return -1;
}
int i;
for (i = 0; i < 1000; ++i)
{
write(fd, "1", 2);
sleep(3);
write(fd, "0", 2);
sleep(3);
}
// Завершаем работу с GPIO
fd = open("/sys/class/gpio/unexport", O_WRONLY);
if (fd < 0)
{
return -1;
}
write(fd, "408", 3);
close(fd);
return 0;
}
Далее компилим и запускаем под рутом
gcc main.c -o blink
./blink
На этом небольшой обзор маленького компьютера закончен, хотя возможностей у него еще огромное количество. При своих возможностях и столь малой цене получился таки солидный конкурент для Raspberry Pi