- Example 1: Tool mounting sequence
- Example 2: Watering sequence
In this example we’ll create a sequence to mount the watering nozzle tool.
This example sequence is only applicable to FarmBot Genesis kits, which have a universal tool mounting system and interchangeable tools.
If you haven’t already, create the watering nozzle tool in the web app and add it to a slot. Then place the real tool in the physical slot to ensure your real-life configuration matches the web app.
Navigate to the Sequences page of the web app and press thebutton to add a new sequence. The new sequence will appear in the sequence editor in the middle column. Give the sequence a descriptive name and optionally assign it a color.
Begin the sequence with a movement to the home position. Add a Find Home command by clicking it or dragging it into the sequence from the Commands column.
If you are not using encoders, endstops, or stall detection...
You may use a Move step to (0, 0, 0) instead of Find Home.
Next, we want to move FarmBot to a position directly above the tool to prepare it for descending and mounting the tool. Add a Move command by clicking it or dragging it into the sequence. Select the
Watering Nozzle tool in the LOCATION dropdown and add a
100 mm Z-OFFSET.
Now we want FarmBot to descend directly down to mount the tool. Add another Move command and select the
Watering Nozzle in the LOCATION dropdown as before. This time, we will not add any offsets.
At this point, FarmBot’s UTM would be mounted to the watering nozzle tool in the slot. The next step will be to pull the tool out of the slot. Add another Move command and select the
Watering Nozzle as before. Then add a
100 mm X-OFFSET.
Press thebutton to save the sequence. Then use the button to try out your new sequence.
Now that you’ve created a tool mounting sequence, try creating a sequence to return the tool to the toolbay.
It can be helpful to add a Move command with offset from current location selected in the LOCATION dropdown at the end of the sequence to move FarmBot in the positive Z direction. This will help reduce the likelihood of subsequent movements impacting any nearby objects (such as plants).
You may consider omitting the Find Home command at the beginning of the sequence if the sequence is being used within a larger sequence that already has a Find Home at the beginning.
This example sequence can only be used to mount the watering nozzle tool, meaning you will need to make additional sequences to mount other tools. Consider using a location variable to make this a generic mount tool sequence that can be used to mount any of your tools.
Now that we’ve created a sequence to mount the watering nozzle, let’s create a sequence to water a plant. In this example we’ll water a Spinach plant at coordinates
(200, 960, 0).
- Mount the watering nozzle - Mount the watering nozzle by using the Execute Sequence step and selecting the
Mount Watering Nozzlesequence created in the previous example.
- Move above the plant - Move above the plant by selecting the Spinach plant and making use of a Z-OFFSET.
- Open the solenoid valve - Add a Control Peripheral step to turn the
ON. This will start the flow of water.
- Wait - Use a Wait step to continue watering the plant for
4000milliseconds (4 seconds).
- Close the solenoid valve - Use another Control Peripheral step to set the
OFF, stopping the flow of water.
- Save and test - Press the button and then to try out your new sequence!
Now that you’ve mounted the watering nozzle tool and used the tool to water a plant, use another Execute Sequence step and a third sequence to put the watering nozzle tool away.
This sequence can only be used to water the specific Spinach plant chosen. Instead of making watering sequences for every plant in your garden, make this sequence a generic Water plant sequence that can be used on any plant by using a location variable.
While your FarmBot is located at the plant, consider using a Take Photo step to track the growth of your plant each time it is watered.
Consider making a sequence that only contains the steps required for dispensing water: Control Peripheral, Wait, and Control Peripheral. This can then be changed more easily and re-used in different ways with Execute Sequence steps in other sequences.