linux中国_ 发布的文章

许多Arduino的项目都是基于两个简单的程序。

能电脑所不能的单片机,这就是Arduino。

我们每天使用的计算机是强大的,但它们根本不了解身边发生了什么事。比如说你的笔记本电脑也不能感到光或水。另外,Arduino对外专门设计成键控的。它有一个用于简化传感器通信的输入、输出板子。

Arduino是由Massimo Banzi和他的意大利搭档Ivrea开发的,并用Ivrea——他最喜欢的酒吧命名。Banzi希望他的设计课程的学生们有一个原型的硬件的廉价,容易的解决方案。自2005年Arduino的发布,它已经从一个教学工具发展成为世界各地制造商的DIY项目。现在有了多模型——更先进的Arduino Due,大功率,微纳米。

无论你购买哪个Arduino模型,当你用它来做“互联网”项目时,单片机的实用性便体现出来了——Arduino可以很容易让你连接到真实世界,云端,或两者。本书中,我们将重点介绍两个超基础项目以便展示Arduino可以多简单。

开始使用Arduino

在我们能够完全了解Arduino是什么之前,知道它不是什么是很重要的。Arduino不是电脑(跟卡片电脑Raspberry Pi不一样)。它不能被独立编程,需要被插入到计算机中去。它不是特别强大,Arduino Uno只有32 KB的内存 ,而苹果笔记本却平均有8G内存。

所以为了使用Arduino,你不能只买这个单片机。对于以下的项目,你需要的是:

硬件

  • Arduino Uno. “Uno”在意大利语中是一的意思,但这并不是有史以来第一个Arduino,只是最基本的Arduino单片机的最新版本。这些项目可以工作在任何一个型号上,但这里我用的是这个型号。
  • B型USB线。我已经很多年没见过这些旧式的USB端口了,但你可能会在旧的电子设备上用过他们。他们的成本约5-10美元 (译注:就是能连接题图的板子上的那个大大的USB口的线)。
  • LED灯。可以直接粘在Arduino上的一个引脚上的小灯;这些往往是相当便宜的

软件

  • Arduino IDE,即“集成开发环境”,是一个免费开源软件,用于开发“sketches”,也就是Arduino用户所说的程序。

当你第一次打开Arduino IDE,你需要建立软件所使用的端口,它用于控制Arduino如何工作,点击“工具”——>“串口”来建立。

  • OS X上,Uno串口的设备名叫做“/dev/tty.usbmodem”,但其他类型的Arduino板可能不同。我的是“/dev/tty.usbmodem1421”。
  • Windows,串口是COM3或更高端口,因为COM1和COM2通常保留给其他硬件。为确定端口号,你可以拔掉Arduino并重新打开IDE菜单。哪个口子不再出现哪个就是你的Arduino。

一般来说,你不用担心直接拔出你的Arduino电路板会有什么问题。我们知道功能齐全的电脑不应该这样做,包括Raspberry Pi,因为他们可以在后台运行一个重要的操作系统任务。但是Arduino只是一个单片机,除非你主动让它写内存,否则它肯定是不会的。

Arduino 硬件初步: 闪烁一个LED

在这第一个项目中,我们将概述Arduino产生物理输出的最基本方式,在这个实例中,闪烁一个LED灯。

我们要去写一个非常简单的程序使得LED频闪——或者是当我自豪地向他展现了我的作品时,我的朋友明智的告诉我,“一点小成果”。本程序是基于开源项目Blink sketch,它可以在Arduino的官网找到。

首先,设置硬件,将LED的两个脚分别插到到Arduino的公共地GND和引脚13上。

注意:如果你准备将一个LED插到一个打开电源的Arduino板子上较长时间(比如超过了这个项目的时间),安全的做法是也接一个220欧姆的电阻。这里有一个你也许需要的接线图,来自Arduino官网。

一个叉略短于另外一个叉——短的这个是负极头,因此,这个接“地”,即GND输入/输出。

注意短的接GND.

现在让我们开始写程序。首先,让我们给个程序的名字。Arduino会忽略行内双斜杠后边的内容,所以这是为自己写注释的好方法:

