[项目]树莓派——全息舱 精华

4420浏览
查看: 4420|回复: 3

[项目] 树莓派——全息舱

[复制链接]
本帖最后由 云天 于 2024-1-5 23:50 编辑

【项目背景】
冬奥全息舱“云拜年”登上黑科技热搜,2022年2月6日,国际奥委会主席巴赫“现身”2022北京新闻中心云聚展区,通过跨区域云全息技术向中外媒体记者“云拜年”。

树莓派——全息舱图3

“全息舱”的效果很惊艳,我也跃跃欲试。通过查阅网络资料,制作一个小型“全息舱”是可行的。

【项目设计】

硬件使用旧液晶显器结合树莓派和语音识别模块、LED灯带。旧液晶显器制作“全息舱”,LED灯带提供光源,树莓派播放“白背景”视频,语音识别模块控制视频播放、光源开关颜色转换指令。蓝牙键盘用来运行Python程序。
树莓派——全息舱图2



【全息舱制作】

旧显示器
树莓派——全息舱图4



拆解显示器
树莓派——全息舱图5树莓派——全息舱图6树莓派——全息舱图8树莓派——全息舱图9树莓派——全息舱图7树莓派——全息舱图11树莓派——全息舱图10树莓派——全息舱图12



把背光板与lcd液晶显示模组分开。不再使用背光板提供光源。使用LED灯带提供光源。
树莓派——全息舱图16


树莓派——全息舱图13树莓派——全息舱图14




制作“白舱”
树莓派——全息舱图15


固定电源板、显示电路板、电池组(为树莓派扩展板供电)
树莓派——全息舱图18

固定LED灯带,安装电源线、VGA视频线。
树莓派——全息舱图17


粘贴外壳,固定树莓派。

树莓派——全息舱图20

树莓派——全息舱图19





树莓派——全息舱图1


【测试语音识别模块】

树莓派安装扩展板,语音识别模块接IIC引脚,LED灯带接18引脚。
树莓派——全息舱图21




树莓派Python程序

  1. # -*- coding: utf-8 -*
  2. from __future__ import print_function
  3. import sys
  4. import os
  5. sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
  6. from DFRobot_DF2301Q import *
  7. import time
  8. from rpi_ws281x import PixelStrip, Color
  9. import argparse
  10. LED_COUNT = 24# LED灯的个数
  11. LED_PIN = 18      # DI端接GPIO18
  12. # 以下可以不用改
  13. LED_FREQ_HZ = 800000  #LED信号频率以赫兹为单位(通常为800khz)
  14. LED_DMA = 10          #用于生成信号的DMA通道(尝试10)
  15. LED_BRIGHTNESS = 255  #设置为0表示最暗,设置为255表示最亮
  16. LED_INVERT = False    # #为True以反转信号(当使用NPN晶体管电平偏移时)
  17. LED_CHANNEL = 0       #GPIO 13、19、41、45设置为“1”或35
  18. '''
  19.   @brief Module I2C communication init
  20.   @param i2c_addr - I2C communication address
  21.   @param bus - I2C bus
  22. '''
  23. DF2301Q = DFRobot_DF2301Q_I2C(i2c_addr=DF2301Q_I2C_ADDR, bus=1)
  24. #控制LED灯显示颜色
  25. def colorWipe(strip, color, wait_ms=20):
  26.     for i in range(strip.numPixels()):
  27.         strip.setPixelColor(i, color)
  28.         strip.show()
  29.         time.sleep(wait_ms / 1000.0)
  30. def setup():
  31.   global strip
  32.   DF2301Q.set_volume(5)#语音模块的音量设置
  33.   DF2301Q.set_mute_mode(0)#静音开关
  34.   DF2301Q.set_wake_time(60)#唤醒后,响应时间
  35.   parser = argparse.ArgumentParser()
  36.   parser.add_argument('-c', '--clear', action='store_true', help='clear the display on exit')
  37.   args = parser.parse_args()
  38.    #使用适当的配置创建NeoPixel对象。
  39.   strip = PixelStrip(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)
  40.   #初始化库(必须在其他函数之前调用一次)。
  41.   strip.begin()
  42.   print('Press Ctrl-C to quit.')
  43.   if not args.clear:
  44.         print('Use "-c" argument to clear LEDs on exit')
  45.   DF2301Q.play_by_CMDID(23)   # 完成提示音
  46. num=0
  47. def loop():
  48.   global num
  49.   CMDID = DF2301Q.get_CMDID()
  50.   if(117== CMDID):#打开灯光
  51.     colorWipe(strip, Color(255, 255, 255))
  52.   elif(133== CMDID):#设置颜色为绿色
  53.     colorWipe(strip, Color(0, 255, 0))
  54.   elif(135== CMDID):#设置颜色为蓝色
  55.     colorWipe(strip, Color(0, 0, 255))
  56.   elif(130== CMDID):#设置颜色为红色
  57.     colorWipe(strip, Color(255, 0, 0))
  58.   elif(118== CMDID):#关闭灯光
  59.     colorWipe(strip, Color(0, 0, 0))
  60.   print(num)
  61. if __name__ == "__main__":
  62.   setup()
  63.   while True:
  64.     loop()
复制代码
树莓派——全息舱图22



注:要安装相应的库:pinpong,pyserial,rpi_ws281x
【播放视频】
使用树莓派系统自带的VLC播放器播放视频。
树莓派——全息舱图23


树莓派——全息舱图24


树莓派——全息舱图25


【Python程序控制视频播放】
最好使用omxplayer库来进行播放视频。本例使用的os结合vlc播放视频。
  1. elif(5== CMDID):#播放视频
  2.    num=1
  3.    os.system('/usr/bin/vlc-wrapper video1.mp4')
  4. elif(6== CMDID): #播放上一个
  5.    num=num-1
  6.    if num<1:
  7.       num=5
  8.    os.system('/usr/bin/vlc-wrapper video'+str(num)+'.mp4')
  9. elif(7== CMDID): #播放下一个
  10.    num=num+1
  11.    if num>6:
  12.       num=1
  13.    os.system('/usr/bin/vlc-wrapper video'+str(num)+'.mp4')
复制代码

【演示视频】




IMG_20240105_204259.jpg

三春牛-创客  初级技神

发表于 2024-1-6 15:29:46

太厉害了!!!
回复

使用道具 举报

 中级技师

发表于 2024-1-10 16:29:33

背光板与LED显示屏分开,用白色背景做仓体,播放白色背景视频,显现出全息效果,实际上还是在显示屏上显示图像,只是造成空间视觉错位,是不是这样理解的。
回复

使用道具 举报

云天  初级技神
 楼主|

发表于 2024-1-12 11:15:57

对的,只是一开始,我用原背光板发光,做为源。一是光太强,显的上下左右都是黑的。在盒子中背面发光也不合理,后来采用单独用LED灯带,顶上发光,提供光源,效果好一些。实际效果受视频质量影响,手机里拍摄的效果好一些,实际用眼睛看,效果一般。可能大脑自动进行了纠正。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail