DesignSpark Electrical Logolinkedin
菜单 搜寻
提问问题

Latte Panda—拥有小身材的强大计算机

也许这听上去像是一款你最喜欢的咖啡店即将推出的饮品,但事实上它是一块超棒的,小小的,集成了Intel自动计算机与Arduino系统的单板。

 

这是一款Arduino、计算机还是两者的结合?

LattePanda(124-4684) 是一块集成了Win10电脑系统和Arduino兼容内核的单板,比树莓派的尺寸稍微大一点。很显然我们不能忽视LattePanda和树莓派的相似点,的确,两者所针对的市场是类似的,但是“口味”却不同。不像树莓派采用的是Linux系统,LattePanda采用的是Win10操作系统。

这块板子使用了强大的1.8GHz Cherry Trail Intel Atom CPU (Z8300) 来提供一个超棒的Windows桌面体验。不采用Intel Atom处理器,I/O端口是由另一个微处理器控制的。然而,当应用的要求较高时,这个微处理器也可以再编程来卸载Atmo处理器。从性能上来讲,Atom Processor并不像Atom CPU那样,它有时候会出现负载的情况,它的规格更类似于那些现代上网本上的处理器。这些规格是根据现代上网本的计算标准来的,Atom CPU在这方面是行家所以可以在大部分情况下运行Win10的应用软件。以下是一些背景数据:CPU/GPU单板combo口使得CPU和3D呈现性能与你的2009年的中端电脑相比,水平相当甚至更好,而且大约是树莓派性能的八倍。

 

Windows 10

LattePanda(124-4684) 现在有两种登陆选项,分为是使用或不使用Windows许可证。比起无许可和单独许可版本,许可证版本显然更有价值。无许可证选项是为那些想使用不同的操作系统或已经有了定点许可证的人设计的。而这个差价也比单独买一个win10许可证要来的便宜得多,所以显然预定一款预设许可证的版本是很明智的。

 

为什么采用 Arduino?

使用Arduino后,LattePanda就有了两方面的优势:一个排定的windows操作系统和一个确定的Arduino协同处理器。那些尝试过用Linux或Windows系统来进行实时确定操作的人肯定会告诉你它们的操作体验并不好。一个像Linux或者Windows这样高级的操作系统是以时序安排为基准的,当我们要设置通用I/O端口为高电平时,系统会把这个任务列入列表。一切都看起来十分完美,那么这项任务会在什么时候执行呢?这取决于很多因素,而往往这些因素都会附带着“一段时间后”。这个时候Arduino就体现出它的优势了。它的结构更简单,而且它是以线性方式来运行代码的,这样的特性决定了它采用的是更确定性的操作。另外,Arduino搭载了模拟输入和硬件模块(I2C,计时器等)。一个例子是,在I2C的slave模式中,平台是无法来控制计时的。那么采用了一个I2C硬件设备就意味着一个更可靠的操作系统,因为软件不再需要poll输入和输出,硬件会把这部分内容都完成的。

Arduino是按照StandardFirmata的绘制模式(sketch)来预编程的,这是一种针对计算机操作的很通用的Arduino绘制模式。它通过串行端口为Arduino硬件提供了一个界面,同时这也是一个控制通用I/O或外部设备简单又有效的方法。给Arduino预编程的步骤就和平时一样,点击选择设备并上传就可以了。

附件

除了LattePanda单板(124-4684),我们同时也订购了一些附件来使整个开发过程更简单,外观更好看:

塑料外壳和风扇(126-3112)

TFT液晶显示屏(126-3116)

传感器套件(126-3114)

 

亚克力塑料外壳

这款塑料外壳是由激光切割而成的,同时也有着衬底材料。在我们把一个个小部分从支撑板上取下来之后,我们可能要花费一些时间把衬底材料撕掉。先见之明是在拼装之前就把它先撕掉。在撕掉衬底材料之后,外壳就可以很好地组装在一起了,并且搭完之后会十分牢固。呈现在我们面前的就是一个被保护得很好的LattePanda和一叠衬底。

