自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TEDxPY

公号「TEDxPY」,分享记录 Python 和 小程序爱好者的日常

  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 初次薅羊毛,收益一千块,简单复盘

0“薅 [hāo]羊毛”这个词,大家都不陌生,早在 1999 年赵本山的春晚小品《昨天今天明天》中白云大妈就已经开始“薅羊毛织毛衣”了。衍生到今天,所谓“薅羊毛”多指我们利用网络上各种...

2020-08-23 23:57:45 3545

原创 Python VTK 交互系统 1 交互模式入门

文章参考自《VTK 交互系统 1 交互模式入门》,按自己理解用 Python 实现相关功能如下:原文中只提及相关函数,为了能直接展示效果,我这引入一个箭头模型,想移除该模式下右键缩放功能,改成右键点击自定义输出“点击右键”信息,代码如下:import vtk# 自定义右键点击事件def right_click(obj, ev): print("点击右键")arrow = vtk.vtkArrowSource()# sphere = vtk.vtkSphereSource()ar

2020-08-17 19:29:01 1539 4

原创 Python 多线程锁

无锁多线程案例import threadingimport timenum = 100def fun_sub(): global num num2 = num time.sleep(0.001) num = num2 - 1if __name__ == '__main__': print('开始测试同步锁 at %s' % time.ctime()) thread_list = [] for thread in range(100)

2020-08-14 18:54:35 278

原创 Python 获取串口通信缓存大小

Python 调用串口通信时,一般都是通过 serial 模块先进行实例化:import serialted = serial.Serial(port='/dev/tty.wchusbserial1470', baudrate=115200)若想获取电脑端串口输入缓存以及输出缓存大小(bytes),可以通过该实例的 in_waiting (当前输入端缓存字节数) 和 out_waiting (当前输出端缓存字节数) 查看。若一次性发送大量请求并收到相应的返回信息,尚未进行读取,则可凭此来查看当前

2020-08-14 14:49:36 5097

原创 我的第一个 10W+

写一篇 10W+ 阅读的文章 和 做一款 10W+ 用户的小程序,你觉得哪个难?不妨参考下目前我运营的公众号和小程序:1. TTTEED 公众号:自 2019 年 1月起运营,内容包含 ...

2020-08-14 01:06:26 332

原创 Python @property 基本用法和缺点

本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 31 条:用描述符来改写需要复用的 @property 方法@property 基本用法@property 修饰器,需要在类中先对某属性同名方法进行修饰器附加,再以 @属性名.setter 的修饰器对该方法进行改写:class Homework(object): def __init__(self): self._grade = 0 @property def

2020-08-13 10:45:27 487

原创 ODrive 串口通信入门指南

ODrive 官方入门指南中,采用的是 USB 连接控制模式(中文翻译版本链接)使用的是 Native Protocol。当我们需要尝试串口通信实现时,需要专程 ASCII 协议来进行串口通信实现相关的命令,结合着入门指南以及 ODrive 中的相关属性方法参数,将流程中用到的相关方法整理如下:import serialimport timeted = serial.Serial(port='/dev/tty.wchusbserial1470', baudrate=115200)ted.writ

2020-08-12 20:04:13 3374

原创 ODrive ASCII 协议串口通信命令整理

ODrive ASCII 协议串口通信命令整理将 USB to TTL 插入到电脑 USB 1470 端口,识别为 tty.wchusbserial1470,设置波特率,通过 serial 模块实例化:import serialted = serial.Serial(port='/dev/tty.wchusbserial1470', baudrate=115200)请求信息状态指令格式:f motor回复格式:pos vel注:f 表示请求返回信息;motor 表示电机编号,0 或

2020-08-12 19:55:33 2493

原创 Python @property 实时计算数值属性进行属性重构

