电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>光摄影机器人开源

光摄影机器人开源

2023-07-03 | zip | 0.00 MB | 次下载 | 免费

资料介绍

描述

你知道你可以用长曝光相机制作光绘吗?光绘是一种摄影技术,其中通过移动手持光源同时拍摄长时间曝光照片进行曝光。

 

这是完成的漫游车的照片。

 
pYYBAGOYQ2KAL9g0AAGyNFmXHiM389.jpg
 

构建机箱

为了创建光摄影,我们将使用这个可编程的 8x8 LED 矩阵。我们之前在LED Hat项目中使用过灵活版本。社区中的大多数人通常使用 Arduino 来控制这些矩阵,但我们决定使用 Raspberry Pi,以便我们可以为软件存储更多图像数据并轻松从 Internet 下载新图像。

 
 
 
 
pYYBAGOYQ2mAb-OzAAHZdPKrTJc022.jpg
 
1 / 2
 

机器人底盘由几个不同的 3D 打印部件组成。不幸的是,零件的数量(以及这些零件的公差)太高了,所以我们决定不制定 MDF 版本的计划。如果您想自己制作并且没有 3D 打印机,您通常可以在公共图书馆/学校找到一台或使用在线3D 打印服务

底盘有一个主底座,我们可以在其中连接所有零件和支架。从底座开始,我们在后面插入了一个小型便携式手机电池,并用一些 2.5 毫米的螺栓和螺母将我们的 Raspberry Pi 连接到前面。顶部连接了一个小支架,以便我们可以在需要时轻松移除 Raspberry Pi。

 
 
 
 
poYBAGOYQ2yAYWpKAAFLr8WWebA178.jpg
 
1 / 3
 

车轮由 2 个 NEMA 17 200 rev 步进电机驱动。使用了步进电机,以便我们可以做出精确的动作来绘制光绘图像。我们在这个项目中使用了两个步进电机分线板,而不是我们用于自动气枪炮塔的步进电机 HAT,因为我们发现它们在并行移动两个电机时抖动较小。两块板都用一个小的 3D 打印夹子和一些 2.5 毫米的螺栓连接到火星车的前部。

 
 
 
 
poYBAGOYQ3OAQ2QGAAFU2HS_ics605.jpg
 
1 / 2
 

四个母跳线延长线焊接到每个步进电机。在另外两个支架的帮助下,它们安装在底盘下方。一些 3 毫米螺钉用于连接电机。由于我们的螺钉稍长,我们在螺钉头下方添加了几个机器人作为垫片。电线在 Raspberry Pi 下方布线并直接连接到分线板上。可以在此处找到这些分线板的接线指南。

 
 
 
 
poYBAGOYQ3WAd7MwAAGftrmKsBk660.jpg
 
1 / 3
 

为了让步进电机与我们的电池一起工作,我们需要使用升压适配器将电压从 5v 放大到 12v。将两根电线焊接到放大器的接地/热销上,然后连接到步进电机分线板上。

 
pYYBAGOYQ3mAK9nOAAGd8lI7XiA602.jpg
 

接下来我们安装了 3D 打印的轮子。每个轮子都连接到步进电机的轴上,并用一个小的 3mm 固定螺钉固定到位。在喷漆过程中,将几条小橡皮筋固定在车轮上以增加抓地力。

 
 
 
 
poYBAGOYQ3-AB6iWAAFyp4FGB_o247.jpg
 
1 / 2
 

升压适配器和 Raspberry Pi 已插入 5v 电池。我们将 LED 矩阵与 3D 打印支架连接,并将信号线插入 Raspberry Pi 上的引脚 18。使用烙铁将小型 USB 电缆连接到 LED 矩阵上的 +/- 端子这个 USB 也插入了 5v 电池。

 
 
 
 
poYBAGOYQ4OAdgeSAAIgu_NlNus303.jpg
 
1 / 3
 

运行代码

确保安装以下依赖项:

Pillow
RPi.GPIO
numpy

