IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 树莓派,摄像头拍照,OLED 显示 -> 正文阅读

[Python知识库]树莓派,摄像头拍照,OLED 显示

摄像头的使用

配置系统使能摄像头功能

pi@raspberrypi:~ $ sudo raspi-config

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置完成后,系统会提示重启,重启完成后,摄像头就可以使用了

简单测试一下

pi@raspberrypi:~ $ raspistill -v -o test.jpg

在这里插入图片描述
还可以录视频

pi@raspberrypi:~ $ raspivid -o test.h264 -t 5000

OLED 的使用

我使用的 OLED 是 IIC 接口的,连线比较简单,如下:
在这里插入图片描述
同样是使能系统的 IIC 功能

pi@raspberrypi:~ $ sudo raspi-config

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
硬件连好之后,使用命令检测系统是否能够识别到 IIC 设备

pi@raspberrypi:~ $ sudo i2cdetect -y -a 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

3c 就是我们 OLED 屏幕的 IIC 地址,说明硬件连接正确。

下面我们使用 Python 让 OLED 显示图像,我们使用的是 Adafruit_Python_SSD1306 库,因为我们的 OLED 的驱动芯片是 SSD1306
在这里插入图片描述

git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git

这里面有一些例子,我们可以测试下:

$ cd Adafruit_Python_SSD1306/examples/
$ python3 shapes.py

在这里插入图片描述
可以看到图像显示成功了😏,不过我们发现 hello world 显示的有点不太清晰。那是因为,代码里默认使用的是 128 x 32 的分辨率,我们给他改成 128 *64
在这里插入图片描述

把 128_32 注释掉,启用 128_64。

再显示一次

$ cd Adafruit_Python_SSD1306/examples/
$ python3 shapes.py

在这里插入图片描述
这样就显示正常了。
这个库里面还有显示图像、系统信息的例子,大家可以自行测试一下。

摄像头 + OLED

我们把 Adafruit 中显示图像的例子稍微修改一下,让 OLED 显示摄像头拍摄的图像
image.py

# 128x64 display with hardware I2C:
disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)

# Initialize library.
disp.begin()

# Clear display.
disp.clear()
disp.display()

while True:
	# take a photo
    os.system("raspistill -o photo.png -w 128 -h 64 -t 3000")
    # Load image based on OLED display height.  Note that image is converted to 1 bit color.
    image = Image.open('photo.png').convert('1')

    # Display image.
    disp.image(image)
    disp.display()
    time.sleep(1)

代码很简单,拍摄一张照片 photo.png,然后显示在 OLED 上。
不由得感叹 Python 就是好啊,几乎不要写多少代码,就能实现很多功能(当然,主要得益于大神们的轮子)。这些内容要放在单片机上,得写摄像头的驱动、OLED 的驱动,搞不好还要对着数据手册看时序图,甚至需要抓波形图 debug。真是人生苦短,我用 Python 呀!
放上一张“清晰的”效果图
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-04 19:27:40  更:2021-07-04 19:27:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 2:34:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码