// 程序 1: 使一个LED闪烁开和关

当硬件工作时,我们需要告诉Arduino在它的14根不同的输入/输出引脚中哪儿会有信号。在这种情况下,我们固定13引脚的LED。这是我们的如何命名固定在引脚13的LED,其中“LED”只是我给的变量名:

int LED = 13;

每一个Arduino程序由两部分组成:void setup() 和 void loop()。这是能够运行的最小的Arduino程序。

void setup()中, 我们告诉Arduino初始化引脚为输出:

void setup() { 
  pinMode(LED, OUTPUT);
} 

void loop()中,我们告诉Arduino“写”一个值到引脚13中。因为我想让它闪烁,在每个循环中我们要使它写一个序列的四个不同命令。如“loop”一词的意思,直到把Arduino关掉前,我们希望它不断执行。

在下面的代码中,LED代表了我们之前分配的那个变量。”HIGH”告诉Arduino给LED提供五伏的电源,而“LOW”提供零伏。在闪烁时,使得它延迟“1000”毫秒每一整秒:

void loop() {
  digitalWrite(LED, HIGH);  
  delay(1000);              
  digitalWrite(LED, LOW);    
  delay(1000);  
} 

当把它们放在一起时,整个程序如下(再次声明,Arduino忽略行内双斜杠后边的内容,所以那只是你自己的注释):

// 程序 1: 使一个LED闪烁开和关
int led = 13; // name the LED in pin 13
void setup() {
  pinMode(LED, OUTPUT); // tell Arduino the pin in question is an output
}
void loop() {
  digitalWrite(LED, HIGH);     // deliver 5V to LED
  delay(1000);                     // wait a second
  digitalWrite(LED, LOW);      // deliver 0V to LED 
  delay(1000);                     // wait a second
}

点击checkmark来验证你的代码是没有错误的,然后按play键。如果你的Arduino已经连接,它应该开始运行你的闪烁程序了。

Arduino 软件程序: 打印到电脑上

现在让我们来做一个控制开关并试着演示Arduino是如何产生数字输出的最基本项目。

我们将要设置Arduino “打印”,或是在您的计算机屏幕上显示信息。这个程序基于Paul Bianchi的Arduino printing tutorial

在这个实例中没有硬件,这样我们就可以直接跳到程序部分。再说一次,程序分为两个部分: void setup()void loop()

void setup()中,我们要打开一个Arduino和计算机之间通信的线路,指定速率是9600b/s。如果你使用另一个速率,你可能会在计算机上得到乱码而不是文字。

void setup() { 
  Serial.begin(9600); 
}

void loop() 中,这部分很像我们的一个LED程序。我们要给它两条独立的指令,告诉它在他们之间每一整秒中断。Println是Arduino输出到你的电脑显示的命令。注意"Println"中的"l"的是小写的"L",而不是大写的"i"!

void loop() { 
  Serial.println(“hello”);
  delay(1000);
  Serial.println(“world.”);
  delay(1000);
}

将标题和注释等放到一起,如下:

// 程序 2: 使Arduino打印 “Hello World”到电脑上
void setup() {
  Serial.begin(9600); // open a 9600 baud communication line to computer
}
void loop() {
  Serial.println(“Hello”);        // write the word “Hello”
  delay(1000);                    // wait a second
  Serial.println(“World”);      // write the word “World”
  delay(1000);                   // wait a second
}

验证你的代码并运行。什么都不会显示,直到你点击Arduino IDE窗口右上角的“Serial Monitor”。你应该看到一个不停输出的“Hello World”,一遍又一遍,直到你拔掉Arduino。你会看到它并不完美:我总是得到一些乱码,但很快它自己就好了。

这两个Arduino项目都非常基本,但是通过执行他们你已经开始看到,可以与传感器通信并写结果到您的计算机的Arduino的潜力所在。如果你把这两个项目整合——例如,你可以连接一个温度计到你的Arduino,并告诉它将温度写到你的笔记本电脑,你会很快实现Arduino的可能性几乎是无止境的。


