树莓派完美运行安卓牛轧糖,DIY一部手机吧

20170104150135787-0

GitHub(世界最大程序员社区) 网红 Peter Yoon 已经成功地将 Android 7.0 Nougat 刷入了 树莓派3(Raspberry Pi 3)了!一起来看看树莓派运行的 Android 7.0 的样子吧:

20170104150135832-0

屏幕正脸

20170104150135723-0

下拉通知栏

20170104150135512-0

设置选项

20170104150135381-0

Peter Yoon常用的 ID 是 pero-hd,是一个超级树莓派达人,曾经也成功地给树莓派灌入过 Android TV 的 ROM,他的 GitHub 地址是 https://github.com/peyo-hd 有兴趣的同学也可以一边吃瓜一边围观一下。不过,对于真想上手的同学,需要注意Google 也从未正式发不过针对树莓派的 Android 版本,所以这个 Android 7.0 也只是给大家尝鲜,如果又要用树莓派,又希望稳定性的话,那么可能还是比较推荐多年前的 Android 2.3 Gingerbread 老古董了。

本文来自:树莓派实验室
链接地址:http://shumeipai.nxez.com/2017/01/04/raspberry-pi-runs-perfectly-with-android-nougat.html

黑客演示如何用5美元树莓派攻破一台有密码锁的计算机

 

近日,知名开发者兼黑客Samy Kamkar演示了一项技术。通过5美元的树莓派Zero和某些定制软件,几乎任何人都可以拿它来攻击一台上了密码锁的计算机。在接入电脑之后,这套被称作PoisonTap的设备,会将自己模拟成一个USB-以太网适配器。计算机会被它欺骗,以为有线网络连接已经建立,然后向其发送DCHP请求,以获取IP地址等信息。

Kamkar解释称,尽管它看起来像是个二级网络接口,但PoisonTap会对DHCP做手脚,让机器以为网络已联通,然后通过它(而不是真实的网络连接)来传递所有互联网流量。

cc6691ee52ae86f

视频需要翻墙: YouTube

具体项目可看:PoisonTap – exploiting locked machines w_Raspberry Pi Zero

虽然这种攻击需要直接接触到一台计算机才能实施,但我们还是可以降低它的威胁,比如尽量使用Https加密连接访问网站,或者更暴力一些 —— 堵上所有用不到的USB接口。

[编译自:TechSpot , 来源:Samy Kamkar]

SexyCyborg的最新力作:3D打印化妆盒黑客套件

 

最近,中国女创客SexyCyborg又创造了一件新作品——3D打印Pi Palette,又名黑客的化妆盒。

Pi Palette是一个有趣的项目,其灵感似乎来自隐蔽的女间谍设备。乍一看,这个盒子类似于一个大一点的化妆盒,上面有一面镜子,下面有一个化妆品托盘。然而,当把托盘移开时,一套黑客工具就显现了出来。

2

Pi Palette由一个3D打印盒子和一个树莓派3单板计算机组成。毫无疑问的是,这套黑客工具非常显眼,并不适合做一个真正的间谍设备。但不可否认的是,它确实十分有趣。事实上,SexyCyborg已经明确指出,3D打印黑客化妆盒并不是一个严肃的信息安全工具。

黑客化妆盒里的树莓派3单板计算机本身运行Kali Linux,但也与Windows 10兼容。

3

4

5

据天工社了解,Pi Palette的其他组件包括一个5000mah的电池,一个RLT3070 WiFi适配器(可换成一个软件无线电),一个5英寸、带触摸屏功能的800×480“智能镜”显示器,一个无线(或有线)键盘,一个化妆品托盘。您可以在SexyCyborg的Thingiverse页面上下载该设备所有的3D打印文件。

3D打印部件(化妆盒,铰链,充电底座,化妆品托盘等)的打印材料应为PLA,打印层厚为0.2mm。虽然在资深3D打印玩家眼中看来,这些打印件都比较初级,但SexyCyborg解释说她自己的CAD水平相对有限,她希望任何水平的创客都能成功复制她的作品。

6 7

