1 i: h: r6 Y; z8 O W8 M DIY带有OpenMV模块和热敏打印机的相机: j1 _! D. T% |5 _2 g m5 F. ]5 D $ L7 L/ }& g- W9 u8 Y& E7 x 描述7 k+ L$ p1 r8 s- m7 \ 你可能手上有AdaFruit热敏打印机,和OpenMV。 你几年前买下了前者,知道你会用它做一些很酷的事情,你在hackaday的其他项目中了解了后者。6 T9 ~+ d" C3 B$ f7 |3 p" K. a 当这一刻到来的时候,你知道它会到来——是时候做一个拍立得相机了。 有一天,这个想法让我一直失眠到凌晨5点,我设计一个看起来像照相机的外壳。这是结果。/ I5 R( A3 W2 [" H, ~) d: ~, l$ X 1 C. i! [. a) m& T i 细节 请见视频 硬件 在硬件方面,没有什么特别的。我用无人机上的锂电池。 它为热敏打印机和5V稳压供电。稳压为OpenMV模块和LCD屏幕供电。- }6 P4 D, a) Z. x/ F$ B* d, d$ @% | 触发器有一个按钮,模式选择有一个滑动开关,两者都直接插入OpenMV iO口。 热敏打印机通过UART连接,而LCD屏幕使用SPI。' M& ~, a7 h5 J. H$ x; H1 S L ) A+ `; E2 x; c B1 v
# _/ {0 o2 Z4 P3 T+ n 软件+ Y! }3 u5 k# O; v$ ~. U& b 对于这个项目,我在Ada_Drivers_Library中增加了对OpenMV的支持。 j( c3 [' e5 A$ ~" a4 U 这是个做数码相机接口(DCM )驱动程序以及两个OmniVision相机传感器、ST7735 LCD驱动程序和热敏打印机程序的机会。 热敏打印机只能打印黑色或白色像素位图(没有灰度),这对于图片效果来说不是很好。+ V, D0 `' A$ K6 n5 L6 Y" v 幸运的是,打印头的像素是QQVGA图像的3倍,这是我从OpenMV相机得到的格式。 如果我也将宽度乘以3,对于摄像机中的每个RGB 565像素,我可以在纸上获得9个黑色或白色像素(从160×120到480×360 )。这意味着我可以使用抖动算法来产生更高质量的图像。6 g( i" m$ u: l2 s 灰度值X从0到255的像素将在3×3黑白矩阵中变换,如下所示: / _6 X4 ?; L e& K( q K6 N; M
这是一种快速的抖动,使用Floyd-Steinberg算法或类似算法可以大大提高图像质量,但是需要更多的计算和内存。" S c7 W2 x1 I0 x9 z 代码在GitHub上。( ^. y' g, l/ d
详情请见adacore8 m) |: ], d! j. i6 } 8 }* E6 H# k' }( X |
微信公众号
手机版
感谢分享