via: http://readwrite.com/2014/04/21/easy-arduino-projects-basics-tutorials-diy-hardware#feed=/hack

译者:tenght 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

当你要监视一台Linux机器时,你会有很多的选择。虽然现在有很多产品质量监控方案(比如 Nagios、 Zabbix、 Zenoss),它们拥有华丽的UI,可扩展监控,易于理解的报告等等,这些方案对于大多数终端用户都太过于强大了。如果你只需检查Linux服务器或桌面的基本状态(比如,CPU负载、内存使用、活跃进程),就请考虑一下linux-dash

linux-dash是一款面向Linux机器的基于web的轻量级监控面板,可以实时显示不同的系统属性,比如CPU负载、内存使用、磁盘使用、网络速度、网络连接、上下行带宽、登录用户、运行中的进程等等。linux-dash没有后端数据库库来存储长期统计。在任何已有的web服务器(如Apache、Nginx)上运行linux-dash,你就可以用了。这是一个快速又简单的方法来对个人项目进行远程监控。

在这篇教程中,我会描述如何在Linux的Nginx web服务器上设置linux-dash。这里用Nginx,而不是Apache,是因为它更轻量。

在Debian、Ubuntu或者Linux Mint上设置linux-dash

首先,安装带php-fpm的Nginx web服务器。

$ sudo apt-get install git nginx php5-json php5-fpm php5-curl

为linux-dash创建如下Nginx配置文件/etc/nginx/conf.d/linuxdash.conf。 本例中,我们使用8080端口。

$ sudo vi /etc/nginx/conf.d/linuxdash.conf 

server {
    server_name     $domain_name;
    listen          8080;
    root            /var/www;
    index           index.html index.php;
    access_log      /var/log/nginx/access.log;
    error_log       /var/log/nginx/error.log;

    location ~* \.(?:xml|ogg|mp3|mp4|ogv|svg|svgz|eot|otf|woff|ttf|css|js|jpg|jpeg|gif|png|ico)$ {
            try_files $uri =404;
            expires max;
            access_log off;
            add_header Pragma public;
            add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }

    location /linux-dash {
        index index.html index.php;
    }

    # PHP-FPM via sockets
    location ~ \.php(/|$) {
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_split_path_info ^(.+?\.php)(/.*)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            if (!-f $document_root$fastcgi_script_name) {
                    return 404;
            }
            try_files $uri $uri/ /index.php?$args;
            include fastcgi_params;
    }
}

禁止默认站点配置。

$ sudo rm /etc/nginx/sites-enabled/default

编辑/etc/php5/fpm/pool.d/www.conf来配置php-fpm。确保按如下编辑"user", "group" 和 "listen"指令。你可以不改变剩下的配置。

$ sudo vi /etc/php5/fpm/pool.d/www.conf 

user = www-data
group = www-data
listen = /var/run/php5-fpm.sock

开始下载并安装linux-dash。

$ git clone https://github.com/afaqurk/linux-dash.git
$ sudo cp -r linux-dash/ /var/www/
$ sudo chown -R www-data:www-data /var/www

重启Nginx与php-fpm来完成安装。

$ sudo service php5-fpm restart
$ sudo service nginx restart 

在CentOS、Fedora、RHEL上设置linux-dash

在CentOS上,需要首先启用EPEL仓库

安装Nginx与php-fpm组件。

$ sudo yum install git nginx php-common php-fpm 

为linux-dash程序配置Nginx,如下创建/etc/nginx/conf.d/linuxdash.conf

$ sudo vi /etc/nginx/conf.d/linuxdash.conf 