能容纳真实的化妆品托盘的Pi Palette可以通过一个3D打印支架里的感应式充电器设置来无线充电。当然,要完成该设备必然涉及到一些接线和仔细的组装,为此,SexyCyborg制作了一个17分钟的视频来一步步地指导创客。

最后,为了炫耀她的新设备,SexyCyborg发布了一张特效照片。照片里,她手拿Pi Palette,身穿黑色皮夹克,身后的灯光经过了特效处理,看起来是不是很酷呢?

8

本文来自:天工社

树莓派显示器电源管理禁止屏幕休眠

下面我们介绍当需要用到树莓派的显示屏作为演示或监视器的时候,禁止长时间无响应屏幕休眠的方法。区分两种情况:

一、禁止屏幕在图形界面下休眠

在 /etc/profile.d 路径下新建一个文件,如Screen.sh,并将下面两条命令写入该文件,即可以实现永久禁用。

 

[bash]xsetdpms 0 0 0
xsets off[/bash]

12

 

更多相关设置示例:

指令 说明
xset s off 禁用屏幕保护
xset s 3600 3600 设置空闲时间为1小时
xset -dpms 关闭 DPMS
xset s off -dpms 禁用 DPMS 并阻止屏幕进入空闲
xset dpms force off 立即关闭屏幕
xset dpms force standby 强制屏幕进入待命状态
xset dpms force suspend 强制屏幕进入暂停状态

二、禁止屏幕在 Console 终端下休眠

执行下面的命令就可以解决这个问题。

[bash]setterm -blank 0[/bash]

重启后此命令会失效,所以需要装这个命令加入到启动脚本中,每次开机后自动启动。
Raspbian 和 Archlinux 在 /etc/bash.bashrc 文件中加入,CentOS 则是在/etc/bashrc加入:

[bash]setterm -blank 0[/bash]

更多相关设置:

[bash]setterm -blank [0-60|force|poke]
setterm -powersave [on|vsync|hsync|powerdown|off]
setterm -powerdown [0-60][/bash]

以上参数为0时表示禁用。例如下面的指令表示禁止屏幕进入保护和关闭状态

[bash]setterm -blank 0 -powerdown 0[/bash]

相关引用
https://wiki.archlinux.org/index.php/Display_Power_Management_Signaling

本文来自:树莓派实验室
链接地址:http://shumeipai.nxez.com/2016/12/24/display-power-management-signaling.html

教程2_按键控制流水灯

按键是最常见的输入设备之一,普通的按键内部有两个不接触的触片,当按键被外力按下后,两触片连接在一起,外力松开后又还原为断开状态,与其它元器件配合使用可实现很多的功能。它的操作直观有效,很多操作都需要通过按键来控制,几乎所有的电子设备都有保留按键的设计,下面一起来学习在树莓派上实现简单的按键操作。

实验原理

将按键连接树莓派,通过改变按键的开合状态来实现树莓派IO口电平的高低变化,在程序中检测按键所连接的IO口的电平,设置好检测到不同电平时各自的操作实现不同的效果。

实验内容

学习按键的使用

编写程序实现花样led

编写程序实现检测按键输入

实验元器件

树莓派及电源 x1

无线网卡 x1

面包板 x1

按键 x1

LED x3

电阻 x1

T型板及彩虹连接线(方便面包板连接使用)x1

  杜邦线 若干

以上器件可在树莓派创客社区淘宝直营店购买:https://52pi.taobao.com

实验步骤

一、连接线路

1

2

二 、编写程序

登陆树莓派后进入wiringPi目录,新建button.c编辑写入以下代码:

#include <wiringPi.h>

#define ButtonPin 0

int LedPin[3] = {12,13,14};

int main (void)

