Legacy edition, no longer supported: SharpShot Vision units shipped before 2026-10 (School and WRO editions) are no longer supported; their guides and examples stay here for reference. To upgrade to the current SharpShot Vision, contact the distributor you bought it from and send it back: the firmware update is free, and the buyer pays shipping both ways. Looking for the current SharpShot Vision? →
MBC SharpShot Vision WRO edition (HUE12) × MBC SPIKE Blocks website

Read the SharpShot WRO edition with the MBC Blocks website in three steps

On the MBC SPIKE Blocks website you do not import a library for the WRO edition. First, under "run once at start", tell the website which port the sensor is on. Then add the main loop. Last, put the reading blocks inside the main loop. Work through the steps on the left and the blocks on the right grow with you. These block pictures were built and exported straight from the website, so they look the same as on your screen.

The website is free and needs no login. The hub needs Pybricks firmware (the website's 「SPIKE 主機」 (SPIKE Hub) menu can install it for you).

The website's blocks are in Chinese. Every block below comes with its English meaning, so you can match it with what you see on screen: 「Chinese block name」 (English meaning).

1

Setup: which port the camera is on

The first thing in the program is a 「○ 埠 接 MBC 神攝手HUE12」 (port ○ connects to MBC SharpShot HUE12) block under the yellow 「開機時執行一次」 (run once at start). Then the website knows that port has the WRO edition.

Which port is the sensor on?
  1. Open the MBC SPIKE Blocks website and press "+" to start a new program.
  2. In the block categories on the left, click 「MBC 感應器」 (MBC sensors) → 「神攝手HUE12」 (SharpShot HUE12). The first block is 「○ 埠 接 MBC 神攝手HUE12」 (port ○ connects to MBC SharpShot HUE12).
  3. Attach it under 「開機時執行一次」 (run once at start) and pick C in the drop-down.
2

Add the main loop

The sensor has to be read again and again, so you need the yellow 「主迴圈(一直重複)」 (main loop, repeat forever). Put a 「等待 100 毫秒」 (wait 100 ms) block inside first, so it reads every 0.1 seconds and not too fast.

  1. From 「控制」 (control), drag out 「主迴圈(一直重複)」 (main loop, repeat forever) and drop it in an empty spot below the setup block (they do not need to be joined).
  2. Drag a 「等待 100 毫秒」 (wait 100 ms) block into the main loop.

The program the website makes is put into a multitasking (async) program by itself. You do not choose this, and you do not write await.

3

Use the reading blocks

「MBC 感應器」 (MBC sensors) → 「神攝手HUE12」 (SharpShot HUE12) also has 6 reading blocks. Each one has a port drop-down in the middle; pick the same port as in step 1 (C). Blocks with 「第 N 格」 (point N) have a box at the end for the point number (1 ~ 12). Every reading block reads the sensor by itself, so you do not need a separate "read once" block. Click a function and the blocks and output change to its example.

Simulated camera picture (12 points in a row): click a box to change its colour and watch the output on the right
Colour to paint (pick a colour, then click a box above):

This picture is only an illustration: each colour uses one sample number. Real hue and saturation change with the light and the object. You set the positions of the 12 points on the sensor; here they sit in a row so they are easy to see (point 1 is on the far left). The red frame = point 1, which the examples read. The number under each box is the hue the program reads.

An example for every reading block

6 reading blocks, each with a set of blocks you can copy (port C, point 1). Press "Try it" to jump to step 3; the blocks and output on the right change to that example.

Good to know

  1. Use only one setup block. Each port can be set up only once. The port on the reading blocks must match the setup block; if you pick the wrong port, the website warns you before it downloads.
  2. No library to download, and no "read once". When the website downloads your program, it sends the camera's reading code to the hub too. Each reading block reads the sensor by itself (repeated reads within 10 ms use the same data, so reading all 12 points does not slow down).
  3. Works the same as the Pybricks library: every function in MBC_hue12.py has a block here (get_slot() = 「第 N 格(名稱, 色相, 飽和度)」 (point N (name, hue, saturation)), or 「第 N 格顏色名稱」 (point N colour name) for just the name; sensor_ok() = 「感應器有接好」 (sensor is connected)), and the values are the same. The website does not need the library's update(). Unplugging does not stop the program: when the sensor cannot be read, the blocks give the last reading and the terminal prints one warning line that starts with MBC: Port (in Chinese and English). Use 「感應器有接好」 (sensor is connected) to check the connection. Plug it back in and it works again by itself. Tick "Unplug the sensor" on the right to see this.
  4. No ID data: this sensor does not send an ID or firmware version, so there are no blocks for them.
  5. How to read the hue: 0 to 239 = a colour (red is at both ends: 0 to 9 and 230 to 239, so a red check is "hue < 10 or hue ≥ 230 and < 240"); 240 to 245 = white; 246 to 250 = black; 255 = this point is not set (while the sensor is in its menu, all 12 points are 255 too). 「第 N 格有顏色」 (point N has a colour) just means the hue is not 255, so white and black count as "yes" too. Colour names: Red red, Org orange, Yel yellow, Lim lime, Grn green, Mnt mint, Cyn cyan, Azr azure, Blu blue, Prp purple, Mag magenta, Pnk pink, Wht white, Blk black, NONE not set.