server {
    server_name     $domain_name;
    listen          8080;
    root            /var/www;
    index           index.html index.php;
    access_log      /var/log/nginx/access.log;
    error_log       /var/log/nginx/error.log;

    location ~* \.(?:xml|ogg|mp3|mp4|ogv|svg|svgz|eot|otf|woff|ttf|css|js|jpg|jpeg|gif|png|ico)$ {
            try_files $uri =404;
            expires max;
            access_log off;
            add_header Pragma public;
            add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }

    location /linux-dash {
        index index.html index.php;
    }

    # PHP-FPM via sockets
    location ~ \.php(/|$) {
            fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
            fastcgi_split_path_info ^(.+?\.php)(/.*)$;
            fastcgi_pass unix:/var/run/php-fpm.sock;
            if (!-f $document_root$fastcgi_script_name) {
                    return 404;
            }
            try_files $uri $uri/ /index.php?$args;
            include fastcgi_params;
    }
}

接下来,编辑/etc/php-fpm.d/www.conf来配置php-fpm。在这个文件中,确保按如下编辑"user", "group" 和 "listen"字段。你可以不改变剩下的配置。

$ sudo vi /etc/php-fpm.d/www.conf 
listen = /var/run/php-fpm.sock
user = nginx
group = nginx

在/var/wwwx下载并安装linux-dash。

$ git clone https://github.com/afaqurk/linux-dash.git
$ sudo cp -r linux-dash/ /var/www/
$ sudo chown -R nginx:nginx /var/www 

最后,重启Nginx和php-fpm,并设置开机自启。

$ sudo service php-fpm restart
$ sudo service nginx restart
$ sudo chkconfig nginx on
$ sudo chkconfig php-fpm on 

在本例中,我们已经配置linux-dash使用TCP端口8080。所以确保防火墙没有阻止TCP 8080端口。

用linux-dash监视Linux机器

要在web浏览器上访问linux-dash,只需在web浏览器中输入http://:8080/linux-dash/

下面是linux-dash的截图。web面板包含了几个小部件,每个都会显示特性的系统参数。你可以通过重安排并且/或者关闭一些小部件来自定义web面板的外观。这里是一个linux-dash创建者的演示站点。

via: http://xmodulo.com/2014/04/monitor-linux-server-desktop-remotely-web-browser.html

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

在Windows中观看Netflix是很容易的。你可以使用网络浏览器或者桌面程序,但这在linux中并不同。这在linux中默认并不可行,这是因为Netflix需要Microsoft Silverlight,同时由于这是"微软"的,很明显这无法在Linux上使用。所以在Linux上就没法使用Netflix了么?当然有办法。本篇中我们就会看到如何在Ubuntu 14.04上观看Netflix(或许在老版本中如13.10和13.04等也可以)。

如何在Ubuntu 14.04 中观看Netflix:

我们需要用到Pipelight,一个通过Wine)来在Linux上支持Silverlight的项目。这个项目仍在beta状态,但是已经工作的很好了。让我们看看如何在Ubuntu 14.04上安装Pipelight。

在Ubuntu 14.04 上安装Pipelight

要感谢Pipelight团队的PPA,在Ubuntu14.04上安装Pipelight是很方便的。打开一个终端并且运行依次运行下面的命令:

sudo apt-add-repository ppa:pipelight/stable
sudo apt-get update
sudo apt-get install pipelight-multi

安装包大概有450MB左右因此如果你的网络连接很慢的话可能会花费一些时间。同样,Pipelight在beta状态,因此到这里检查一下安装指令(以防将来有什么变化)。

启用 Sliverlight 来播放 Netflix

通常Pipelight已经默认启用了silverlight插件,但是为了万无一失,使用下面的命令启用Silverlight:

sudo pipelight-plugin --enable silverlight

这里要接受两个条件,一旦你做了,它会花费一些时间来安装Silverlight。

在 Ubuntu 14.04 中安装Netflix桌面应用

此时你应该可以在web浏览器中使用Netflix了。但是Pipelight项目还提供了更多。刚才我们使用的PPA同样还有对于Ubuntu的Netflix的桌面应用,使用下面的命令:

sudo apt-get install netflix-desktop

安装完成后,你可以在Unity Dash中找到Netflix。

At first run, it will install some Wine related stuff. Let it do that. Afterwards, it should run fine: 第一次启动时,它会安装Wine相关的一些东西。让它自己做好了。在这之后,它就会正常运行了:

