python树莓派编程
1. 在树莓派上的python3
1、首先查看树莓派上自带的python版本和执行程序所在位置,默认是python 2版本的。
2、起始python3在树莓派上也已经默认安装了。采用python3进行区别版本2。查看python3的版本和位置
关于python2和python3的主要区别
1.在Python2中,print是一个打印语句,将Python后面的内容视为元组对象,直接打印出来,;在Python3中做为函数存在。
2.编码的改变。Python2默认ASCII编码方式,但是ASCII编码无法对中文等字符进行有效编码。Python3默认采用了UTF-8编码。
3.True和False的改变。Python2把True 和False视为全局变量,可以随意赋值。Python3把True和False变成了两个关键字,指向了两个固定的对象,不能再被重新赋值。
4.nonlocal关键字。Python2中要想在 嵌套函数 中将一个变量声明为非局部变量是不可能的;Python3中加入了nonlocal关键字,可以在嵌套函数中给变量前面添加关键字nonlocal,就可在嵌套函数之外使用嵌套函数中的变量。
树莓派使用python编程。树莓派项目的一个核心思想就是Python编程语言的使用。Python允许树莓派的拥有者将项目扩展到令人难以置信的规模。
树莓派是一个非常廉价的、只有手掌大小的完全可编程的计算机。虽然树莓派的体积小,但是它的潜力无限。你可以像使用常规台式计算机一样在树莓派上创建一个非常酷的工程。例如,你可以用树莓派搭建你自己的家用云存储服务器。
树莓派用python来进行编程。树莓派项目的一个核心思想是Python编程语言的使用。Python允许树莓派的拥有者将项目扩展到令人难以置信的规模。
Python是一个解释型的面向对象的、跨平台的编程语言。良好的可靠性、清晰的语法和易用性,使它成为最流行的编程语言之一。Python是一个优雅的、功能强大的语言。
树莓派为Python编程提供了一个便宜到令人难以置信的开发平台。Python被认为是一种“教学”语言,是因为它很容易学习,但绝不表示Python羸弱。
有了树莓派和Python,唯一限制你的就是想象力了。你可以用Python编写游戏并将其运行在树莓派控制的游戏机上。你可以编写程序来控制连接到树莓派上的机器人。或者你可以像Dave Akerman一样将你的树莓派发送到39000千米的地球上空拍摄令人难以置信的照片
推荐课程:数据挖掘基础(黑马程序员)
3. python3 树莓派编程怎么写
首先树莓派得安装 python-smbus, i2c-tools,
然后修改文件:sudo nano /etc/moles,添加上 i2c-bcm2708 和i2c-dev 这两行,Raspbian还需要在raspi-config中激活i2c.
用 sudo i2cdetect -y 1 查看设备地址,
例子1:LCD2004,设备地址 为0x27;
先写个驱动调用程序 i2c_driver_lcd.py
import smbus
from time import *
# LCD Address
ADDRESS = 0x27
# commands
LCD_CLEARDISPLAY = 0x01
LCD_RETURNHOME = 0x02
LCD_ENTRYMODESET = 0x04
LCD_DISPLAYCONTROL = 0x08
LCD_CURSORSHIFT = 0x10
LCD_FUNCTIONSET = 0x20
LCD_SETCGRAMADDR = 0x40
LCD_SETDDRAMADDR = 0x80
# flags for display entry mode
LCD_ENTRYRIGHT = 0x00
LCD_ENTRYLEFT = 0x02
LCD_ENTRYSHIFTINCREMENT = 0x01
LCD_ENTRYSHIFTDECREMENT = 0x00
# flags for display on/off control
LCD_DISPLAYON = 0x04
LCD_DISPLAYOFF = 0x00
LCD_CURSORON = 0x02
LCD_CURSOROFF = 0x00
LCD_BLINKON = 0x01
LCD_BLINKOFF = 0x00
# flags for display/cursor shift
LCD_DISPLAYMOVE = 0x08
LCD_CURSORMOVE = 0x00
LCD_MOVERIGHT = 0x04
LCD_MOVELEFT = 0x00
# flags for function set
LCD_8BITMODE = 0x10
LCD_4BITMODE = 0x00
LCD_2LINE = 0x08
LCD_1LINE = 0x00
LCD_5x10DOTS = 0x04
LCD_5x8DOTS = 0x00
# flags for backlight control
LCD_BACKLIGHT = 0x08
LCD_NOBACKLIGHT = 0x00
# set init LCD BACKLIGHT ON or OFF
def lcd_backlight(lcdbl=1):
if lcdbl == 0 :
return LCD_NOBACKLIGHT
return LCD_BACKLIGHT
En = 0b00000100 # Enable bit
Rw = 0b00000010 # Read/Write bit
Rs = 0b00000001 # Register select bit
class lcd(object):
#initializes objects and lcd
def __init__(self,lcd_bl,port=1):
self.addr = ADDRESS
self.bus = smbus.SMBus(port)
self.lcd_bl = lcd_bl
self.lcd_write(0x03)
self.lcd_write(0x03)
self.lcd_write(0x03)
self.lcd_write(0x02)
self.lcd_write(LCD_FUNCTIONSET | LCD_2LINE | LCD_5x8DOTS | LCD_4BITMODE)
self.lcd_write(LCD_DISPLAYCONTROL | LCD_DISPLAYON)
self.lcd_write(LCD_CLEARDISPLAY)
self.lcd_write(LCD_ENTRYMODESET | LCD_ENTRYLEFT)
sleep(0.2)
4. 为什么在树莓派开发当中都用Python和C/C++,而不是用Java,是因为树莓派带不动Java吗
不是。
不是性能原因。 C/C++因为执行效率高,而用来开发驱动程序和底层应用,树莓派毕竟是个离硬件很近的东西。 Python因为易学易用,开发便捷,用来给小白玩儿或者快速做原型的。 Java显然不具有这些特性,就比较尴尬的被抛弃了。
其实不只是树莓派,很多Linux发行版里面的软件都是用Python写的。用Python并不是因为特Python运行占用资源比java低,而是因为python存在大量的由C/C++写成的库。Python本身只是起个胶水的作用,把多个C/C++写的库粘在一起组成一个应用。
java也能通过jni(Java Native Interface)调用C/C++写的库,但java这种类型的库的数量和质量不如python。而且java是编译型语言, Python是解释型语言,Python代码不用经过编译就能直接运行,这一定程序上减少了开发时间。所有一般Linux都选用C/C++或者Python做为开发语言。
Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990 年代初设计,作为一门叫做ABC语言的替代品。
Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。
2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和JavaScript之上。