芯片-$ 9 Raspberry Pi Killer

图片
一台9美元的Linux计算机如何在kickstarter上筹集了超过200万美元的信息已经在Geektimes上流传了在筹款时,我也支持该项目,而前几天,我的设备副本也寄给了我

该计算机在ARM体系结构上配备了Allwinner R8处理器,频率为1 GHz,512 MB RAM,4 GB内部闪存,还具有内置的Wi-Fi,支持b / g / n标准和板载蓝牙4.0。这里的接口包括一个USB端口,一个用于连接电视或任何支持复合视频输入的显示器的复合AV输出,用于CHIP本身的电源和固件的微型USB,用于连接外部电池的连接器以及带有GPIO端口的焊盘。但是,使用后者,您可以连接其他的HDMI或VGA适配器,分别以15美元和10美元的价格单独购买。
图片图片
还有一个PocketC.HIP扩展,通过连接电池和带显示器的键盘,您可以使微型计算机完全移动。
图片

该设备装在一个纸质信封中,里面装有一个装有迷你计算机的简单方形纸箱


,下面是盒子的内容,


我的副本配有粉红色的迷人AV电缆


,后面还有一个半透明的机箱,覆盖处理器。


所有这些都可以在Linux Debian作为操作系统的修改下进行,我注意到总体性能不是很好。蓝牙和Wi-Fi完美配合,iMac的无线键盘和鼠标连接正常,并已连接到Internet。借助USB,也没有问题,确定了闪存驱动器,鼠标以及无线Logitech F710游戏手柄的固定棒,并且工作正常。顺便说一下,关于游戏,我试图将其变成游戏平台的微型模拟器,安装了支持许多旧游戏系统的mednafen模拟器,并从中收集了mednaffe GUI 。可以在此视频中看到性能和质量。


好吧,对于初学者来说,我们将尝试控制GPIO端口,例如,使LED闪烁。为此,请通过一个100-200 Ohm电阻器将LED的阳极连接到U13模块的第5个输出,将阴极连接到U14模块的第13个输出(如图所示)





所有其他操作都可以直接在设备上执行,也可以通过ssh连接到设备远程进行。默认情况下,系统具有芯片的用户名和密码,您只需要查找设备的IP地址即可。
ssh chip@192.168.1.109

PCF8574A控制器负责控制输入/输出端口。它是通过/ sys / class / gpio / gpio408文件的操作来控制的,只能从根目录下访问该文件,因此您需要先切换到它
su

让我们考虑通过控制台和使用C程序的两种控制方法。因此,我们使控制台上的LED闪烁。转到/ 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

现在一切都一样,只是使用C语言。在主目录中创建项目目录,并在其中闪烁。
cd ~/
mkdir projects
cd projects
mkdir blink
cd blink

运行nano文本编辑器并创建一个名为main.c的新文件(ctrl + o),即 立即获得语法高亮显示。
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;
}

接下来,编译并以root身份运行
gcc main.c -o blink
./blink

尽管仍然有很多可能性,这完成了对小型计算机的简短回顾。凭借其强大的功能和如此低的价格,它最终成为Raspberry Pi的强大竞争对手

Source: https://habr.com/ru/post/zh-CN390917/


All Articles