在USA之外的Ubuntu上使用Netflix :

你注意到上面的Netflix桌面应用了么?它说Netflix不支持我所在的国家地区(也就是说,法国)。我不是Netflix的粉丝,不过我写了一篇如何在美国之外轻松观看Netflix。如果你想要在美国之外观看Netflix,你需要改变DNS设置才行。

文中提到的Tunlr是一个已经关闭的免费服务。作为替代,我还使用 Unlocator,在beta状态下还是免费的。很容易使用且体验良好。Unlocator现在不再免费了,但是如果你愿意每月花$5,Unlocator是一个很棒的DNS解锁服务器。


via: http://itsfoss.com/netflix-ubuntu-1404-desktop-app/

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

安装Ubuntu的第一步是制作一个随身碟。如果你正在使用Windows XP,7,8 或者 8.1,你可以用Universal USB Installer去创建一个Live USB。这是我最喜欢用的方法,而且它很容易使用。让我们看看如何很容易地在Windows 8 里制作一个Ubuntu的Live USB 。

在Windows里制作live USB的步骤:

第一步:下载Ubuntu ISO镜像

Ubuntu网站下载你首选Ubuntu版本的ISO镜像。

第二步:下载Universal USB Installer

如果你曾经下载了Ubuntu 14.04的ISO镜像,到这个页面下载最新版本的Universal USB Installer。

第三部:制作live USB

把U盘插在电脑上并运行Universal USB Installer。选择Linux类型为Ubuntu,浏览并选择下载的ISO镜像的路径,之后选择U盘。不要忘记在format(格式化)选项上打上勾。

会弹出一个警告,点击Yes.

等待一段时间,等待制作完成。你也可以把它放在后台运行。

也就是说,制作live USB需要几分钟时间。

一旦live USB制作完成,说明你可以安装Ubuntu 14.04了。希望这个教程能帮助你在Windows中轻松制作Ubuntu的live USB。


via: http://itsfoss.com/create-live-usb-of-ubuntu-in-windows/

译者:linuhap 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

接下来的教程将指导所有 Linux 用户怎么简单的将漂亮的字体添加到自己的操作系统。我们已经为 Debian、Arch Linux、openSUSE、Slackware 和 Fedora 发行版编写了详细的介绍。

正如许多用户所知,几乎所有基于 Linux 的操作系统主要缺点就是默认选择的字体并不令终端用户满意,尤其是那些从 Windows 或者 Mac OS X 等操作系统迁移过来的用户。

除了使用自己的一套字体的Ubuntu,从一开始就看起来就相当漂亮,其它所有 Linux 发行版都有字体丑陋的缺点。正因如此,许多用户试图创建一种新的方法来增强文字在各个发行版中渲染效果。

这就是 Infinality 项目产生的原因,其主要目的是通过添加补丁来为使用任何基于 Linux 操作系统的用户提供最好的字体渲染效果。

Infinality for Arch Linux

  1. 将infinality-bundle,infinality-bundle-multilib (用于使用64位系统的用户)和infinality-bundle-fonts仓库添加到你的 /etc/pacman.conf文件中:
[infinality-bundle]
Server = http://bohoomil.com/repo/$arch

[infinality-bundle-multilib]
Server = http://bohoomil.com/repo/multilib/$arch

[infinality-bundle-fonts]
Server = http://bohoomil.com/repo/fonts
  1. 执行 sudo pacman -Syu 命令用来刷新仓库,然后运行
sudo pacman -S infinality-bundle infinality-bundle-multilib ibfonts-meta-extended (用于64位系统) 
sudo pacman -S infinality-bundle ibfonts-meta-extended (用于32位系统)
  1. 当被询问是否替换 fontconfig 软件包的 freetype2 时,回答YES。完成后重启你的计算机。

Infinality for Fedora

  1. 在终端窗口中执行如下命令
sudo rpm -Uvh http://www.infinality.net/fedora/linux/infinality-repo-1.0-1.noarch.rpm
sudo yum install freetype-infinality fontconfig-infinality
  1. 重启你的机器。

