Bitmap with Teensy3.5

Status
Not open for further replies.
This project has two parts - the bitmap read-in and some text. I see you wrote a program using leds with/for text. However if time is a problem helping just say so. I fully understand the ups and downs of the computer world.
 
hopefully you managed to get the colours in the right order now. Regarding the text element, there is code around for displaying text on led arrays. This uses an array to hold char values. are you talking about this one: http://orchardelica.com/wp/?page_id=170

you can use the basic principle of the text you want to display being kept in a char array, but change the location that it is display in. You can set all the leds at once for the whole char array, and choosing a different location of led to start from and then not increasing that location, this would mean that the text does not scroll. I have not looked too deeply at that coe recently but it may just be a question of removing the scroll method:
Code:
//==START OF THE SCROLL METHOD==//
for(int a=0; a<rows; a++){
  for(int b=1; b<ledsPerStrip;b++){
    int a1 = a*ledsPerStrip;
leds.setPixel(((a1+b)-1),leds.getPixel(a1+b));}
 
      }//end of Scroll Method
 
Yes, that is the code I saw. I will certain take a look at the details. I do not need the scrolling attribute anyway. Thanks for your help. You have been great. I have been spending some time reading "Processing" now as that seems to be a much better fit for me. The C++ code would take forever to learn and I need a quick solution. My offer still stands if you are interested in helping me finish this project as it looks like you worked out everything I need years ago.
 
static text display using the Teensy OctoWS2811 library
@JohnWatterson, below is an example of displaying static text using the OctoWS2811 library for Teensy. It should get you going. Just change the ledsPerStrip number

Code:
 #include "OctoWS2811.h"
//this code displays a static text message to octows2811 led array
//uses code from ...

//fixed values for octoWS2811
const int ledsPerStrip = 34;
DMAMEM int displayMemory[ledsPerStrip*6];
int drawingMemory[ledsPerStrip*6];
const int config = WS2811_GRB | WS2811_800kHz;
OctoWS2811 leds(ledsPerStrip, displayMemory, drawingMemory, config);

