Python自动化编程-树莓派的介绍与使用(一)
目前树莓派最新版本是第三代B型和B+型,一般简称B和3B+,下面是参数对比。
你还需要以下这些东西:
一张SD记忆卡
一个SD读卡器,用于将系统映像写入到SD卡中供电来源。我们用的是一个旧的安卓手机充电器,你需要一个5V的micro USB接口充电器为它供电。
如果你是用的普通显示器而不是高清电视,你需要一条HDMI连接线与HDMI-DVI转换器。如果你的显示器支持HDMI或者你打算使用电视机进行连接,那么你就可以省去转换器了。
USB接口的键盘和鼠标
一条以太网线
可选设备:
用于保护Raspberry Pi的盒子
除了键盘和鼠标之外,如果你打算要连接更多的USB设备,那么你需要一个USB Hub集线器。
我们在本文中使用的东西:
一个Model B Raspberry Pi
一张16GB Class 10 SanDisk Ultra SDHC记忆卡(传输率标为300MB/s)
一个原本用于HTC Inspire的旧充电器
罗技K260无线键鼠套装(两件只用一个接收器,因此只占用一个USB口)
一条RJ-45网线
设置
当你把上面的一切都准备好以后,我们就可以开始设置Raspberry Pi了
将Raspbian映像安装到SD卡中
Raspberry Pi出来已经有一段时间了,也正因如此,无论你是在用Windows、Mac OS
X还是Linux,都有好几种方法将Raspbian的映像写到你的SD卡中。然而为了让这篇文章不变成介绍各种映像写入软件的文章,我们将会把最常用的方法展示给大家看:在OS
X与Linux中我们将会用系统自带的dd工具写入,而在Windows中我们将会使用一个叫Win32DiskImager的工具进行。
为了让过程便得简单,我们建议你在开始操作前,先把下载文件夹清空。然后,从这里下载Raspbian.zip。在里面,选择最新的Raspbian来下载。当然你也可以选择使用BT来下载,为了能让其他人继续用BT下载,我们建议你在下载完成后继续上传。
把压缩文件解压以后,你将得到Raspbian的映像文件,这个时候打开终端窗口。如果你使用的是OS X 10.7或更高版本,你可以从应用程序中的工具(10.7)或者其他(10.8)中找到终端窗口。打开后,使用”cd ~/Downloads”来进入下载文件夹。
如果你在开始前清空了你的下载文件夹,那么现在里面应该有两个文件,输入”ls”来确认是否分别有一个img后缀与一个zip后缀的文件,如下图:
接下来就要开始将解压出来的映像文件写到SD卡中了,很可惜这个操作并不是直接把文件拷到卡中那么简单。首先,我们在把SD卡插到你的Mac之前,要把你电脑分区状态先搞清楚。如果你已经迫不及待把卡插了进去,那么先把它安全移除吧。
在终端窗口中输入”df –h”,你应该会看到类似这样的结果
现在,插入你的SD卡,再运行一次刚才的命令,你会发现多了一个”/dev/disk1s1”的设备。把它先记下来,等一会儿把它转换成原始设备名称时会用到的。
接下来,你需要先从系统中把卡卸载掉,以便”dd”这个工具可以将映像写入到SD卡中。在终端窗口输入”sudo diskutil unmount /dev/disk1s1”,然后输入你的系统密码。
如果操作成功的话,你会看到最后那一行字:”Volume XXX unmounted”中的XXX是你SD卡的名称。现在我们就可以往卡上写入映像了。
记得刚才让你记下来的设备名么?现在就是用到它的时候了。将你的设备名(例如/dev/disk1s1)最后的s1去掉,然后在disk前面加上r,变成”/dev/rdisk1”,这样你就得到SD卡的原始设备名称了。
也就是说,”/dev/disk1s1” = “/dev/rdisk1”。懂了吗?
然后在终端中输入以下命令:”sudo ddb s=1m if=2012-06-15-wheezy-raspbian.img of=/dev/YOURDISKNAME”。将YOURDISKNAME改成你的原始设备名称,通常这个都是/dev/rdisk1。
写入的过程需要一点时间。当”dd”完成了它的工作以后,将桌面的SD卡图标拖进回收站中以将SD卡安全移除。
准备工作就完成了!直接到“初次启动你的Pi”部分吧。
Our prep work is finished! Skip ahead to "Booting your Pi for the first time."
如果你使用的是Linux
无论你使用的是哪一个发行版的Linux,”dd”这个工具通常都是默认安装的。对于接下来的操作,我们假设:
1) 你的sudo程序已经设置妥当,而且你知道如何使用它
2) 你的Linux中已安装fdisk工具(大多数发行版都默认安装)
在这里我们使用的是最为流行的Linux发行版Ubuntu,其中”dd”, “fdisk”已默认安装,并且”sudo”也已预先为用户配置好了。
首先,从这里下载Raspbian的最新版本压缩包。同样,你也可以选择使用BT下载。在你下载完成以后,第一个操作自然就是解压。
打开一个终端窗口,然后使用”cd ~”命令将工作目录变更到你的主目录中。输入”unzip imagename.zip”,将imagename替换为刚才你下载文件的名字。
如果你找不到刚才下载的压缩包,你可以尝试使用”cd ~/Downloads/”进入下载目录寻找。
接下来,我们要确定你的SD卡在系统中的设备名称。插入你的SD卡,然后在终端中输入”sudo fdisk –l”。
注意看列出来的设备:你运行命令后得出的结果跟上面显示的应该很相似
这里看到,/dev/sda是一个大小250.1GB的设备,而/dev/sdb是一个15.9GB的设备。很明显,/dev/sdb就是我们的SD卡。留意一下/dev/sdb下面显示的分区:/dev/sdb1与/dev/sdb2,我们要在写入映像之前将这两个分区先从系统中卸载掉:
sudo umount /dev/sdb1
sudo umount /dev/sdb2
接下来,我们使用”dd”将映像文件写入到SD卡中:”sudo dd bs=1M if=2012-08-16-wheezy-raspbian.img of=/dev/sdb”。跟在Mac中操作相同,这个过程需要一些时间来完成。
如果你看到终端显示跟上面类似的文字,那么写入已经完成了。现在,你可以跳到“初次启动你的Pi”部分继续阅读。
如果你正在使用Windows
如果你正在使用的是Windows系统,有一个叫做Win32DiskImager的小工具可以帮你完成这项工作。把它下载下来以后,再把Raspbian的映像从这里下载下来。记得选择最新版本的Raspbian。
当你把Win32DiskImager和Raspbian映像文件都下载下来以后,把他们都解压出来。你可以把所有文件都解压到桌面的一个文件夹中,方便接下来的操作。
将你的SD卡插入到你的读卡器中,留意一下读卡器在电脑中的盘符。将读卡器接到电脑以后,打开刚解压出来的Win32DiskImager程序:
在启动时,Win32DiskImager可能会提示以下错误:(至少在Windows 7中是这样的)
这个错误可以忽略掉,点OK继续
点击右边的蓝色文件夹图标,然后选中刚才解压出来的Raspbian映像文件。确保最右边Device中的盘符为你读卡器的盘符。
打开映像文件以后,点Write,然后点一下Yes确定操作。整个写入过程需要一些时间来完成。
写入完毕以后,你会看到下面的信息,这时你就可以把你的SD卡安全移除了。
初次启动你的Pi
初次启动Raspberry Pi时,你会看到一个叫做raspi-config的配置工具。如果在日后使用过程中你需要更改这些设置,你可以通过在Pi的命令行中运行raspi-config来使用这个工具。在这里,你需要进行一些最基本的设置来继续使用你的Pi。
首先,我们要选择expand_rootfs。它的作用是将刚才写入到SD卡中的映像文件大小扩展到整张SD卡中。如果你使用的是一张较大的SD卡(例如16GB),那么你肯定像充分利用上面的空间。因为原本的映像只有大约2GB的大小,进行该操作就能将它扩展到与你的SD卡同样的大小。
选中expand_rootfs选项,然后按下回车。你会看到如下提示,只需要再按一下回车就可以回到raspi-config的主菜单中。
接下来就是overscan选项。你会发现,屏幕显示的图像并没有完全占用你的显示器空间;所以,最后就是将overscan禁用掉,来让系统充分利用整个屏幕。但如果你的屏幕显示没有问题,那么你就可以跳过这个步骤。假设你需要禁用overscan,那么将overscan选项选中后按下回车。
接下来的画面能够让你选择禁用(Disable)或者是启用(Enable) overscan。如果你在往后使用的过程中更换显示器或者电视机,你或许需要重新启用overscan。
接下来,我们要确保我们的键盘正常工作。Raspbian默认的是英国键盘布局,而我们在中国使用的键盘布局与美国的相同,因此我们要对它进行更改才能正常使用。
选中configure_keyboard,然后按下回车。下面显示的画面中你会看到一个很长的列表,里面都是不同的键盘类型。你可以根据你的需要来选择,或者直接选择Generic 105-key (Intl) PC键盘。
在选择键盘类型以后,你需要为它选择一个键盘布局。刚开始显示的列表中,都只有英国的键盘布局,但是我们现在要选择美国的键盘布局,因此我们选中其他(Other),然后再里面的列表选择English (US)。
然后你会被问到关于辅助键的问题,选择默认的选项,并且在下一个画面中选择No compose key选项。同样,如果你需要更改这个设置,可以使用raspi-config来更改。
最后一个选项为是否打开CTRL+ALT+BACKSPACE的组合键。它可以在你的图形界面崩溃时,不需重启而将图形界面进程结束掉。
回到主菜单,下一步我们要设置一个用户密码。
选中change_pass然后按下回车。一个确认窗口弹出以后,在屏幕的底下会提示你输入一个新的UNIX用户密码。
到这里就差不多完成了。接下来设置你的“区域”,这个主要会决定系统使用的字符集和语言。同样,如果你不想使用英国英语,那么你可以在这里更改这些设置。在演示中我们选择的是美国英语,因此我们选择en_US.UTF-8,并下翻列表将en_GB选项剔除
再下一个对话框中会让你选择默认的区域,选择你刚才选的区域然后按回车继续。
回到raspi-config的主菜单,设置适当的时区。选中change_timezone选项然后按下回车。你会先看到一个地区列表。
选择一个地区,然后下一个菜单中会显示该区域的具体位置。
再次回到主菜单,剩下还没选过的选项我们可以忽略,直接点击完成(Finish)。系统会提示你,一些变更需要重启才能生效。重启以后,你会看到一个登录界面,如下:
在这里,用户名为”pi”,密码就是你刚才设置的UNIX用户密码。
使用你的Raspberry Pi
现在,你已经登录到了你之前设置的Raspberry Pi中了。你要做的第一件事,就是在命令行中输入”startx”来进入图形界面,以下我们会把这个界面称之为“窗口管理器”。
屏幕快速闪烁几次后,你应该会看到如下画面:(除了那个终端窗口以外)
欢迎使用LXDE窗口管理器。LXDE是一个非常轻量级,并且功能齐全的图形界面,它能够很好地运行在Raspberry Pi中。如果你从来未使用过LXDE,别担心,它用起来跟Windows非常相似。点击最左下角的图标,你会看到一个应用程序列表。
现在能干嘛呢?
当你把Pi配置完成,并且打开了LXDE窗口管理器以后,你就得到了一台运行完整 Debian的Linux机器了。在这个时候,你可以使用Midori来浏览网页,架设一个网页服务器,或者是进行一些平常的工作。
但首先,我们要谈的是Raspberry Pi本身最注重的方面:教育。特别是,软件开发教育
在Raspberry Pi上撰写你的第一个程序
Raspbian中预装Python,它是Raspberry Pi的官方编程语言,还有IDLE 3,一个Python的集成开发环境(IDE)。我们将会教你如何使用IDLE在Raspberry Pi上写一个简单的程序。
在学习一门新的编程语言时,通常第一件事都是写一个”Hello World!”的小程序。接下来我们要教你的跟这个也差不多,不过要比它稍微花哨一些。这是一个会问你的名字,然后作自我介绍的Python程序。
首先,直接双击LXDE桌面上的图标来打开IDLE 3
点击文件 > 新窗口,就会出现一个可以让你输入文字的空白窗口。
输入以下内容到你的新窗口中:
#my first Python program
username = input("Hello, I'm Raspberry Pi! What is your name? ")
print ('Nice to meet you, ' + username + ' have a nice day!')
如下图:
现在,点击文件 > 另存为,然后将你的文件保存为”hello”,点击保存。
现在就可以运行你刚才写的程序了!
点击运行 > 运行模块,或者直接按F5键。
当IDLE 3窗口中提示你”Hello, I’m Raspberry Pi! What is your name?”的时候,输入你的名字然后按下回车。你会看到Raspberry Pi对你做出回应。
树莓派的引脚对照表:
参考指南:https://post.smzdm.com/p/545912/
http://www.waveshare.net/txt/RPi-UM.htm
Linux相关
l wget
wget是一种下载软件,类似与迅雷。
通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理,
名字是World Wide Web”与“get”的结合。
l apt-get
ap-get是一种软件安装方式,它是基于Debian
l Debian
Debian GNU/Linux 是一个操作系统及自由软件的发行版,它是由一群自愿付出时间和精力的用户来维护并更新的。
点亮一个LED灯的示例:https://blog.csdn.net/p09080016/article/details/79299497
Python自动化编程-树莓派的介绍与使用(一)的更多相关文章
- Python自动化编程-树莓派GPIO编程(二)
树莓派我们编程一般都直接用高效的python,针对于GPIO编程,python也是有这一方面的库的,这里最有名也是最常用的就是RPI.GPIO了.这个库是专门为树莓派GPIO编程所设计的,利用它你可以 ...
- python 并发编程 IO模型介绍
gevent 底层是怎么实现? io模型4个重要概念: 两类 一类:同步.异步 提交任务的方式 同步: 提交完任务后,在原地等待结果,拿到结果后,才执行下一行代码 #所谓同步,就是在发出一个功能调用时 ...
- python自动化运维篇
1-1 Python运维-课程简介及基础 1-2 Python运维-自动化运维脚本编写 2-1 Python自动化运维-Ansible教程-Ansible介绍 2-2 Python自动化运维-Ansi ...
- python函数式编程,列表生成式
1.python 中常见的集中存储数据的结构: 列表 集合 字典 元组 字符串 双队列 堆 其中最常见的就是列表,字典. 2.下面讲一些运用循环获取字典列表的元素 >>> dic={ ...
- python 并发编程 io模型 目录
python 并发编程 IO模型介绍 python 并发编程 socket 服务端 客户端 阻塞io行为 python 并发编程 阻塞IO模型 python 并发编程 非阻塞IO模型 python 并 ...
- 《Python编程快速上手 —让繁琐工作自动化》|百度网盘免费下载|Python自动化办公
Python编程快速上手—让繁琐工作自动化 提取码:u8vj 如今,人们面临的大多数任务都可以通过编写计算机软件来完成. Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言.通过 P ...
- Python高级编程之生成器(Generator)与coroutine(二):coroutine介绍
原创作品,转载请注明出处:点我 上一篇文章Python高级编程之生成器(Generator)与coroutine(一):Generator中,我们介绍了什么是Generator,以及写了几个使用Gen ...
- 【python自动化第十一篇】
[python自动化第十一篇:] 课程简介 gevent协程 select/poll/epoll/异步IO/事件驱动 RabbitMQ队列 上节课回顾 进程: 进程的诞生时为了处理多任务,资源的隔离, ...
- 《Python黑客编程之极速入门》正式开课
玄魂 玄魂工作室 今天 之前开启了一个<Python黑客编程>的系列,后来中断了,内容当时设置的比较宽,不太适合入门.现在将其拆分成两个系列<Python黑客编程之极速入门>和 ...
随机推荐
- phpstudy 配置端口 和 虚拟域名访问
打开phpstudy窗口 选择->其他选项菜单->打开配置文件->httpd.conf 添加一个 Listen 8081(端口号) 查看到 Include conf/vhost ...
- zabbix添加nginx监控
nginx内置了一个status状态的功能,通过配置可以看到nginx的运行情况,status显示的内容包括当前连接数,处于活动状态的连接数,已经处理的请求数等等,可以利用这个功能编写zabbix监控 ...
- docker与虚拟机的区别
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
- spring Mongodb查询索引报错 java.lang.NumberFormatException: empty String
最近事情比较多,本篇文章算是把遇到的问题杂糅到一起了. 背景:笔者最近在写一个mongo查询小程序,由于建立索引时字段名用大写,而查询的时候用小写. 代码如下: db.getCollection(&q ...
- 基于SoftRoCE 了解RDMA
RDMA是基于IB技术的内存直接传送,无需内核参与,硬件网卡搞定.IB需要HPC领域的专用硬件,ROCE则是RDMA协议在普通以太网卡的实现,RoCEv1是在MAC上的二层封装,局域网内可以,要通过路 ...
- jquery取每个li元素下的第三个a元素
$('li').find('a:eq(2)');
- Eclipse Maven: Cannot change version of project facet Dynamic web to 3.0 的解决方法
在 Eclipse 中创建 Maven web 项目的时候使用 maven-artchetype-webapp 骨架,但是这个 catalog 比较老,用的 servlet 还是 2.3 在 Proj ...
- python基础入门之对文件的操作
**python**文件的操作1.打开文件 打开文件:open(file,mode='r') file:操作文件的路径加文件名 #绝对路径:从根目录开始的 #相对路径:从某个路径开始 mode:操作文 ...
- sklearn svm基本使用
SVM基本使用 SVM在解决分类问题具有良好的效果,出名的软件包有libsvm(支持多种核函数),liblinear.此外python机器学习库scikit-learn也有svm相关算法,sklear ...
- fastjson 序列化,反序列化Map对象的顺序问题
使用JSONObject 读取JSON字符串时,读取出来的数据,通过变量时是无序的. 但是业务希望返回是顺序的. String str="{name:\"A\",add ...