本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 30 条:考虑用 @property 来代替属性重构。首先定义个水桶类,需要向其中注入水才有限额可以消耗使用,采用时间模块控制操作顺序:from datetime import timedelta, datetimeclass Bucket(object): def __init__(self, period): self.period_delta = timedelta(

2020-08-12 12:09:59 302

原创 USB to TTL python 本地测试串口通信

手头上有个 USB to TTL CH340 型号的,想在本地用 python 测试下串口通信。硬件准备首先是 USB to TTL 元件,找个跳线帽将 TXD 和 RXD 针脚相连,插到电脑上下载驱动下载对应电脑系统的 CH340 驱动:https://sparks.gogo.co.nz/ch340.html设备搜寻打开终端/命令行,输入以下命令来搜寻设备:ls /dev/tty.wchusbserial*你将得到如下格式的结果,复制下备用/dev/tty.wchusbserial

2020-08-11 11:42:04 2003 1

原创 Python @property 用法

本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 29 条:用纯属性取代 get 和 set 方法。Python 类 public 属性首先,python 类中的 public 属性可以实现 setter 和 getter 等工具方法功能,动态修改、获取类中的属性:class Resistor(object): def __init__(self, ohms): self.ohms = ohms self.vo

2020-08-11 10:25:41 389

原创 树莓派 4 UART 多串口配置通信

相比树莓派零、1、2 以及 3 的双串口 UART0(PL011)和 UART1(mini UART),树莓派 4 中新增了 4 个 PL011 串口共计有 6 个 UART,整理此笔记用作记录和配置参考。UART 配置1. 展示所有串口命令$ dtoverlay -a | grep uart展示 pi4 中所有串口pi@raspberrypi:~ $ dtoverlay -a | grep uart midi-uart0 midi-uart1 miniuart-bt uart0

2020-08-10 17:00:39 16549 16

原创 PyQt5 布局管理器学习

0 知识点思维导图1. 手动布局代码,三个横向标签竖直排列:from PyQt5.Qt import *class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("布局管理的学习") self.resize(500, 500) self.setup_ui() def setup_ui(self):

2020-08-07 18:42:31 393

原创 PyQt5 下拉列表控件案例代码

描述,第一个下拉菜单代表省,选择后控制第二个城市的下拉菜单,每个城市有相应编码,打印选中的城市编码:代码如下:from PyQt5.Qt import *class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QComboBox 综合案例") self.resize(500, 500) self.connected =

2020-08-06 18:49:37 730

原创 PyQt5 QComboBox 学习笔记

PyQt5 QComboBox 下拉框学习笔记,按代码一步步来1. 构造函数QComboBox 的构造函数是 QComboBox(parent: QWidget = None),应用到代码中如下:from PyQt5.Qt import *class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QComboBox 的学习") sel

2020-08-05 19:07:35 1948

原创 PyQt5 QComboBox setMaxVisibleItems 不生效

QComboBox 中可以通过 setMaxCount(self, int) 来设置下拉框总条目数,以及 setMaxVisibleItems(self, int) 设置最大可显示的条目数、即一屏显示的条目是,多余的靠下拉继续展示但实际操作时发现 setMaxVisibleItems(self, int) 这个并不能生效,原因是该方法需要配合将 QComboBox 设置为可编辑模式:cb = QComboBox(self)# 设定最大条目个数cb.setMaxCount(5)# 设置最大显示个数

2020-08-05 17:53:23 1063

原创 python3 自动打开浏览器搜索

import webbrowserfrom urllib.parse import quotedef search_word(text): new_text =quote(text) url = 'http://www.baidu.com/s?wd=%s' % new_text webbrowser.open(url)target = "test 中国"search_word(target)注:url 链接只能包含ASCII字符,如果目标链接中有中文等非 ASCI

2020-08-05 16:40:19 991

原创 python 类的 public protected private 属性

本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 27 条:多用 public 属性,少用 private 属性三种属性python 类的成员变量中按可见度可划分为 public、protected 以及 private 属性class MyObject(object): def __init__(self): self.public_field = 5 self._protect_filed = 8

2020-08-05 10:44:50 2113 2

原创 Python mix-in 组件简介

整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 26 条,只在使用 Mix-in 组件制作工具类时进行多重继承mix-in 定义mix-in 是一种小型的类,它只定义了其他类可能需要提供的一套附加方法,而不定义自己的实例属性,此外,它也不要求使用者调用自己的 __init__ 构造器要点能用 mix-in 组件实现的效果,就不要用多重继承来做将各功能实现为可插拔的 mix-in 组件,然后令相关的类继承自己需要的那些组件,即可定制该类实例所

2020-08-04 10:06:59 550

原创 Python super 父类初始化

本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 25条:用 super 初始化父类简单的继承体系初始化父类的传统方式是在子类里用子类实例直接调用父类的 __init__ 方法class MyBaseClass(object): def __init__(self, value): self.value = valueclass MyChildClass(MyBaseClass): def __init__(se

2020-08-03 10:58:47 2097

原创 Python 如何实时绘制数据

提到 GUI 绘图,大家可能第一反应是 OpenGL 和 Matplotlib,但其实基于 Qt 平台还有个功能强大的 pyqtgraph 绘图库,不仅支持丰富的图形种类,还能实时更新绘...

2020-08-01 20:20:10 1804 1

原创 PyQt5 pyqtgraph 实时绘制数据

提到 GUI 绘图,大家可能第一反应是 OpenGL 和 Matplotlib,但其实基于 Qt 平台还有个功能强大的 pyqtgraph 绘图库,不仅支持丰富的图形种类,还能实时更新绘图数据并进行交互式操作。不同于网上其他文章或代码讲解,今天我们集中只关注实时绘制数据功能的实现。为了更精准学习该 pyqtgraph 模块功能,我们将参考官方给出的实例来边学边练。1. pyqtgraph 简介1.1 pyqtgraph 特点关于 pyqtgraph 与 Matplotlib 的对比,大致要点如下:

2020-08-01 19:51:34 24418 8

原创 PyQt5 作图之 pyqtgraph PlotWidget 代码结构拆解

关于 pyqtgraph 的介绍,网上一堆文章,但是涉及到其代码,尤其是 PlotWidget 应用的代码,要么附带的数据过于复杂不好摘,要么代码结构略复杂,对于刚接触的萌新很不友好,因此在这里自己拆解出一套 PlotWidget 代码供大家参考,每个代码都是独立可运行的,数据简单、主要观察代码结构。要点:独立的 PlotWidget 入门代码,QtDesigner 配合 PlotWidget 作图1. 最基础版 PlotWidget采用 QWidget 控件,在其上建立 PlotWidget 控件,

2020-08-01 15:41:13 10276 5

Python print 玩转点阵字

python3版本通过命令行或控制台,print字符构成汉字点阵字;可以自定义输入汉字进行字符输出展现点阵字

2019-01-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除