{

int x = 0;

wiringPiSetup ();

for (x = 0;x < 3;x ++)

{

pinMode (LedPin[x],OUTPUT);

}

pinMode (ButtonPin, INPUT);

pullUpDnControl (ButtonPin, PUD_UP);

while(1)

{

while(digitalRead (ButtonPin) == 0)

{

for(x = 0;x < 3;x ++)

{

digitalWrite (LedPin[x], HIGH) ;

}

delay (300) ;

for(x = 0;x < 3;x ++)

{

digitalWrite (LedPin[x], LOW) ;

}

delay (300) ;

}

digitalWrite (LedPin[0], HIGH) ;

delay (300);

digitalWrite (LedPin[0], LOW) ;

digitalWrite (LedPin[1], HIGH) ;

delay (300);

digitalWrite (LedPin[1], LOW) ;

digitalWrite (LedPin[2], HIGH) ;

delay (300);

digitalWrite (LedPin[2], LOW) ;

}

return 0 ;

}

编写完代码保存退出。

3

再进行编译输出到button文件并运行,即可实现三个LED灯循环依次闪动,当长按下按键后,三个LED灯变为同时闪动效果。

教程1_点亮第一个led灯

学习模数电路,从点灯开始;

学习51单片机,从点灯开始;

学习stm32,从点灯开始;

学习DSP,从电灯开始;

学习FPGA,从点灯开始;

渐渐的,我们已经习惯了用点灯的方式去接触新的事物,不知不觉中,我们已经成为了人们口中常常提到的“一灯大师 ”。

今天,我们来学习树莓派的使用,依旧从点灯开始,用点灯的方式一步步点亮我们的世界。

 

实验原理

同过树莓派的IO口可以外接很多外设,如舵机、红外发送接收模块、继电器、步进电机、各类兼容传感器、屏幕等。通过这些外设可以制作很多有趣的设计,改善我们的生活方式提高我们的生活质量。

树莓派的IO口驱动能力是比较弱的,驱动电平为3.3V,高电平驱动比电平驱动能力稍弱些,但这也足够驱动led工作,为方便理解,以下实验以高电平驱动方式进行。IO口输出高电平,led灯亮,输出低电平则灭。

 

实验内容

  • 使用面包板和杜邦线连接电路
  • 通过ssh局域网无线连接树莓派
  • 使用wiringPi控制IO
  • 使用vim编辑器

 

实验元器件

  • 树莓派及电源 x1
  • 无线网卡 x1
  • 串口连接器 x1
  • 面包板 x1
  • Led灯 x1
  • 电阻220欧 x1
  • 杜邦线 若干

 

以上器件可在树莓派创客社区淘宝直营店购买:https://52pi.taobao.com

 


实验步骤

一、连接线路。

%e5%9b%be%e7%89%871%e5%9b%be%e7%89%872

实物图如下:

%e5%9b%be%e7%89%8711

二、通过ssh连接连接树莓派

通过上一课程的学习,已经知道如何通过串口连接树莓派进行联网,接下来学习如何在局域网中通过ssh无线网络连接树莓派,这样摆脱了接串口线的麻烦,方便很多。

1.首先通过串口连接上树莓派,登陆进入树莓派后输入 ifconfig 回车。可以查看到树莓派的ip地址。

%e5%9b%be%e7%89%874
2.电脑打开PuTTY软件,选择SSH模式,输入上面查看的ip地址,端口22,确认无误后点击Open,输入默认用户名密码,登陆完成。

%e5%9b%be%e7%89%875

%e5%9b%be%e7%89%876
三、使用vi编辑器编写控制代码及编译运行

1.登陆树莓派后,输入cd ./wiringPi 进入wiringPi目录,使用vi编辑器编辑c源文件,

输入vim.tiny blink.c,如目录下有blink.c文件打开编辑,若无则会新建一个打开编辑。

%e5%9b%be%e7%89%877

2.按i进入输入模式,输入C语言代码,如下是使GPIO17间隔500ms交替输出高低电平的代码。

%e5%9b%be%e7%89%878

对应各栏接口的标号,如以下程序使用的0即为树莓派的GPIO17接口也是物理接口的11接口。

#include <wiringPi.h>

int main (void)

{

wiringPiSetup () ;

pinMode (0, OUTPUT) ;

for (;;)

{

digitalWrite (0, HIGH) ; delay (500) ;

digitalWrite (0, LOW) ; delay (500) ;

}

return 0 ;

}