7英寸的IPS显示屏

我们选择使用TFT显示屏来搭配LattePanda。这块显示屏在脱机模式下提供了可替换或者额外的高清镜像端口。对于一个很小的显示屏来说,这样的呈像是十分惊艳的。如果再加上一个鼠标和键盘的话,LattePanda就可以成为一个搭载了7英寸显示屏的迷你计算机了,一个很棒的自主开发平台!

目前来说还没有展示台,所以我们用自己的Ultimaker2 3D打印机打印了一个,感谢 Wide on thingieverse 提供的3D文件。

 

重力传感器套组

最后我们还订购了重力系列传感器套组。这个套组有着14个可以直接插进LattePanda的传感器单板,很好地解决了需要使用焊接或者面包板建模的问题。这个套组包含了一下几样东西:三个LED,两个按钮,一个火焰传感器,光度传感器,电位计,气体传感器(MQ2可燃气体/烟雾),热释电红外传感器,温度传感器,两个碰撞传感器(配有停止开关)和一个10A的继电器模块。这个套组可能没有包含每一项应用的传感器但是在矩阵设备的快速设置中还是很有用的。

一个十五分钟的实例

在安装好LCD,打开LattePanda后,我们可以马上看到Windows登陆界面。使用LattePanda账号登陆后我们就能看到win10的桌面了,上面有一些应用图标,其中最显眼的是有着正确库函数的Arduino预安装版本。

C#代码

LattePanda中有许多自带的编程语言,这些都列在了LattePanda的网站中这里。我们这次选择使用C#因为它相对来说比较简单。下面的C#代码是我们将要运行的闪烁LED的代码。C#是一种十分简单但是强大的编程语言。相比C++或者Java来说,它更易上手。除此之外,它也可以与Microsoft.NET生态系统高度契合,使用户可以通过最少的工作来实现最大的功能。

Visual studio 集成

为了使用Visual Studio这个实例,我们可以通过C#.NET链接上Wifi并下载Visual Studio的软件。这无疑是最耗时的一部分因为我们要安装的软件很大。Arduino已经预先编程好了所以不需要进一步的调试了。

跟着下面这个LattePanda提供的教程我们可以很快实现闪烁LED功能。这个需要我们改变一下通用I/O端口使得它可以与插入的LED模块匹配。

解读以下代码:

首先说明了所需要的库函数,然后我们创建了一个叫做Arduino的对象,这是一个Firmata代码的例子,并且会向我们的Arduino板传输指令。通过这个对象,我们设置了通用I/O端口(10口为输出端),并且每1秒改变一次LED的状态。你看!一个闪烁的LED就完成了,相比一些更大的应用,这只是一个小小的开始,但是当我们了解它如何扩展后,我们很快就可以完成一个全功能的应用了!

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using LattePanda.Firmata;
namespace blinkYourBoard//project name
{
	class Program
	{
		//create an instance and initialize with the default parameters
		static Arduino arduino = new Arduino();
		
		static void Main(string[] args)
		{
			//Set the digital pin 10 as output this is where we connected the LED module
			arduino.pinMode(10, Arduino.OUTPUT);
	
			while (true)
			{
				// ==== set the led on or off
				arduino.digitalWrite(10, Arduino.HIGH); //set the LED on
				Thread.Sleep(1000); //delay a second
				arduino.digitalWrite(10, Arduino.LOW); //set the LED off
				Thread.Sleep(1000); //delay a second
			}
		}
	}
} 

总而言之,这是一个十分强大的开发平台。通过这个小小的微型计算机可以完成很多工作,所以是时候复习一下C#的知识(或者其他语言)并开始编程了。

 

 

Karl is a design engineer with over a decade of experience in high speed digital design and technical project leadership in the commercial electronics sector.

14 Jul 2017, 12:06