如何在树莓派上进行python编程_设置并使用树莓派进行Python和C语言编程 (下)

1508935849352301.png

Python部落()组织翻译, 禁止转载

关键字

条件关键字

下表列举了跟条件语句有关的关键字和他们的详细表述

shumeipai11.png

if 用来决定再次执行那条语句

else 可选,条件为false时,执行else关键字后的语句

elif 代表else if。如果上一个测试结果为false,则执行这条语句

not 非运算符

or 或运算符

and 与运算符

is 测试对象标识

TRUE 布尔值真

FALSE 布尔值假

循环关键字

下表列举了跟循环语句有关的关键字和他们的详细表述

shumeipai12.png

for 按照出现的次序遍历集合里的所有元素

while 控制程序的步骤

break 结束循环,跳出循环体

as 用来给模块添加别名

continue 结束本次循环,开始以后循环

内建函数关键字

下表列举了跟内建变量有关的关键字和他们的详细表述

shumeipai13.png

print 向控制台输出

pass 不做任何事

del 删除对象

类模块相关关键字

下表列举了跟类、模块有关的关键字和他们的描述

shumeipai14.png

class 用来构建用户定义的对象

def 用来构建用户定义的变量

global 访问数组外定义的全局函数

lambda 创建一个匿名函数

exec 动态执行Python代码

yield 构造器使用

import 向Python脚本里导入其他组件

return 退出函数并返回一个值

from 从一个组件里导入指定的数组、类以及变量

错误处理关键字

下表列举了跟错误处理有关的关键字和他们的详细表述

shumeipai15.png

try 指定异常处理程序

img_0_1407726580_2319137144_26.jpg

except 捕获异常,执行相应代码

finally 总会在最终被执行,用来清理资源

raise 创建用户定义的异常

assert 断言

设置编程环境

安装VIM

很都熟悉Vi编辑器。VIM编辑器是Vi的更新版本,不仅包括Vi的所有功能,还添加了一些功能,并对Vi进行了改进

以下是安装vim的命令

sudo apt-get install vim

使用下述命令用vim编辑文本

vim mynewProgram.py

Vim有一个带图形界面的版本,可以分别安装。这个版本开启一个支持鼠标操作的新窗口

sudo apt-get install vim-gnome

安装Python

通常情况下,树莓派已安装了Python的最新版本。如果没有,你可以借助以下命令来安装或升级Python

sudo apt-get install python-dev

安装RPi.GPIO

安装完Python后,可以加装RPi.GPIO模块,该组件用于控制树莓派的输入输出接口

下面是加装或更新组件的名让:

sudo apt-get install python-rpi.gpio

Python调试:

写代码时就会会遭遇错误,需要调试找到问题的缘由。

IDLE的交互方式是调试Python的绝佳工具。调试菜单里有一些软件用来预测代码/程序,也可以借助逐条执行代码来观察每步变量的差异,和其他高级语言和他们的集成编译环境一样。

shumeipai16.png

语法错误 最常用的出错,容易被纠正。通常是拼错或滥用关键字

语义错误 逻辑错误,即程序语法正确并且结果出错。通常难于定位错误,IDLE可以借助逐条执行代码来帮助我们看到原因

就像高超的编程能力一样,高超的调试能力也很重要,需要多年的训练跟经验。下面是一些调试练习用于帮助我们在树莓派上安装Python程序

调试技巧

1. 使用print()函数输出代码指定位置的执行状况

2. 使用_preint()+输出函数的值

3. 检查空格是否恰当

4. 行首有时会显示解释器检查出的词汇错误,此时我们必须返回仍然检查语法出错

5. 注意全局函数和局部变量的使用

6. 括号应该匹配

7. 不确定操作符优先级时使用空格来确保执行次序

1. 比如:5+8*3和(5+8)*3不一样

C语言编程

安装BCM2835-C

树莓派的C库可以从以下的链接里下载

以下引用airspyace对于该库的表明

“这是一个针对树莓派的C库。用于控制通用输入输出接口和Broadcom BCM2835芯片上的其它输入输出功能,可以借助RPi板上的26个接口控制GPIO接口,因此你可以控制并访问多种外部设施。

提供函数用于SPI和I2C的数据存取树莓派用什么语言编程,以及控制系统定时器。支持轮询式引脚事件评估(不支持中断)

