In this tutorial, we’ll cover how to program Sparki to follow or avoid light.
What You’ll Need
- A Sparki.
- A source of light (like a flashlight from the Sparki Materials Pack).
How It WorksSparki has three light sensors that it can use to sense light:
Strength of light is proportional to distance from the sourceThe closer the sensor is to the light, the stronger the light from the source. In this example, the light arriving at the left sensor is going to be the strongest, the center sensor will receive the middle-most light, and the right sensor is going to get the least light.
Programming It With SparkiPlease remember to check that the batteries are properly connected (and charged!). And as we are going to use the motors here, please check that the On/Off Switch is on. Another important thing to take care of when playing with the robot’s motors is to be careful not to be working over a table. A fall from that table could permanently damage your Sparki. The way we’ll have Sparki follow operating base on this is using the decision blocks, which are similar to the if statements when programming using SparkiDuino: We’ll conduct three if tests. Each test will determine if the sensor in that test is getting more light than either of the two other sensors. If that sensor is getting more light than the other two, it will move in that sensor’s direction:
Sparki will move in the direction of the strongest light source
Following LightThe following blocks can be used to return the reading of the left, center and right light sensors:
Here is a miniBloq program that makes Sparki follow a light source: Just a note about the blocks used to rotate and move Sparki forward: as you can see in the code above, they receive a 0 (zero) number as the parameter. This means that they will rotate or move indefinitely, until they receive a new moving command. So, if we have Sparki rotate to the left with its degrees parameter set at 0, it will continue rotating in that direction until a move forward, backward or rotate right block is executed in the program.