To get bitmaps into bbcmicrobot code, one way is to embed them as characters in an initial REM, where they will have address PAGE+5. I find it most convenient to write the bitmap so it is read from bottom to top, with the individual bits of each byte in reverse order; but to write them out that way hurts your head, best to just type in the rows as you see them and let the computer do the work.
There's a trick for embedding bytes with codes < 32 or > 127 - add 256 and only the lower bits will be used by the emulator. Character codes 10 and 13 are not allowed, you'll find they cause reading to skip to the next line; this happens in the manic miner bitmap, so I just used a different character there and mapped that back with an IF. The javascript code below does all the manipulations needed to get the characters you want to paste - I just paste this code in the browser developer console.
String.fromCharCode(...[
"0010101011000000",
"0011010101000000",
"0011111111000000",
"0000100100000000",
"0001111110000000",
"0001000010000000",
"0001000010000000",
"0001000110000000",
"0010001001000000",
"0010000010111000",
"0101100100100100",
"0100010000000010",
"0100010000000010",
"1111111111111111",
"0000000001100000",
"0000001111100000",
"0000011111000000",
"0000001101000000",
"0000001111100000",
"0000001111000000",
"0000000110000000",
"0000001111000000",
"0000011111100000",
"0000011111100000",
"0000111101110000",
"0000111110110000",
"0000001111000000",
"0000011101100000",
"0000011011100000",
"0000011101110000",
"1111111111111111",
"0111001001001110",
"1000101001010001",
"1010101001010101",
"0100101001010010",
"0001001001001000",
"0010001001000100",
"0010101001010100",
].reverse().map(s=>s.split(/(.{8})/).filter(t=>t.length>0)).flat().map(s=>parseInt(s.split("").reverse().join(""),2)).map(x=>x<32||x>127?x+256:x));
Then read this with:
FORY%=0TOrows-1:FORX%=0TOcols-1
B%=?(PAGE+cols*Y%+X%+5)
FORJ%=0TO7
IFB%AND1:draw a pixel
B%=B%DIV2
NEXT,,