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之上。