CHIP - $ 9 Raspberry Pi Killer

imagen
La información sobre cómo una computadora Linux de $ 9 recaudó más de $ 2,000,000 en kickstarter ya ha pasado por Geektimes . También apoyé este proyecto en el momento de la recaudación de fondos y el otro día mi copia de este dispositivo voló hacia mí.

Esta computadora está equipada con un procesador Allwinner R8 en una arquitectura ARM con una frecuencia de 1 GHz, 512 MB de RAM, 4 GB de memoria flash interna, y también tiene Wi-Fi incorporado con soporte para estándares b / g / ny Bluetooth 4.0 incorporado. Las interfaces aquí incluyen un puerto USB, una salida AV compuesta para conectarse a un televisor o cualquier pantalla compatible con entrada de video compuesto, micro-USB para alimentación y firmware de CHIP, un conector para conectar una batería externa y almohadillas con puertos GPIO. Sin embargo, con este último, puede conectar adaptadores HDMI o VGA adicionales, que se compran por separado a un precio de $ 15 y $ 10, respectivamente.
imagenimagen
También hay una extensión PocketC.HIP que le permite hacer que una mini computadora sea completamente móvil, conectando una batería y un teclado con una pantalla.
imagen

El dispositivo llegó embalado en un sobre de papel, dentro del cual había una simple caja de cartón cuadrada que contenía una mini computadora.


Y aquí está el contenido de la caja.


Mi copia estaba equipada con un glamoroso cable AV rosado.


Y hay una caja traslúcida detrás del procesador


Todo funciona bajo la modificación de Linux Debian como sistema operativo, noto que el rendimiento general no es excelente. Bluetooth y Wi-Fi funcionan perfectamente bien, el teclado y el mouse inalámbricos de iMac se conectaron sin problemas y se conectaron a Internet. Tampoco hay problemas con el USB, se determinó y funcionó bien una unidad flash, un mouse, así como un dispositivo de memoria de un gamepad inalámbrico Logitech F710. Por cierto, con respecto a los juegos, traté de convertirlo en un emulador en miniatura de plataformas de juegos, instalé el emulador mednafen, que admite muchos sistemas de juegos antiguos, y recopilé GUI mednaffe de él . El rendimiento y la calidad se pueden ver en este video.


Bueno, para empezar intentaremos controlar los puertos GPIO, por ejemplo, parpadear un LED a través de él. Para hacer esto, conecte el LED a través de una resistencia de 100-200 ohmios con el ánodo a la 5a salida del bloque U13 y el cátodo a la 13a salida del bloque U14 como en el diagrama


o como lo hice


. Por defecto, el sistema tiene un nombre de usuario y contraseña de chip, solo necesita averiguar la dirección IP del dispositivo.
ssh chip@192.168.1.109

El controlador PCF8574A es responsable de controlar los puertos de entrada / salida. Se gestiona mediante manipulaciones con los archivos / sys / class / gpio / gpio408, cuyo acceso solo es posible desde debajo de la raíz, por lo que primero debe cambiar a él
su

Consideremos dos métodos de control, a través de la consola y usando un programa en C. Entonces, parpadeamos el LED de la consola. Vaya al directorio / sys / class / gpio
cd /sys/class/gpio

Active GPIO y habilite la operación del puerto en la salida
echo 408 > export 
echo out > gpio408/direction

Ahora podemos establecer el valor en el puerto escribiendo valores en gpio408 / value
echo 1 > gpio408/value   #  
echo 0 > gpio408/value   #  

Al finalizar, inolvidable desactivar el trabajo con GPIO
echo in > gpio408/direction
echo 408 > unexport

Y ahora todo es igual, pero en lenguaje C. Cree el directorio de proyectos en el directorio de inicio y parpadee en él.
cd ~/
mkdir projects
cd projects
mkdir blink
cd blink

Ejecute el editor de nano texto y cree un nuevo archivo (ctrl + o) con el nombre main.c, es decir obtenga el resaltado de sintaxis de inmediato.
nano

Y, de hecho, la lista del programa
#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;
}

Luego, compila y ejecuta como root
gcc main.c -o blink
./blink

Esto completa la pequeña revisión de la pequeña computadora, aunque todavía tiene una gran cantidad de posibilidades. Con sus capacidades y un precio tan bajo, un competidor sólido para la Raspberry Pi

Source: https://habr.com/ru/post/es390917/


All Articles