幻影麦昆(失败的尝试)-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7256|回复: 2

幻影麦昆(失败的尝试)

[复制链接]
发表于 2019-5-29 00:09 | 显示全部楼层 |阅读模式
原设想是利用 POV 的原理,在 microbit 上用一列 LED 来顺序显示一串字或图的每一列,让麦昆原地旋转来实现 POV 效果。
还没有发现怎样快速点 microbit 的一列 LED,只能用显示只有一列的 5x5 图形来显示,结果发现 LED 显示的切换很慢,即使没有加任何延迟的循环切换都感觉有 0.2 秒的延迟。然后是即使是使用最快的电机速度,结果还是太慢,最终这个幻影麦昆的尝试以失败告终。
在这里抛砖引玉,希望有大神指点。

这是一些失败代码(需要使用手动编辑):
[mw_shl_code=arduino,true]#include <Maqueen_Motor.h>
#include <DFRobot_NeoPixel.h>
#include <Microbit_Matrix.h>
#include <Microbit_Sensors.h>

Maqueen_Motor motor;

DFRobot_NeoPixel  rgb_display_15;
const uint8_t bitmap_orginal[] = {
  // B00110,B01111,B11110,B01111,B00110,
  B11111,B00010,B00100,B00010,B11111,
  /* B11100,B01010,B01001,B01010,B11100,
  B00110,B01001,B11001,B10110,B00000,
  B01111,B10000,B10000,B10000,B01111,
  B11111,B10101,B10101,B10101,B10001,
  B11111,B10101,B10101,B10101,B10001,
  B11111,B00010,B00100,B01000,B11111
  */
};
const int BITMAP_COUNT = sizeof(bitmap_orginal) / sizeof(bitmap_orginal[0]);
uint8_t bitmap_sets[BITMAP_COUNT][5];

void process_bit_map()
{
  for (int i = 0; i < BITMAP_COUNT; ++i)
  {
    bitmap_sets[0] = (bitmap_orginal >> 0) & 0x01;
    bitmap_sets[1] = (bitmap_orginal >> 1) & 0x01;
    bitmap_sets[2] = (bitmap_orginal >> 2) & 0x01;
    bitmap_sets[3] = (bitmap_orginal >> 3) & 0x01;
    bitmap_sets[4] = (bitmap_orginal >> 4) & 0x01;
  }
}

void setup() {
        // motor.motorRun(motor.LEFT,motor.CW,255);
        // motor.motorRun(motor.RIGHT,motor.CCW,255);
        rgb_display_15.begin(15, 4, 255);
        rgb_display_15.setRangeColor(0, 0, 0xff0000);
        rgb_display_15.setRangeColor(1, 1, 0xffff00);
        rgb_display_15.setRangeColor(2, 2, 0x0000ff);
        rgb_display_15.setRangeColor(3, 3, 0x00ff00);
       
        process_bit_map();
}

void loop1() {
  static int i = -1;
  if (++i >= BITMAP_COUNT)
    i = 0;
   
        MMatrix.show(bitmap_sets);
        delay(1);
}

void loop() {
  static int i = -1;
  while(true)
  {
    if (((Sensors.acceleration(Sensors.Y)) < 0)) {
      continue;
          }
          
    if (++i >= BITMAP_COUNT)
      i = 0;
      
          MMatrix.show(bitmap_sets);
  }
}
[/mw_shl_code]
上面的图形数组是用自动生成的代码复制过去的,长这样:
pov.jpg
最终呢试了试只显示一个麦昆的 M 字,用手摇,效果也不咋滴,原因是这些 LED 点阵本来就是动态扫描的,所以最后的显示也会发生错乱:
IMG_6081.JPG
IMG_5863.JPG

发表于 2019-5-29 17:40 | 显示全部楼层
小板凳已搬好,帮大神占个位
 楼主| 发表于 2019-5-30 02:36 | 显示全部楼层
dfrobot 发表于 2019-5-29 17:40
小板凳已搬好,帮大神占个位

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

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 06:26 , Processed in 0.110369 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表