RollerCAN でバーサライタ
RollerCAN をM5Stackオフィシャルショップで買ってみました。
以前にRoller485 Liteを購入して様々な作例を紹介してきました。
ブラシレスモータにスリップリングが追加されたLiteじゃないバージョンも試したかったのでこの度 RollerCAN を購入しました (2024/11/28時点でRoller485の在庫が復活する予兆がございません)。
目次
RollerCAN
RollerCANは通信インターフェースにCANもしくはI2Cを有するブラシレスモータモジュールです。
コチラにはスリップリングユニットが搭載されており、4ピンコネクタを介して回転部への給電や通信が可能となっております。
RollerCANをCAN通信モードにして4ピンコネクタからスリップリングを介してSPI入力のLEDを光らせてみました。
これは楽しい♪
— HomeMadeGarbage (@H0meMadeGarbage) November 28, 2024
CAN通信
まずはCAN通信でRollerCANを回してみます。
CAN通信には以下のATOM用ユニットを使用しました。
生まれて初めてのCAN通信
生まれて初めてのCAN通信
他の通信とはモノが違いますね。何となくそう思います。
終端抵抗はあったほうがいいんだべか??Can Do Now pic.twitter.com/kZIFIZ6nqE
— HomeMadeGarbage (@H0meMadeGarbage) November 27, 2024
ここではRollerCAN同梱のCAN用制御線を加工してユニットに配線してUSBから給電しています。
無事にCAN通信によって回転制御や回転位置データ取得などを確認できました。
バーサライタ
早速 RollerCAN の第一弾作例としてバーサライタを製作しました。
RollerCANでバーサライタ
ノイズきつい pic.twitter.com/ilnkBJoSSe— HomeMadeGarbage (@H0meMadeGarbage) November 27, 2024
ちょっと表示画にノイズが載っていますがこれは次節で触れます。
バーサライタ構成概要
RollerCANへの給電は外部電源より12Vを印可してATOMへの給電は4ピンコネクタからの5Vで実施。
4ピンコネクタはSPI入力LEDへの配線としても使用。
LEDは4ピンコネクタ配線を加工して接続。
LEGOのテクニック棒で固定しました。
LEDテープは24セル使用。
バーサライタ動作概要
ブラシレスモータはCAN通信でスピードモードで回転速度を指定して、回転位置をエンコーダから取得します。
エンコーダによる回転位置を160分割してSPI入力24セルLEDに絵を表示しています。
詳細は後述のArduinoコードをご覧ください。
ノイズの原因
LEDによる表示画にノイズが載っており、当初はモータによるノイズかなと思ったのですがドンドンとひどくなるのでRollerCANを分解して調べてみたところ。。。
スリップリングの電源線が外れました。。恐らく接触があまく表示がおかしくなったのでしょう。
ちなみにスリップリングは4線だと思っていましたが6線で、4ピンコネクタに加えて5VとGND線が追加されて回転部の青色LEDに使用されていました。
外れた線を治しました。
治った
画が正常に出るようになりました。
やはり電源線の接触不良が画のノイズの要因でした。
RollerCAN バーサライタ
スリップリングの電源線の接触不良を修正したらキチンと絵が出るようになりました。RollerCAN はバーサライタの駆動機構として有効だとHomeMadeGarbageが太鼓判を押しますよ。えぇ pic.twitter.com/NgTBroQM3F
— HomeMadeGarbage (@H0meMadeGarbage) November 28, 2024
Arduinoコード
参考までにRollerCANによるバーサライタのコードを載せておきます。
コチラを読み解くと原理が理解できると思います。
電源を入れるとすぐにモータが回転するコードですのでご注意ください。
SPI入力LEDテープはAdafruit_DotStarライブラリで制御しています。
Rollerのライブラリは以下
https://github.com/m5stack/M5Unit-Roller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
#include <Adafruit_DotStar.h> #include <SPI.h> #include "unit_rollercan.hpp" #include "graphics.h" UnitRollerCAN RollerCAN; // Create a UNIT_ROLLERI2C object const uint8_t motorID = 0xA8; #define DATAPIN 32 #define CLOCKPIN 26 Adafruit_DotStar strip = Adafruit_DotStar(NUMPIXELS, DATAPIN, CLOCKPIN, DOTSTAR_BGR); int32_t posMeas = 0; int pos = 0; void setup(){ Serial.begin(115200); strip.begin(); // Initialize pins for output strip.show(); RollerCAN.beginCAN(1000000, 19, 22); RollerCAN.setRGBBrightness(motorID, 0); RollerCAN.setMode(motorID, ROLLER_MODE_SPEED); RollerCAN.setOutput(motorID, 1); RollerCAN.setSpeed(motorID, 500); } void loop(){ posMeas = (RollerCAN.getActualPosition(motorID) % 360); if(posMeas < 0) posMeas += 360; pos = map(posMeas, 0, 360 , 0, 160); for(int i = 0; i < NUMPIXELS; i++){ strip.setPixelColor(i, pic[pos][i]); } strip.show(); } |
参考表示画データ graphics.h は以下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
#define NUMPIXELS 24 #define Div 160 const uint32_t pic [Div][NUMPIXELS] = { {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00131A, 0x00141C, 0x00161E, 0x001720, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00131A, 0x00141C, 0x00161E, 0x001720, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x000000, 0x000000, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x000000, 0x000000, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x000000, 0x000000, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000D12, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000000, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x001A24, 0x001C26, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000000, 0x000000, 0x001118, 0x00131A, 0x000000, 0x000000, 0x001720, 0x001922, 0x001A24, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x00070A, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x001720, 0x001922, 0x001A24, 0x001C26, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x00070A, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x001720, 0x001922, 0x001A24, 0x001C26, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x00070A, 0x000000, 0x000000, 0x000000, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x001720, 0x001922, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x00070A, 0x000000, 0x000000, 0x000000, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000506, 0x000608, 0x00070A, 0x000000, 0x000000, 0x000000, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00131A, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000608, 0x00070A, 0x00090C, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00131A, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000608, 0x00070A, 0x00090C, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000608, 0x00070A, 0x00090C, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000608, 0x00070A, 0x00090C, 0x000A0E, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000608, 0x00070A, 0x00090C, 0x000A0E, 0x000C10, 0x000D12, 0x000F14, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000A0E, 0x000C10, 0x000D12, 0x000000, 0x000000, 0x000000, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000A0E, 0x000C10, 0x000D12, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00090C, 0x000A0E, 0x000C10, 0x000D12, 0x000F14, 0x000000, 0x000C10, 0x00131A, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00090C, 0x000A0E, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x000C10, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x220000, 0x240000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x220000, 0x240000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x220000, 0x240000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x220000, 0x240000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x220000, 0x240000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x220000, 0x240000, 0x260000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x220000, 0x240000, 0x260000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x200000, 0x220000, 0x240000, 0x260000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x170000, 0x1A0000, 0x000000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x000000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x000000, 0x000000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x280000, 0x2A0000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1A0000, 0x1C0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x280000, 0x2A0000, 0x2C0000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1A0000, 0x1C0000, 0x1E0000, 0x000000, 0x000000, 0x000000, 0x260000, 0x280000, 0x2A0000, 0x2C0000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1A0000, 0x1C0000, 0x1E0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x280000, 0x2A0000, 0x2C0000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1C0000, 0x1E0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2A0000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1C0000, 0x1E0000, 0x200000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1E0000, 0x200000, 0x220000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1E0000, 0x200000, 0x220000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x200000, 0x220000, 0x240000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x220000, 0x240000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x170000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x110000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x110000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x110000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x260000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x000000, 0x000000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x000000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x110000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x260000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x110000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x260000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x110000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x110000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x110000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x110000, 0x130000, 0x150000, 0x170000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x110000, 0x130000, 0x150000, 0x170000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x100000, 0x000000, 0x220000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x260000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x220000, 0x240000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x000000, 0x000000, 0x240000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x260000, 0x280000, 0x060000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x240000, 0x260000, 0x280000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x260000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x170000, 0x1A0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x260000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x000000, 0x000000, 0x000000, 0x200000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x000000, 0x000000, 0x1E0000, 0x200000, 0x220000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x170000, 0x000000, 0x080000, 0x1E0000, 0x200000, 0x220000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x170000, 0x000000, 0x080000, 0x000000, 0x200000, 0x220000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x000000, 0x000000, 0x1C0000, 0x000000, 0x200000, 0x220000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x130000, 0x150000, 0x170000, 0x000000, 0x1C0000, 0x1E0000, 0x200000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x200000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150000, 0x170000, 0x1A0000, 0x1C0000, 0x1E0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x170000, 0x1A0000, 0x1C0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1C0000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000D12, 0x000F14, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x000000, 0x000000, 0x000000, 0x000000, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x000000, 0x000000, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x000000, 0x000000, 0x00161E, 0x001720, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x000000, 0x000000, 0x00141C, 0x00161E, 0x001720, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x001720, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000D12, 0x000F14, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000D12, 0x000000, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000A0E, 0x000C10, 0x000D12, 0x000000, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00090C, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00090C, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00090C, 0x000A0E, 0x000C10, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00090C, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00090C, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x001720, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x001720, 0x001922, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x001720, 0x001922, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x001720, 0x001922, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x000000, 0x00161E, 0x001720, 0x001922, 0x001A24, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x000000, 0x00161E, 0x001720, 0x001922, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x00161E, 0x001720, 0x001922, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x001016, 0x001118, 0x00131A, 0x00141C, 0x000C11, 0x001720, 0x001922, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00070A, 0x00090C, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00090C, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x000000, 0x001118, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000A0E, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00131A, 0x00141C, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00131A, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00131A, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, {0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000}, }; |
おわりに
ここではRollerCANを用いてCAN通信による動作確認とバーサライタ製作を実施しました。
いつものごとく小さなトラブルもありましたが無事にバーサライタを作ることができました。
バーサライタ自作の際にRollerシリーズを用いることは、その容易さと効果をみるに最適解であるかなと私は考えます。
まだまだ RollerCAN で試してみたいことはたくさんありますのでいじり倒してガンガン作例を発表したいと思います。
電子工作界の栗原はるみ HomeMadeGarbageでした。
ほな
Xで”RollerCAN バーサライタ<BR>スリップリングの電源線の接触不良を修正したらキチンと絵が出るようになりました。”の動画を目にし、この表示機能を使った特注品の設計製造をお願いできるかの問い合わせです。_
__>
特注商品の発想経緯:昨今の車のヘッドライトはLED?或いはハロゲン?ライトの車が殆どで、当方利用の23年前のシビックのような黄色のヘッドライトの車は皆無に近い状況です。
夜間運転時に、対向車のヘッドライトがまぶしく、こちらでは前方が真っ白くなり、前方視界が遮られ、運転に危機を感じ思わずブレーキを踏む事があります。
また、交差点での信号待ち時に、ヘッドライトを消灯する対応車は皆無で(稀に消す車はありますが、LEDヘッドライト車は皆無)、その信号待ち状況での対向車のヘッドライトがまぶしすぎ!特に対向車路面がゆるい下りでは、目を左にそらさないと運転に危機感を覚えます。
このまぶしいLEDヘッドライトの利用を、国が、自動車製造メーカーが、許している状況に許しがたい感を持っています。
昔は、交差点での信号待ち時にヘッドライトを消灯する運転マナーがありましたが、昨今は自分さえ良ければ良くて対応車の運転への気遣いは全く無い運転マナーには辟易しています。
で、少し前は、ハンディ型の高照度LEDライト使って対向車運転者に向けて点灯する事を考えていましたが、このXでの動画を視聴して、閃いたのです。対向車の運転者に注意喚起できる!と。
事の根本は、まぶしさを低減したLEDヘッドライトが世の中に登場し、その利用が広まる事に越したことはありませんが、何故日本からまぶしすぎないLEDヘッドライトが登場しない昨今、なんで?何故?
と思ったりもしています。
国とヘッドライト製造メーカーと自動車メーカーは、現状の対応車運転者にまぶしい状況をヘッドライト不具合と捉えず、今の状況で満足しているのか?
自動車教習所は、眩しいLEDヘッドライト車の運転マナーを何故教えていないのか?
変な世の中になったもんだと、嘆いております。_
__>
商品:車の助手席フロントガラス手前の車内に設置し、対向車運転手に流れ文字を目視させる装置。その流れ文字「ヘッドライトが目にいたい、まぶしすぎ」「信号待ちではヘッドライト消してね」
仕様:①車の12Vバッテリで動作する事。②ハンドル、或いは、ハンドル周りに、点灯スイッチ(オルタネイト型)を設ける。再押し下げまで点灯を継続する。③回転表示部及びスイッチ部は、取り外し・再取り付けが出来る事。④10m~20m(?)離れた対向車運転者で(対応車速度が時速50Km~70Kmの運転中に、或いは信号待ち停車の対向車に)表示文字が読める事。_
__>
追記:当方エレクトロニクス関連業務に従事経験有ですが、ハードウェアがメインでソフトウェアは経験が少ないです。その経験は「ニゴロROM(EEP)にデータを焼いたり、ROMに焼きこんだデータを紫外線ランプで消して、ROM再利用処理ぐらいで、プログラミング経験は皆無に近い」です。
もし、製作意欲が湧いたなら、商品になるまでの概算費用を教えて欲しいです。
出来るだけ支援はしたいと思っています。
広島県福山市在住のfukuzawaでした。
e-mailアドレスはYahooですが、製作承諾を頂いた後はgmailアドレスをお知らせします。
以上。
本特注品のご検討を願って利ます。
宜しくお願い致します。
申し訳ございません制作意欲は湧きませんでした。
早速の返信ありがとうございます。
製作意欲が湧きたたなかったとの事、uuu残念です。
と言うか、文字列を縦でも横で流しながら文字を表示する事は可能なのでしょうか?
動画の内容は、キャラクター表示でしたが、TVの流れるテロップのような表示を見せて欲しいなぁ、、、
文字表示も可能です。
街なかでもたまにバーサライタ看板がみられ
スクロール文字や動画が表示されていたりします。
これってCANの入力は何を行なっているんでしょうか?I2Cでモーター制御コマンドやエンコーダー信号ってCANでやってるんですか?
CANで回転制御や回転位置情報取得を実施しています。
I2Cは使用していません。
4ピンコネクタはSPI入力LED駆動に使用しています。