%e5%9b%be%e7%89%879

 

代码书写完毕后输入按esc退出编辑模式,再输入:wq进行保存退出

3.输入gcc –o blink blink.c -lwiringPi编译程序,

  • gcc是对c语言编译的声明,
  • -o blink是输出工程文件到blink文件(接下来的执行文件)
  • blink.c是刚刚编写的c语言程序
  • -lwiringPi是库的调用

输入sudo ./blink执行程序。(需要通过sudo命令获取权限)

%e5%9b%be%e7%89%8710

 

可以看到面包板上的led在闪烁,恭喜您已学会用树莓派成功点亮第一个LED灯。

%e5%9b%be%e7%89%873

使用LAKKA系统打造怀旧游戏机

之前就关注过很多怀旧游戏机的项目,但是苦于很多项目的复杂难度和硬件要求,一直没有动手,前几天逛到一个网站,发现这个项目,支持不少硬件平台,而且搭建也很简单。

下载镜像和烧写

进入官网,就可以Get Lakka,选择树莓派2或3,这两个其实是同一个系统镜像(同时可以看到这个项目真的支持很多硬件平台)。

 

2

 

下载完解压是一个镜像文件3

 

如果是windows系统,可以用Win32DiskImager来烧写sd卡,然后和往常一样,sd卡插入树莓派,hdmi连接到显示器,然后有音响的话,还能插上音响,插好手柄(大多数,最后通电,就能成功地打开Lakka系统了。

 

初次启动

 

4

 

第一次启动会出现上面的界面,然后会有大概30秒的时间来覆盖文件系统到整个sd卡并重启,重启成功就会有下面的画面。

 

5

 

开始游戏

 

Lakka支持很多很多模拟器,包括NES(红白机),GBA,雅塔礼等等,事先把游戏rom放到文件系统的roms文件中(windows系统可能需要linux虚拟机)。

 

  • 启动系统后,选择Load Core,确定游戏相应的模拟器型号;
  • 选择Load Content,浏览文件系统,确定想玩的游戏,就会开始相应的游戏;
  • 一时间就会会想起小时候玩小霸王的感觉了

 

6

 

坦克大战

 

7

 

超级马里奥

 

8

 

9

 

不知道叫什么的很老很老的游戏

 

10

 

雪人兄弟

 

11

 

12

 

成功的在实验室搭起了一个游戏机,其中为了有点怀旧的感觉。。刻意使用了实验室废弃的显示器(不然就用大电视机了)。。

 

教程0_树莓派系统及wiringPi的安装

认识树莓派

树莓派(Raspberry Pi)是一款基于Linux系统的只有信用卡大小的单板机电脑。具有电脑的所有基本功能,它是由英国的树莓派基金会所开发,目的是以低价硬件及自由软件刺激在学校的基本计算机科学教育。

树莓派自问世以后,被越来越多的人所追捧,国外的普及度已经相当高,但由于环境的差异和树莓派开发的难度限制,国内对用树莓派的人相对来说属于小众。这几年赶上国内智能硬件的热潮,arduino这种简单的编程方式被越来越多的人所接受,树莓派也被越来越多的人所了解。为减少树莓派爱好者的开发难度,本基础教程主要介绍在树莓派上使用与arduino编程相似的编程库wiringPi一步步熟悉树莓派的IO操作及linux的基本操作方法。

了解树莓派创客社区

树莓派创客社区是由一群热爱开源、热爱创造的小伙伴们组织的开源社区。旨在与大家分享开源硬件上的点点滴滴,也希望尽我们的微薄之力为广大开源硬件爱好者提供一些帮助。

社区网站:http://www.52pi.net

服务QQ群:233426487

淘宝官方直营店:https://52pi.taobao.com

实验内容

  1. 烧写系统镜像;

  2. 连接电脑串口调试;

  3. 配置wifi无线网络连接;

  4. 安装wiringPi插件;

准备工作

0.树莓派板子

基础实验,树莓派所有版本都可以完成,本教程使用的是树莓派B+版本。

1.树莓派系统镜像

可到树莓派官网:www.raspberrypi.org下载。

2.USBTTL模块 (可到https://52pi.taobao.com购买)

用于电脑和树莓派的连接,通过串口输入命令及代码,也可使用其它连接方式,如:SSH

3. Win32DiskImager软件

用于系统镜像的烧写,其它软件皆可,如:USB Image Tool

4.PuTTY软件

官网:putty.org

电脑与树莓派通信的输入输出串口监视软件,支持快捷键操作(如:Ctrl + c),其它软件也可以使用。

5.USB无线网卡(可到https://52pi.taobao.com购买)

用于联网下载wiringPi和后续的ssh连接树莓派使用。

6.WiringPI

WiringPi(官网: wiringpi.com)是应用于树莓派平台的GPIO控制库函数,WiringPi遵守GUN Lv3wiringPi使用C或者C++开发并且可以被其他语言包转,例如pythonruby或者PHP等。WiringPi中的函数类似于Arduinowiring系统,这使得熟悉arduino的用户使用wringPi更为方便。(树莓派联网后可通过命令下载安装)

7.microSD

用于烧写系统镜像,由于系统较大,尽量使用8GB以上的卡,高速卡更佳,树莓派系统都是放在在储存卡里的,类似于windows电脑的C盘。早期版本树莓派用的是SD卡,注意区分。

8.电源

为适用于多场景使用,建议购买5V 2A左右的电源,电源线为通用的microUSB线。

9.其它实验器件

可到树莓派创客社区https://52pi.taobao.com购买基础套件,包含所有基础实验用的元件,

如面包板、杜邦线、led灯、按键等。

实验步骤

一、烧写树莓派系统镜像

  1. 插入microSD卡到电脑上,打开Win32DiskImager软件,如下图:

1.注意选好盘符,可在电脑文件资源管理器中查看。

2.打开文件夹,选择镜像文件。

2) 选择好下载的镜像文件,点击(Write)进行烧写,如下图:

1.确认选择好的镜像文件版本。

2.点击Write)写入,弹出提醒对话框后点击(Yes)确认写入。

3) 等待系统镜像烧写完毕,会弹出烧写成功对话框,点击确认,系统镜像烧写完成。