Infinality for openSUSE

  1. 添加 Infinality 官方仓库:
http://download.opensuse.org/repositories/home:/namtrac:/subpixel/openSUSE_13.1/

打开YaST中的库选项卡,选择namtrac:subpixel仓库,并打击“切换系统包的版本到这个仓库”。

  1. 标记 namtrac:subpixel 中所有还没有安装的包来进行安装,然后从 openSUSE 官方软件仓库中安装 fontconfig-infinality 包。
  2. 在字体设置选项里将 Subpixel Hinting 选择为“使用系统设置”,或者设置为带有微调的 RGB 顺序。重启你的系统。

Infinality for Slackware

详细的安装指南:http://someslack.wordpress.com/infinality-on-slackware/

Infinality for Debian

  1. 在终端中执行下面的命令(一个一个执行,每一行之后敲击回车):
echo “deb http://ppa.launchpad.net/no1wantdthisname/ppa/ubuntu raring main” | sudo tee /etc/apt/sources.list.d/infinality.list
echo “deb-src http://ppa.launchpad.net/no1wantdthisname/ppa/ubuntu raring main” | sudo tee -a /etc/apt/sources.list.d/infinality.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E985B27B
  1. 执行以下命令来升级你的系统并安装 Infinality 包:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fontconfig-infinality
  1. 重启你的计算机。

对于任何文中没有提到的其它 Linux 发行版,请使用官方的介绍:https://github.com/Infinality/fontconfig-infinality/tree/master/infinality。跟以往一样,当你使用本教程过程中遇到任何问题都可以在下面评论,不要犹豫。


via: http://news.softpedia.com/news/How-to-Add-Beautiful-Fonts-to-Any-Linux-Distribution-434835.shtml

译者:SCUSJS 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

这篇简短的教程将会演示如何在 Ubuntu 系统中安装 Oracle 公司最新发布的 Java JDK 8。这里使用的方法是教你如何从下载页面下载安装包,然后不使用外部的 PPA 或者第三方源代码在 Ubuntu 中安装。

这种方法不需要依赖于第三方的源仓库。你只需要从 Oracle 的官方下载页直接下载,然后安装就行。

JDK 8 是一个重要的发行版本,也加入了最新的叫做 Lambda 表达式的新语言功能,此功能可以“把函数用作方法参数,或者代码块当作日期数据使用”。

这一个版本也发布了一个新的 java.util.stream 包类集合,提供了基于流的 API,用来支持函数式操作的功能。

关于此次发布版本的更多信息,请访问它的发布主页 @ http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html

要下载和安装 Java JDK8,请访问下载页获得最新的发行版本。根据你机器的 Ubuntu 系统的情况可以选择下载 32 位或 64 位的发行版本。

这里是下载页面

在下载之前,您必须接受许可协议。

下载文件,保存。在 Ubuntu 系统中 Firefox 浏览器会默认保存到 ~/Downloads 目录下。

oracle-jdk8-ubuntu

第二步,打开终端运行如下命令来解压下载的文件。

tar -xvf ~/Downloads/jdk-8-linux-x64.tar.gz

然后运行如下的命令,在 /usr/lib 目录中创建一个为保存 Java JDK 8 文件的目录。

sudo mkdir -p /usr/lib/jvm/jdk1.8.0/

接下来运行如下命令把解压的 JDK 文件内容都移动到创建的目录中。

sudo mv jdk1.8.0/* /usr/lib/jvm/jdk1.8.0/

下一步,运行如下命令来配置 Java

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0/bin/java" 1

接下来,拷贝和粘贴下面这一行到终端执行,以启用 Javac 模块。

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0/bin/javac" 1

最后,拷贝和粘贴下面一行到终端以完成最终的安装。

sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0/bin/javaws" 1

要验证下 Java 是否已经完全安装的话,可以运行下面的命令来测试。

java –version 

祝你玩的开心~


via: http://www.liberiangeek.net/2014/03/daily-ubuntu-tips-manually-install-oracle-java-jdk-8-in-ubuntu/

译者:runningwater 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出