资料介绍
描述
想成为一只绝望的霸王龙,准备好带着喜悦和兴奋去探索奇妙的 2-D、8 位、二进制彩色谷歌浏览器世界吗?因此,请确保您每天锻炼膝盖以跟上高分。
该项目在MLH组织的Who Wants to be Hackionaire黑客马拉松中获得了 Digi-Key 颁发的最佳硬件黑客类别奖
第一步:零件
我使用 CircuitPython 对 Seeeduino Xiao 进行了编程,但它也与 Arduino 兼容。您可以选择任何支持 CircuitPython 的 ATSAMD21 微控制器板来完成这个项目。我选择Xiao是因为它的体积很小,适合可穿戴项目。
注:对于通用 I/O 引脚:MCU 的工作电压为 3.3V。连接到通用 I/O 引脚的电压输入高于 3.3V 可能会导致芯片损坏。
对于电源引脚:内置的DC-DC转换器电路能够将5V电压变为3.3V,允许通过VIN-PIN和5V-PIN为设备提供5V电源。
Adafruit LIS3DH 是一款三轴加速度计,其库支持 I2C 和 SPI,但我们将在此项目中使用 SPI 接口。该板的更新版本是黑色的, 两侧都有 STEMMA QT 连接器或SparkFun Qwiic I2C 连接器。
我最初在面包板上制作了我的项目,然后我焊接在 PCB 上的母头上以改善外形。如果你愿意,你可以直接焊接电路板,因为它有齿形引脚并且不会太突出。
第二步:概念
所以这个项目主要包括3个部分:
加速度计用于检测由于运动引起的人的加速度变化。当一个人跳起来或蹲下时,他/她会产生相对加速度来这样做。我们通过取 X、Y 和 Z 轴的绝对值来测量加速度的变化,因为无论我们向上还是向下,变化都是正的。
项目的输出单元发送命令按下向上箭头键,红色 LED 亮 500 毫秒。同样,如果它检测到一只鸭子,板子按下向下箭头键并打开蓝色 LED 500 毫秒。我print
在两者之间添加了一些语句,但这仅用于调试目的,可以忽略。由于Seeeduino Xiao 在撰写本文时不支持 Mu 的串行控制台,因此您可以使用PuTTY或 Arduino 的串行监视器之类的应用程序来查看 X、Y 和 Z 轴的值。
第三步:理解代码
# code.py
"""
Project Name: Jump Yo' Rex
Author: Advik Singhania
Created On: 28th November, 2020; 07:48 PM IST
Make sure to copy the adafruit_hid library folder and
adafruit_lis3dh to the /lib folder of your CIRCUITPY drive.
I've connected a red LED to pin D4 to indicate jumps and
a blue LED to pin D0 to indicate ducks.
This source code has been tested for Seeeduino Xiao and can also work on CircuitPython supported boards.
"""
import time
import board
import digitalio
import busio
import adafruit_lis3dh
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
from adafruit_hid.keycode import Keycode
# Configurnig pins for the SPI connection:
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
cs = digitalio.DigitalInOut(board.D5) # Set to appropriate CS pin!
int1 = digitalio.DigitalInOut(board.D6) # Set to correct pin for interrupt!
lis3dh = adafruit_lis3dh.LIS3DH_SPI(spi, cs, int1=int1)
# Initializing Keyboard:
keyboard = Keyboard(usb_hid.devices)
keyboard_layout = KeyboardLayoutUS(keyboard)
time.sleep(1)
# Setting up LEDs for Jump(ledj) and Duck(ledd)
ledj = digitalio.DigitalInOut(board.D4)
ledj.direction = digitalio.Direction.OUTPUT
ledd = digitalio.DigitalInOut(board.D0)
ledd.direction = digitalio.Direction.OUTPUT
# Printing is for debugging, you can comment the print statements if you want.
print("Waiting for action...")
while True:
ledj.value = False # Turning Off LEDs
ledd.value = False
x, y, z = lis3dh.acceleration # Getting values for the acceleration in x, y and z axes
x, y, z = abs(x), abs(y), abs(z) # Taking the absolute of the values since the change in relative acceleration will always be positive
# print(x, y, z)
# Setting up default position:
if 8 < x < 10:
pos = x
elif 8 < z < 10:
pos = z
else:
pos = y
# Detecting jumps and ducks:
if pos > 11: # You can change these values according to your sensitivity
print(x, y, z)
keyboard.press(Keycode.UP_ARROW) # "Press"...
keyboard.release_all()
print('Jumped')
ledj.value = True
time.sleep(0.5)
elif pos < 8: # You can change these values according to your sensitivity
print(x, y, z)
keyboard.press(Keycode.DOWN_ARROW) # "Press"...
print('Ducked')
ledd.value = True
time.sleep(0.5)
keyboard.release_all()
time.sleep(0.5)
time.sleep(0.05)
在源代码中,我们首先导入板子内置的必要的标准库,如time
、 。然后要使用其他硬件,我们手动添加和库,以使功能正常工作。我们使用串行外设接口(SPI)连接在加速度计和微控制器板之间进行通信,因此我为此设置了引脚配置。board
digitalio
adafruit_bus_device
adafruit_hid
adafruit_lis3dh
然后我们初始化我们将使用什么样的键盘,这是美国标准布局。有 1 秒的延迟,以便在程序开始进一步执行之前准备好。ledj
(红色 LED)用于指示何时发生跳跃,而ledd
(蓝色 LED)用于指示何时发生鸭子。
主while
循环由需要连续运行的所有逻辑组成。该板通过检查哪个轴的值在重力常数(g ~ 9.8 m/s²)范围内来检查默认位置。然后它计算加速度的变化是否大于 10(大约 g)。此时,您可以根据自己的要求查看和校准 if 条件下的值。如果pos
值大于 11,则执行跳转(向上箭头和红色 LED),如果小于 8,则执行鸭子(向下箭头和蓝色 LED)。
如果您还没有,请开始使用CircuitPython 。您需要在 PC 上安装Mu (CircuitPython 的首选编辑器),并确保您正在使用的板上运行最新版本的 CircuitPython。更多信息可以在这里、那里和任何地方找到。
现在从 GitHub 存储库下载 code.py 和 lib.zip 后,解压缩 lib.zip 并将 lib 文件夹复制到电路板的 CIRCUITPY 驱动器中。断开 Internet 并打开 Google Chrome T-Rex 游戏。
现在将code.py复制到驱动器的父目录中。
注意:一旦您将 code.py 复制到 CIRCUITPY 驱动器中,代码就会开始执行,因此请关闭您认为重要的窗口,否则它们可能会损坏。因为项目将控制向上和向下箭头键。
第四步:接线
上传代码后,断开电路板并将组件连接到面包板上,如上图所示。Xiao 和 LIS3DH 之间的连接非常简单:
- 板 3V至传感器 Vin
- 板 GND到传感器 GND
- 板 SCK到传感器 SCL
- 板 MOSI到传感器 SDA
- 板 MISO到传感器 SDO
- 板 D5到传感器 CS
- 板 D6到传感器 INT
将红色 LED ( ledj
) 的正极引线通过 220 欧姆电阻连接到引脚 D4,蓝色 LED ( ledd
) 的正极引线通过 220 欧姆电阻连接到引脚 D0。将 LED 的接地线连接到公共 GND。
你完成了!
第五步:完成。下一步是什么?
您可以将此设备佩戴在腰部或腰部以上,以便 T-Rex 跟踪您的动作。您还可以像我一样将组件焊接在通用 PCB 上以改善外形尺寸并为其制作一个案例。该项目仍然使用 USB 数据线为计算机供电并与计算机交互,因此我计划改用蓝牙,并会尝试改善交互超时。很快,里面的霸王龙就会摆脱束缚,四处游荡,跳跃并发疯。
- Lyapunov分形与Seeeduino Wio终端开源
- 如何使用Seeeduino XIAO-LED闪烁
- 使用Seeeduino Xiao从汽车中获取数据
- AI WB2和XIAO RP2040组合开源
- 基于Seeeduino XIAO的血氧心率计 2次下载
- MakerDiary NRF52840上的CircuitPython
- Seeeduino XIAO扩展板超声波距离传感器开源分享
- 使用Seeeduino XIAO和火焰传感器进行火灾检测
- Seeeduino XIAO气象站使用扩展板
- 串行PiC编程器开源项目
- USB编程器开源项目
- 三菱PLC编程实例项目例程 14次下载
- 三菱PLC编程实例项目例程之输送机机械手 29次下载
- 基于Arduino硬件光控灯制作资料 6次下载
- Seeeduino XIAO扩展板的电路原理图 45次下载
- 基于XIAO ESP32S3 sense开发板的小型相机设计 135次阅读
- 基于XIAO SAMD21开发板的多功能笔筒设计方案 87次阅读
- 基于XIAO SAMD21开发板的数字键盘制作方案 125次阅读
- 关于FPGA的开源项目介绍 1161次阅读
- 基于XIAO的图像分类处理项目 1118次阅读
- 使用Rust和Nomad进行开源游戏服务器管理 517次阅读
- 优秀的IC/FPGA开源项目:伪红外图像处理 1949次阅读
- 怎么上手 PR 流程?如何开始参与开源项目? 1470次阅读
- 如何使用Travis CI对Github项目进行持续集成来提升项目开发的效率 732次阅读
- 全年开源项目的盘点和总结 3231次阅读
- 基于Altium Designer的OSHw开源项目 3609次阅读
- 2018 年 2 月份 GitHub 上最热门的开源项目 4554次阅读
- 最受欢迎的七种商用开源编程语言的全面报告 6263次阅读
- FAST:基于FPGA的SDN交换机开源项目(一) 4531次阅读
- 11个机器学习开源项目 2767次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多