与C++相容,可以成为头文件跟非共享库安装在在任何Linux发行版上(但是树莓派或其它BCM 2835板以外的开发板上不起作用)。”

以下是安装方法。按照次序逐个执行命令

081403ppvyy20l2yfy2xm2.jpg

从网页下载tar文件

wget

解压库

tar -xvzf bcm2835-..tar.gz

进入解压后的文件夹

cd bcm2835-.

运行配置命令

./configure

编译库

make

检测编译

sudo make check

安装库

sudo make install

用以下程序检测安装,该程序设定树莓派上的LED灯每500毫秒闪烁一次

#include

#define MY_PIN RPI_GPIO_P1_11

BOOLEAN main(int argc, char **argv)

{

if (!bcm2835_init())

return FALSE;

bcm2835_gpio_fsel(MY_PIN, BCM2835_GPIO_FSEL_OUTP);

while (1=1)

{

bcm2835_gpio_write(MY_PIN, HIGH);

bcm2835_delay(700);

bcm2835_gpio_write(MY_PIN, LOW);

bcm2835_delay(700);

}

bcm2835_close();

return TRUE;

}

然后编译代码

gcc -o blink blink.c -lbcm2835

以管理员身份运行程序:

sudo ./blink

安装WiringPi

下面是开源项目WiringPi的链接或者对项目描述的引用

WiringPi是一个树莓派使用的C语言编写的BCM2835通用输入输出控制库。以GNULGPLv3许可证发行树莓派用什么语言编程,可用于C跟C++或者这些其它语言(经过适当封装),和Arduino的”wiring system1“相似

安装WiringPi的步骤

sudo apt-get update

sudo apt-get upgrade

apt-get install git-core

git clone git:git.drogon.net/wiringPi

resize,m_lfit,w_1200

cd wiringPi

git pull origin

cd wiringPi

./build

测试WiringPi是否安装成功

gpio -v

gpio readall

用C进行光传感器编程

shumeipai17.gif

下面这个程序读取光强并输出

#include

#include

#define G_1 0

#define G_2 1

#define G_3 2

typedef unsigned char gchar;

gchar get_Result(void)

{

gchar i;

gchar dat1=0, dat2=0;

digitalWrite(G_1, 0);

digitalWrite(G_2,0);

digitalWrite(G_3,1);

delayMicroseconds(2);

digitalWrite(G_2,1);

delayMicroseconds(2);

digitalWrite(G_2,0);

digitalWrite(G_3,1);

delayMicroseconds(2);

digitalWrite(G_2,1);

delayMicroseconds(2);

digitalWrite(G_2,0);

digitalWrite(G_3,0);

delayMicroseconds(2);

digitalWrite(G_2,1);

digitalWrite(G_3,1);

delayMicroseconds(2);

digitalWrite(G_2,0);

digitalWrite(G_3,1);

delayMicroseconds(2);

for(i=0;i<8;i++)

{

digitalWrite(G_2,1);

delayMicroseconds(2);

2c66020effc376e1fc8e566e32084e64.jpg

digitalWrite(G_2,0);

delayMicroseconds(2);

pinMode(G_3, INPUT);

dat1=dat1<<1 | digitalRead(G_3);

}

for(i=0;i<8;i++)

{

dat2 = dat2 | ((gchar)(digitalRead(G_3))<

digitalWrite(G_2,1);

delayMicroseconds(2);

digitalWrite(G_2,0);

delayMicroseconds(2);

}

digitalWrite(G_1,1);

if(dat1==dat2)

{

return dat1 ;

}

else

return 0;

}

int main(void)

{

gchar rawValue;

gchar calculate_Value;

if(wiringPiSetup() == -1){

printf("Failure with calling a wiringPi method!");

return 1;

}

pinMode(G_1, OUTPUT);

pinMode(G_2, OUTPUT);

while(1){

pinMode(G_3, OUTPUT);

rawValue = get_Result();

calculate_Value = 210 - rawValue;

printf("Current calculate_Valueination : %d\n", calculate_Value);

delay(500);

}

return 0;

}

下面是面包板的连接

shumeipai18.JPG

现在我们将要知道怎样在树莓派上用python和C进行编程,在评论里告诉我你更喜欢哪种语言以及理由。

英文原文:

译者: cmsl

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-142719-1.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值