二、开机登陆树莓派系统

1.插上烧写好镜像文件的microSD卡,插上USB无线网卡,连接好串口线,串口通信只需连接三根线,GND-GNDTX-RXRX-TX,如下图。

2.将USBTTL串口模块连接电脑,在电脑设备管理器中查看串口号(如:COM3)。

3.打开PuTTY软件,界面如下,先选择串口模式(Serial >> 选择对应的串口号(COM15 >> 选择正确的串口速率(Speed),linux的串口波特率默认都是115200bps树莓派系统也是linux内核,所以选用115200bps点击(Open)打开串口窗口,如下:

4.给树莓派插上电源供电开机,串口监视串口会输出系统开机信息,

输出显示(raspberrypi login:),输入用户名:pi ,输入密码(Password):raspberry 回车(输入密码时无显示,但是是有效的)。

显示输出如上pi@raspberrypi:~$ 开机完成。

配置树莓派连接wifi网络

1.使用wpa_cli命令行配置wifi无线网络

了解wpa_cli命令行

wpa_cli是命令行界面下的无线网连接工具。通过wpa_cli管理备选的网络列表。在备选网络中启用的网络,树莓派会自动试图连接。输入sudo wpa_cli启动wpa_cli的命令行界面(必须sudo提取权限)。常用的指令如下:

status:列出目前的联网状态。

list:列出所有备选网络。目前正连接到的网络会标[CURRENT],禁用的网络会标[DISABLE]

add_network:增加一个备选网络,输出新网络的号码(这个号码替代下文的[network_id])。注意新网络此时是禁用状态。

set_network [network_id] ssid “Your SSID”:设置无线网的名称(SSID)。

set_network [network_id] key_mgmt WPA-PSK:设置无线网的加密方式为WPA-PSK/WPA2-PSK

set_network [network_id] psk “Your Password”:设置无线网的PSK密码。

enable_network [network_id]:启用网络,启用后如果系统搜索到了这个网络,就会尝试连接。

disable_network [network_id]:禁用网络。

save_config:保存配置。

配置方式如下:

中途输出信息可无视,配置完成,输入Ctrl + c退出wpa_cli命令行。

退出后可输入ifconfig查看网络连接,也可以ping IP地址来测试网络是否连接。

四、通过网络使用GIT工具安装wiringPi

1.如果在你的平台上还没有安装GIT工具,可以输入以下命令安装:

sudo apt-get install git-core

若在这个过程中出现错误,请确认Raspbian版本是否为最新的,可以输入以下命令更新:

sudo apt-get update

sudo apt-get upgrade

安装完GIT工具后可通过GIT获得wiringPi的源代码

git clone git://git.drogon.net/wiringPi

若已经安装过wiringPi可输入以下命令更新。

cd wiringPi

git pull origin

进入wiringPi目录并安装wiringPi

cd wiringPi

./build

build脚本会帮助你编译和安装wiringPi

wiringPi安装完毕,基础实验准备工作已经完成,快快进入下一课程继续学习吧。

树莓派上编译畅玩雷神之锤

在树莓派上畅玩CS,感受上个世纪的FPS游戏

6

当时游戏的散弹枪画风

 

5

不输当下游戏的飞弹效果

 

4

还有激光型武器

 

 

3

选择角色的界面

需要的硬件:

树莓派2或B或B+或3
显示器
鼠标
键盘

2

官方有很详细的说明,具体命令如下。

 

  • 更新

sudo apt-get update

sudo apt-get dist-upgrade

sudo rpi-update 192

  • 安装需要用到的软件

sudo apt-get install git gcc build-essential libsdl1.2-dev

 

  • 下载雷神之锤的源码

mkdir ~/src

cd ~/src

git clone https://github.com/raspberrypi/quake3.git

cd quake3

  • 修改build.sh文件
    把第8行改成:

ARM_LIBS=/opt/vc/lib

 

把第16行改成:

INCLUDES=”-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads”

 

把第19行注释掉:

#CROSS_COMPILE=bcm2708-

 

  • 编译(在B和B+大概一小时,在树莓派2上十分钟以内,性能真的是六倍

./build.sh

 

  • 找到一些文件(应该是素材之类的吧),并把他们放到

build/release-linux-arm/baseq3:

pak0.pk3, pak1.pk3, pak2.pk3, pak3.pk3, pak4.pk3, pak5.pk3, pak6.pk3, pak7.pk3, pak8.pk3
网上有人整理好了,去网盘下载就行。

– 提升pi用户的权限

sudo usermod -a -G video [your_username]

 

  • 运行ioquake3.arm,开始玩耍吧,使用音响或直接接到电视机上,效果更佳哦。

参考:http://ju.outofmemory.cn/entry/3235

Raspberry Pi 使用科大镜像源

科大开源镜像站提供了raspbian的软件包镜像,国内的用户可以选择改用科大镜像站作为更新源。

科大镜像站官方已经提供了一份帮助文档,用于指导用户如何使用科大镜像更新raspbian。 但这份文档是基于 wheezy 的,最新的jessie版可以参考本文。

具体做法

修改之前,最好先备份原始的配置文件。例如,使用如下命令将两个源配置文件拷贝到HOME目录。

cp /etc/apt/sources.list ~
cp /etc/apt/sources.d/raspi.list ~

或者直接在原来配置文件的基础上修改,但将原有的配置全部注释掉(使用#注释)。

修改 source.list

更新后的/etc/apt/sources.list

#deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi

# use ustc mirror:
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi

实际修改是,将mirrordirector.raspbian.org替换为mirrors.ustc.edu.cn/raspbian/

修改 raspi.list

更新后的/etc/apt/raspi.list

#deb http://archive.raspberrypi.org/debian/ jessie main ui
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ jessie main ui

# use ustc mirror:
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ jessie main ui

实际修改是,将archive.raspberrypi.org替换为mirrors.ustc.edu.cn/archive.raspberrypi.org