Все,
наверное, знают об эффекте возникающей надписи или рисунка при быстром
перемещении планки, иногда диска с полосой светодиодов, которые
загораются специально синхронизированным образом. Эффект называется персистенция.
Сам эффект основан на инерции человеческого глаза. Для того чтобы
возник такой эффект, светодиоды должны загораться в определенные моменты
времени так, чтобы они светили в фиксированных точках пространства при
перемещении влево-вправо.
В конструкции, о которой пойдет речь, автором был использован акселерометр на монтажной плате с планкой светодиодов и Arduino Diecimila для управления. Питание осуществляется по USB, но можно подключить и автономное.
Сборка
Монтаж был произведен на макетной плате. Были смонтированы планка
светодиодов, прямые коннекторы для подключения к плате Ардуино и краевой
коннектор для акселерометра. Плата подключается к Arduino как
стандартная плата расширения.
Маленькая зеленая плата - трехосевой акселерометр, с которого
снимается значение через аналоговые входы Arduino. В зависимости
от ускорения акселерометр меняет напряжение на своих выходах.
Код
0x00,0x00,0x00,0x00,0x00, |
0x00,0xF6,0xF6,0x00,0x00, |
0x00,0xE0,0x00,0xE0,0x00, |
0x28,0xFE,0x28,0xFE,0x28, |
0x00,0x64,0xD6,0x54,0x08, |
0xC2,0xCC,0x10,0x26,0xC6, |
0x4C,0xB2,0x92,0x6C,0x0A, |
0x00,0x00,0xE0,0x00,0x00, |
0x00,0x38,0x44,0x82,0x00, |
0x00,0x82,0x44,0x38,0x00, |
0x88,0x50,0xF8,0x50,0x88, |
0x08,0x08,0x3E,0x08,0x08, |
0x00,0x00,0x05,0x06,0x00, |
0x08,0x08,0x08,0x08,0x08, |
0x00,0x00,0x06,0x06,0x00, |
0x02,0x0C,0x10,0x60,0x80, |
0x7C,0x8A,0x92,0xA2,0x7C, |
0x00,0x42,0xFE,0x02,0x00, |
0x42,0x86,0x8A,0x92,0x62, |
0x44,0x82,0x92,0x92,0x6C, |
0x10,0x30,0x50,0xFE,0x10, |
0xE4,0xA2,0xA2,0xA2,0x9C, |
0x3C,0x52,0x92,0x92,0x0C, |
0x80,0x86,0x98,0xE0,0x80, |
0x6C,0x92,0x92,0x92,0x6C, |
0x60,0x92,0x92,0x94,0x78, |
0x00,0x00,0x36,0x36,0x00, |
0x00,0x00,0x35,0x36,0x00, |
0x10,0x28,0x44,0x82,0x00, |
0x28,0x28,0x28,0x28,0x28, |
0x00,0x82,0x44,0x28,0x10, |
0x40,0x80,0x8A,0x90,0x60, |
0x7C,0x82,0xBA,0xBA,0x62, |
0x3E,0x48,0x88,0x48,0x3E, |
0xFE,0x92,0x92,0x92,0x6C, |
0x7C,0x82,0x82,0x82,0x44, |
0xFE,0x82,0x82,0x82,0x7C, |
0xFE,0x92,0x92,0x92,0x82, |
0xFE,0x90,0x90,0x90,0x80, |
0x7C,0x82,0x82,0x8A,0x4E, |
0xFE,0x10,0x10,0x10,0xFE, |
0x82,0x82,0xFE,0x82,0x82, |
0x84,0x82,0xFC,0x80,0x80, |
0xFE,0x10,0x28,0x44,0x82, |
0xFE,0x02,0x02,0x02,0x02, |
0xFE,0x40,0x20,0x40,0xFE, |
0xFE,0x60,0x10,0x0C,0xFE, |
0x7C,0x82,0x82,0x82,0x7C, |
0xFE,0x90,0x90,0x90,0x60, |
0x7C,0x82,0x82,0x86,0x7E, |
0xFE,0x90,0x98,0x94,0x62, |
0x64,0x92,0x92,0x92,0x4C, |
0x80,0x80,0xFE,0x80,0x80, |
0xFC,0x02,0x02,0x02,0xFC, |
0xF8,0x04,0x02,0x04,0xF8, |
0xFC,0x02,0x0C,0x02,0xFC, |
0xC6,0x28,0x10,0x28,0xC6, |
0xC0,0x20,0x1E,0x20,0xC0, |
0x86,0x8A,0x92,0xA2,0xC2, |
0x00,0x00,0xFE,0x82,0x00, |
0x00,0x00,0x00,0x00,0x00, |
0x80,0x60,0x10,0x0C,0x02, |
0x20,0x40,0x80,0x40,0x20, |
0x01,0x01,0x01,0x01,0x01, |
0x80,0x40,0x20,0x00,0x00, |
0x04,0x2A,0x2A,0x2A,0x1E, |
0xFE,0x12,0x22,0x22,0x1C, |
0x1C,0x22,0x22,0x22,0x14, |
0x1C,0x22,0x22,0x12,0xFE, |
0x1C,0x2A,0x2A,0x2A,0x18, |
0x10,0x7E,0x90,0x80,0x40, |
0x18,0x25,0x25,0x25,0x1E, |
0xFE,0x10,0x10,0x10,0x0E, |
0x00,0x12,0x5E,0x02,0x00, |
0x02,0x01,0x01,0x11,0x5E, |
0xFE,0x08,0x08,0x14,0x22, |
0x00,0x82,0xFE,0x02,0x00, |
0x3E,0x20,0x1C,0x20,0x1E, |
0x3E,0x20,0x20,0x20,0x1E, |
0x1C,0x22,0x22,0x22,0x1C, |
0x3F,0x24,0x24,0x24,0x18, |
0x18,0x24,0x24,0x3F,0x01, |
0x3E,0x10,0x20,0x20,0x10, |
0x12,0x2A,0x2A,0x2A,0x04, |
0x00,0x10,0x3C,0x12,0x04, |
0x3C,0x02,0x02,0x02,0x3E, |
0x30,0x0C,0x02,0x0C,0x30, |
0x38,0x06,0x18,0x06,0x38, |
0x22,0x14,0x08,0x14,0x22, |
0x38,0x05,0x05,0x05,0x3E, |
0x22,0x26,0x2A,0x32,0x22, |
0x00,0x10,0x6C,0x82,0x82, |
0x04,0x02,0xFF,0x02,0x04, |
0x82,0x82,0x6C,0x10,0x00, |
for ( int temp = i; temp < i + 5; temp++ ) { |
PORTD = text_array[temp]; delayMicroseconds(500); |
digitalWrite(SLEEP,HIGH); |
Теперь осталось подключить сборку к компьютеру и размахивать ею.
Оригинал описания (англ.) - http://forums.adafruit.com/viewtopic.php?t=6446