RPI RMP Drive Advanced
Showroom Project
Advanced - Modify Code and Issues
Modify Transformer demo code
- The code main differences are the transformer.cc transformer.h
- notice to apply new transformer in your code, for example the demo code, ADD new line at 1163
matrix->ApplyStaticTransformer(rgb_matrix::EDTransformer()) ;
- compile again -> cd into folder and compile it: make -C example*
- now can start to run following demo
Apply new transformer
- Please refer to above 32*16 zip file code, you can search and file EDTransformer() in 3 files
- add as demo code to -> transformer.cc, before }; name_space rgb_matrix at the end
- add as demo code to -> transformer.h, before }; name_space rgb_matrix at the end
- add as demo code to -> led-matrix.cc, there are two lines
- apply transformer into demo in line 1162~1163 -> matrix->ApplyStaticTransformer(rgb_matrix::P10outdoorTransformer());
Documents
- Discussion how to write the transformer: https://github.com/hzeller/rpi-rgb-led-matrix/issues/136
- crazy chinese transformer: https://github.com/hzeller/rpi-rgb-led-matrix/issues/178
Transormer for 16x32x1/4
- https://github.com/hzeller/rpi-rgb-led-matrix/issues/313
- https://github.com/hzeller/rpi-rgb-led-matrix/issues/242
- https://github.com/hzeller/rpi-rgb-led-matrix/issues/283
- Get P10 transformer from here: https://github.com/gausie/rpi-rgb-led-matrix/tree/p10transformer
- The file edited transformer.h and transformer.cc, and led-matrix.h
- RGBMatrix::RGBMatrix in led-matrix.cc, this is for python - > https://github.com/hzeller/rpi-rgb-led-matrix/issues/283
int new_x = 0;
int new_y = 0;
if (y < 4 || (y > 7 && y < 12)) {
new_x = (x * -1) + (24 * ((x / 8) + 1)) - 17;
new_y = y;
} else {
new_x = x + (8 * ((x / 8) + 1));
new_y = y - 4;
}
delegatee_->SetPixel(new_x, new_y, red, green, blue);
Transformer canvas part for 32x32x1/8
new_x = ((x / 16) * 32) + (x % 16);
if ((y & 8) == 0) {
new_x += 16;
}
new_y = ((y / 16) * 16) + (y % 8);
- Also in your transform class have:
int myTransformer::TransformCanvas::width() const {
return delegatee_->width() / 2; }
int myTransformer::TransformCanvas::height() const {
return delegatee_->height() ; }
- Change the define in framebuffer.cc to SUB_PANELS_ 4 and remake the librgbmatrix library.
- Try row = 32 and chains = double the number of panels in a chain.
Apply transformer
- in demo-main.cc on line 1163 after the check for rotation:
matrix->ApplyStaticTransformer(rgb_matrix::Mikro2347Transformer()); sudo ./demo -D 0 --led-no-hardware-pulse --led-rows=16 --led-chain=2
Constant Matrix Drive
redirect
- read more information here - https://w2.electrodragon.com/Board/MPC/MPC1073-DAT/MPC1073-ref-dat.md