当前位置: 首页 > news >正文

课程规范性要求

课程制作规范

图片规范

允许范围:CC协议 / 作者授权 / 网站代理授权书
图片大小要求:1600 x 1200 dpi
图片长宽比:4:3

每章节格式要求

Week number

本周目标

1.通过背景学习,了解四足机器狗mini pupper上的微型控制计算机:树莓派。
2.通过使用GPIO对树莓派的LED灯进行控制的实例学习,了解digital与analog的区别。
3.通过对舵机的控制,掌握PWM的用法,了解四足机器狗mini pupper腿部单个舵机的基本控制。

课程内容

1.什么是树莓派?

树莓派(Raspberry Pi)是英国树莓派基金会开发的低成本微型单板计算机,硬件上配置有SoC (片上系统),具有 GPU和RAM并支持有线、无线连接方案,有着完善的社区与软件支持。
树莓派在具备计算机基本功能的同时,保持着一张卡片的大小,这意味着你可以简单便捷地搭建自己的机器人编程平台,并将微型计算机部署在小巧可爱的四组机器狗mini pupper上。

WARNING:图片均无商用版权,以下图片均需注意替换可商用图片

图片1:树莓派4B
请添加图片描述

2.如何使用树莓派?

在了解了树莓派的基本知识后,你将学习如何使用树莓派做一些简单的操作,比如控制树莓派板载LED灯闪烁。

实例1:控制树莓派板载LED灯闪烁

通过对树莓派本体板载LED灯的闪烁控制,熟悉对树莓派的控制。

实验要求

改变树莓派状态灯亮灭状态,使之发生周期为1s的持续闪烁。

实验知识

  1. 状态灯
    在树莓派4B上,状态灯对应的文件为如下,通过对文件的读写,可以改变状态灯的亮灭和亮度大小。
# 树莓派4B状态灯
/sys/class/leds/led1/brightness #亮度大小
/sys/class/leds/led1/trigger # 亮灭开关
  1. Python open()函数的用法
    python open() 函数用于打开一个文件。
    参考链接:Python官方 open()命令的详细资料
varible_name = open(file_name,mode,buffering)
# name : 要访问的文件名,需以字符串形式表现,比如'/sys/class/leds/led0/brightness'
# mode : 打开文件的模式,写入的模式为:'wb'
# buffering :缓冲,为了不调用close方法,实现无缓冲写入,此处为:0
status_led = open('/sys/class/leds/led1/brightness', 'wb', 0)
  1. Python sleep()函数的用法
    python sleep()函数推迟调用线程的运行,可以实现延时功能
    调用sleep()函数需首先引入time库的sleep函数
    参考链接:Python官方 time.sleep()命令的详细资料
from time import sleep
# 引入time库的sleep函数
time.sleep(time)
#	暂缓延时,长达time
sleep(0.5)
  1. 写入LED灯文件改变状态
status_led.write(b'1') # LED熄灭 b为encode到二进制
status_led.write(b'0') # LED开启

图片2:树莓派LED灯细节图

实验步骤

  1. 编写Python程序
#!/usr/bin/env python
# -*-coding:utf-8 -*-
from time import sleep
status_led = open('/sys/class/leds/led1/brightness', 'wb', 0)
while True:status_led.write('0')	#	Turn onsleep(0.5)status_led.write('1')	#	Turn offsleep(0.5)
  1. 运行程序,观察实验效果
    在led_blink.py的目录下执行以下命令:
sudo python led_blink.py

此时应观察到act-led绿灯闪烁,周期为1s。

图片3:gif图片 LED闪烁实验效果

http://www.lryc.cn/news/8649.html

相关文章:

  • 华为OD机试 - 优秀学员统计(Python)| 真题+思路+考点+代码+岗位
  • 布林线(BOLL)计算公式详解,开口收口代表什么
  • 模糊的照片能修复吗?
  • 【Java|多线程与高并发】详解start()方法和run()方法的区别
  • mysql 一些有意思的sql语句,备忘
  • hive自定义函数
  • 数仓理论【范式】【维度建模】
  • 卷积神经网络
  • 解决Qt提示xxx.so not found( using -rpath or -rpath-link)问题
  • Blazor 托管模型 BlazorWebAssembly和Blazor Server
  • 从未想过制作数据可视化展示竟可以如此简单
  • 企业电子招投标采购系统源码之功能模块的描述
  • LeetCode-2341. 数组能形成多少数对【哈希表,计数】
  • vue-echarts实现多功能图表
  • C#快键精灵
  • 谷歌、微软、Meta?谁才是 Python 最大的金主?
  • 面向对象笔记
  • tofu:一款功能强大的模块化Windows文件系统安全测试工具
  • VS中scanf为什么会报错
  • 使用kubeadm部署k8s1.24.0版本,遇到的坑总结
  • 【C++】特殊类设计
  • 中创教育PMP如何轻松应对公司90%以上的沟通难题
  • #笨鸟先飞# 数据结构与算法基础 课程笔记 第六章 图
  • 深入浅出带你学习Apache中间件常见漏洞
  • 用多种指针方法访问数据元素,实现逆序输出
  • WebDAV之葫芦儿·派盘+NMM
  • Redis多级缓存
  • 【原创】java+swing+mysql会议室管理系统设计与实现
  • 【Redis】Redis 常用数据类型操作 ① ( 数据库操作 | Redis 数据库连接参数 | Redis 数据库个数 | Redis 访问机制 )
  • GAMES101-计算机图形学入门 LEC4: TRANSFORMATION-3D