//=== F O N T ===//
/*for ease of reading the code the font could be placed under a seperate
tab using the add tab and then using #include*/
byte alphabets [96] [5] = {
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // space (0x20)
{ 0x00, 0x00, 0x2F, 0x00, 0x00 }, // !
{ 0x00, 0x07, 0x00, 0x07, 0x00 }, // "
{ 0x14, 0x7F, 0x14, 0x7F, 0x14 }, // #
{ 0x24, 0x2A, 0x7F, 0x2A, 0x12 }, // $
{ 0x23, 0x13, 0x08, 0x64, 0x62 }, // %
{ 0x36, 0x49, 0x55, 0x22, 0x50 }, // &
{ 0x00, 0x05, 0x03, 0x00, 0x00 }, // '
{ 0x00, 0x1C, 0x22, 0x41, 0x00 }, // (
{ 0x00, 0x41, 0x22, 0x1C, 0x00 }, // (
{ 0x14, 0x08, 0x3E, 0x08, 0x14 }, // *
{ 0x08, 0x08, 0x3E, 0x08, 0x08 }, // +
{ 0x00, 0x50, 0x30, 0x00, 0x00 }, // ,
{ 0x08, 0x08, 0x08, 0x08, 0x08 }, // -
{ 0x00, 0x30, 0x30, 0x00, 0x00 }, // .
{ 0x20, 0x10, 0x08, 0x04, 0x02 }, // /

{ 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0 (0x30)
{ 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1
{ 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2
{ 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3
{ 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4
{ 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5
{ 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6
{ 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7
{ 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8
{ 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9
{ 0x00, 0x36, 0x36, 0x00, 0x00 }, // :
{ 0x00, 0x56, 0x36, 0x00, 0x00 }, // ;
{ 0x08, 0x14, 0x22, 0x41, 0x00 }, // <
{ 0x14, 0x14, 0x14, 0x14, 0x14 }, // =
{ 0x00, 0x41, 0x22, 0x14, 0x08 }, // >
{ 0x02, 0x01, 0x51, 0x09, 0x06 }, // ?

{ 0x32, 0x49, 0x79, 0x41, 0x3E }, // @ (0x40)
{ 0x7E, 0x11, 0x11, 0x11, 0x7E }, // A
{ 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B
{ 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C
{ 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D
{ 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E
{ 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F
{ 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G
{ 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H
{ 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I
{ 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J
{ 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K
{ 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L
{ 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M
{ 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N
{ 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O

{ 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P (0x50) //edited - replace 0x3F with 0x7F
{ 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q
{ 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R
{ 0x46, 0x49, 0x49, 0x49, 0x31 }, // S
{ 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T
{ 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U
{ 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V
{ 0x3F, 0x40, 0x30, 0x40, 0x3F }, // W
{ 0x63, 0x14, 0x08, 0x14, 0x63 }, // X
{ 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y
{ 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z
{ 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [
{ 0x02, 0x04, 0x08, 0x10, 0x20 }, // backslash
{ 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ]
{ 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^
{ 0x40, 0x40, 0x40, 0x40, 0x40 }, // _

{ 0x00, 0x01, 0x02, 0x04, 0x00 }, // ` (0x60)
{ 0x20, 0x54, 0x54, 0x54, 0x78 }, // a
{ 0x7F, 0x50, 0x48, 0x48, 0x30 }, // b
{ 0x38, 0x44, 0x44, 0x44, 0x20 }, // c
{ 0x38, 0x44, 0x44, 0x48, 0x7F }, // d
{ 0x38, 0x54, 0x54, 0x54, 0x18 }, // e
{ 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f
{ 0x0C, 0x52, 0x52, 0x52, 0x3E }, // g
{ 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h
{ 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i
{ 0x20, 0x40, 0x44, 0x3D, 0x00 }, // j
{ 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k
{ 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l
{ 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m
{ 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n
{ 0x38, 0x44, 0x44, 0x44, 0x38 }, // o

{ 0x7C, 0x14, 0x14, 0x14, 0x08 }, // p (0x70)
{ 0x08, 0x14, 0x14, 0x08, 0x7C }, // q
{ 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r
{ 0x48, 0x54, 0x54, 0x54, 0x20 }, // s
{ 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t
{ 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u
{ 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v
{ 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w
{ 0x44, 0x28, 0x10, 0x28, 0x44 }, // x
{ 0x0C, 0x50, 0x50, 0x50, 0x3C }, // y
{ 0x44, 0x64, 0x54, 0x4C, 0x44 }, // z
{ 0x00, 0x08, 0x36, 0x41, 0x00 }, // {
{ 0x00, 0x00, 0x7F, 0x00, 0x00 }, // |
{ 0x00, 0x41, 0x36, 0x08, 0x00 }, // }
{ 0x30, 0x08, 0x10, 0x20, 0x18 }, // ~
{ 0x7F, 0x55, 0x49, 0x55, 0x7F } // unknown char (0x7F)
};//==end of font array==//

unsigned int Color(byte r, byte g, byte b);

//fixed values for scrolling text
String inData = "";
int rows = 8;
int strip = ledsPerStrip; //strip length
//int pix[8] = {strip - 1, (strip * 2) - 1, (strip * 3) - 1, (strip * 4) - 1, (strip * 5) - 1, (strip * 6) - 1, (strip * 7) - 1, (strip * 8) - 1};
int del = 7;
//#define BLACK 0x000000
//#define RED 0xFF0000
int Colour1 = Color(random(1, 100), random(1, 100), random(1, 100));
char msg[] = "Hello";//using a character lookup table for alphabet. # $ @ * etc... ";
char leng[5];// =number of chars

void setup() {
  leds.begin(); // start the ws2811 library
  delay(200);
}//==end of setup==//

void loop() {

  texttest(msg);
}//==end of loop==//

void texttest(char msg[]) {
  //==Start of message setup==//
  
 for (unsigned int charIndex = 0; charIndex < (sizeof(leng)); charIndex++) //start of charIndex setup
  {
    int alphabetIndex = msg[charIndex] - ' '; //where are we in the message
    if (alphabetIndex < 0) alphabetIndex = 0;
    bool isOn = 0; //isOn is the bit / led

  //==START OF SET METHOD==//
        for(int letterCol =0; letterCol<6-1;letterCol++) {
       for (int row = 0; row < rows ; row++) {

        isOn = bitRead( alphabets[alphabetIndex][letterCol], row ) == 1;
        leds.setPixel((row*ledsPerStrip)+(letterCol+(charIndex*5)), isOn * Colour1);      
       }
    }//end of Set Method
  }//end of message setup
    leds.show();  delay(300); 
}//end of texttest

//------- HELPER FUNCTION------//
// Create a 24 bit color value from R,G,B ////these strips are BRG
unsigned int Color(byte r, byte g, byte b)
{
  //Take the lowest 8 bits of each value and append them end to end
  return ( (((unsigned int)g & 0x1F ) << 16) | (((unsigned int)b & 0x1F) << 8) | ((unsigned int)r & 0x1F) );
}
 
Status
Not open for further replies.
Back
Top