我们还使用了一个自定义的 Raspberry Pi Neopixel 库,在这里可以找到:https ://github.com/jgarff/rpi_ws281x

按照 Raspberry Pi 安装说明进行操作。

在 light_rover.py 的底部,我们为所有组件配置了引脚。确保这些引脚正确。

stepper1 = Stepper(2, 3, 4, 17) 
stepper2 = Stepper(27, 22, 10, 9)
led_matrix = create_strip(64, led_pin=18)

绘图向量

矢量图像用于表示计算机图形中的图像。它们由具有大小和角度的几条线组成。您可以通过对代码进行一些修改来让您的轻型机器人绘制矢量图形。

确保以下部分在末尾被注释掉light_rover.py:

#if imageFile:         
#    rover.paint_image(imageFile)     
#else:         
#    print "No image file provided!" exit(1)

取消注释以下行:

rover.paint_vector(dog, single_value_affects_pixels=[27, 28, 35, 36])

vector_drawings.py 文件中选择一个向量并在函数中更改该值paint_vector

要运行,请确保您在项目目录中并执行:

sudo python light_rover.py

绘图图像

您还可以使用 LED 矩阵逐像素绘制图像。小图像(~100px x 100px)通常效果最好。确保以下部分在末尾被注释掉light_rover.py:

# rover.paint_vector(dog, single_value_affects_pixels=[27, 28, 35, 36])

取消注释以下行:

if imageFile:         
    rover.paint_image(imageFile)     
else:         
    print "No image file provided!" exit(1)

要运行,请确保您在项目目录中并执行:

sudo python light_rover.py images/sb.png

它是如何工作的?

连接到漫游车车轮上的两个步进电机可以进行微调转弯,在相机快门打开时将漫游车移动到指定的路径上。矢量图像是通过将漫游车发送任意距离,然后转动任意角度以排队等待下一次运动来创建的。使用这种技术,我们能够绘制几个不同的直线图像。

 
poYBAGOYQ4iAQWxuAAHFrS8eGWA125.jpg
此图像说明了将用于绘制矢量框的运动
 

如果要创建自己的矢量绘图,请在以下位置添加一个新的矢量数组:

vector_drawings.py

如:

rectangle = [LightVector(1000, 90, [[0, 255, 0]]),
            LightVector(800, 90, [[0, 255, 255]]),
            LightVector(1000, 90, [[0, 255, 0]]),
            LightVector(800, 90, [[0, 255, 255]])]

LightVector 采用以下参数

def __init__(self, steps, angle, pixel_data):
       """
       :param steps: number of steps to move
       :param angle: angle to turn after the movement
       :param pixel_data: a 2d array of pixel data [[r, g, b]...n] where n is the number of pixels in the matrix
       """

图像的绘制方式略有不同。我们没有将流动站移动到一系列矢量上,而是分割出图像的 8x8 部分,并在流动站从图像的右上角逐行移动到左下角时,在 LED 矩阵上闪烁这些像素。每次闪光后,流动站的移动刚好足以排列图像中的下一组像素。

 
pYYBAGOYQ5CAXrPAAAHKMrfl2mg560.jpg
这张图片说明了用于复制光绘图片的动作
 

通常,小于 120x120 像素的图像最适合光绘。我们的程序会自动为您分割图像。

拍照

要拍照,请确保将相机放置在足够高的位置以捕捉整个图像。关闭所有灯并确保您的相机处于灯泡定时器模式。

在某些相机上,您必须按住快门按钮才能捕捉图像,但如果可以的话,最好设置一个自动定时器。

我们的相机在低 ISO 设置下使用 5 分钟曝光,镜头光圈降至 f/10。我们发现这样可以产生最好的光绘图像,而不会让房间中的一些环境光泄漏。

 
poYBAGOYQ5SAS1nZAAJbCzxkKas654.jpg
 

测试一下!

现在您已经构建了您的漫游车,继续尝试吧!如果您制作了任何有趣的新图片,请务必将它们发布在这里,以便我们查看。

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费