Part three of the Catapult series is about loading the catapult automatically. We use a gear system with a medium complexity along with a very interesting "clutch" developed with parts entirely from the LEGO Mindstorms NXT kits. As a result, at the end of the video, the Catapult automatically loads and fires.
- 18 Jan 2015
A motor for loading the catapult is added to the construction shown in this and in the following video lessons of the Catapult series. Firing is achieved by using gravity force again while loading is achieved with a motor. The power from the motor is transferred to the lever by a system of gears located on different axles. In this way the orientation of the gears is changed twice and transmitted four times.
The touch sensors used in the robot are very important. We should have a way to find out if the Catapult is already loaded and when we should stop loading. Configuring the motor to use rotations or degrees is a very bad practice and we should try to avoid it. Always try to use sensors.
Additional video lessons
You could find more explanations about changing gear orientation in the following video lessons:
All episodes from the series:
The current video lesson shows the robot built from LEGO Mindstorms NXT parts while the next one would use LEGO Mindstorms EV3 motors and sensors.
Building instructions for NXT Mindstorms Catapult Robot are given below. (The next lesson in the series would use EV3)
This is the initial construction of a catapult. The base on which we will place the rest of the robot. The goal of this construction is to give the catapult the ability to rotate.
Building instructions for a LEGO Mindstorms Catapult Motor and Touch Sensor that are used for triggers for firing objects
This frame holds the motor and ev3 brick used in the catapult. The frame is placed on top of the rotating base and thus could be easily rotated. The brick could be both NXT and EV3
NXT-G program for running the Catapult robot build from the LEGO Mindstorms NXT robotics set
Courses with this episode
The episode is used in the following courses where you can find additional tasks for it to use in class
Explore speed, distance and construction innovation for the catapult. Use the task in your classroom, for your team or at home to engage students in learning.
There are 3 tasks with 3 complexities giving 1,2 or 3 points.
Complexity 1 (1+ points)
- By only modifying the lever how far can you fire a 5 holes beam?
Complexity 2 (2+ points)
- By only modifying the nest and the frame, how far can you fire a 5 holes beam?
Complexity 3 (3+ points)
- Without modifying the constructions, find the speed with which a 5 holes beam is fired?
Prepare a video of the achieved result. You can capture the video with your phone or even with your webcam. For the third task prepare a short description of how did you find the speed.
Send your files for evaluation to email@example.com with subject "067 Tasks"
In the previous episodes of the series on how you can construct your own catapult I showed you how you can construct the frame of the catapult, the nest, the base. And it's quite stable - you can turn the robot and you can fire small Lego parts using the gravity force. Like this. In this episode I'd like to improve the robot so that we could load and fire different elements completely automatically. For that purpose, we would use a motor and a very interesting clutch that I have developed.
The first thing that we should do is to attach a gear wheel to the axle over here.
In this way we could load the catapult we turn the lever, we load the catapult, we release the gear wheel and we fire an element. Again - load, release, fire. Now, the challenge is where we should put this NXT motor. In this video I'm using the NXT version of Mindstorms but in the next video we'll use the EV3 version. So, where should we put this NXT motor, so that we can transfer power from the motor to the gear wheel? One requirement that we have for our construction is to be able to fire an element with only a push of a button or a push of a lever. So, we should again use the gravity force for firing. We are using a motor only for loading the catapult but for firing we should again use the gravity force. So, the motor should bring the lever down - like this. Then we press something and it fires. Thus, we've decided to use a clutch. The clutch is a very interesting mechanism and the purpose of the clutch is to engage two gear wheels. This is the construction here. After we attach it, you'll completely understand how it works. But the purpose of the clutch is to engage this black wheel and the small black wheel. Like this. When we move the lever, when we move it down it engages, when we move it up, it releases. In this way we could, for example, have the gears engaged while we are loading and then we disengage the gears and we fire an element. One thing you can see about this module with a clutch is that we are changing the orientation of gears and we have three or four videos on this subject so you can check them out. How to change the orientation of gears? The name of the video is Active attachment for changing the orientation of gears. We have, let's say, a verticle axis which transfers power to a horizontal axis. Now, let's attach this very interesting construction to our robot.
Here it is. Then we attach a motor.
Now, we load the catapult. The clutch is working, so one of the gears engages with the other. When we release the clutch, we fire an element. Again - we load,
push the lever up, we fire. Again - we load and we fire. And this is how it works. So, we load,
engage both gears, the clutch is on, then we release the clucth
and we fire. Now, the next thing will be to develop a program for our motor so to be able to load the catapult. There's one problem that we are going to face. How do we know when we should stop loading the catapult? How does the brick know that we should stop the motor? For that purpose we'll use an NXT sensor. It's a touch sensor - like this one.
We'll attach this touch sensor on the other side. The logic behind attaching the sensor is that when the sensor is pressed, like this, we should stop loading the catapult. Now, we have our clutch; we have the gear system. We load the catapult; we release the lever; release the clutch and then we again load, stop, release, fire. Now, as I mentioned, the problem is how we know where we stop turning the motor. For example, we can turn the motor for five rotations, for three or for two or we should always use a sensor so that we are completely sure that the catapult is loaded. For this purpose, we can use a touch sensor. The basic logic here is the following: we add a small part on this side.
Then we add the touch sensor below. And we'd like to stop loading the catapult when the touch sensor is pressed. So, can we find a way while loading the catapult to have some part touch the touch sensor in the end? That's the main question. Again, it's loaded; release. We can use the following parts. These are the parts. We add them to the axle. The same axle where the lever is attached.
Now, in this way we release, fire, then load and we are loading until we touch the axle of the touch sensor. When we touch it, we stop loading and the robot is ready to fire. Now, let's see how we can develop the program. The last step of the process is to write the program. I'm using here the NXT version. In the next video we'll use the EV3 version. So that you have a way to build the robot with both NXT and EV3. We'll use the action motor. So, I'm starting motor A. This motor A is turning for an unlimited amount of time until something happens. And we need the axle to touch the touch sensor. So, we need to have the touch sensor pressed. Then, we stop motor A.
And, as a final step, we wait for this touch sensor to be released. It's again "wait".
After the touch sensor is released, probably the firing will take some milliseconds but let's wait for a second.
Waiting for 1 second. And we put all this in a loop.
Again: loading until the touch sensor is pressed; stopping the motor; then we wait until the touch sensor is released, so we are actually firing with the lever, and then we wait for about a second for the element to be fired; and then again we reload the catapult. Let's see how this works. Now, let's see how the whole program works. I've downloaded it onto the robot. I'll start it. The program is running. As you can see, the catapult is loaded. We have the touch sensor over here. We have the gear system and the clutch here. They are working together. And now, when I release the lever, we fire; we load again. We fire; we load again. And let's see how it happens on the side of the touch sensor. We fire; the touch sensor is released; we load again; the touch sensor is pressed. Loading stops. We add something that we can fire. For example, two or three parts. And if I now release the lever, we'll fire the parts. Let's just fire only one of the parts. This one didn't work. The next one.
And it's falling down. So, in the next video we'll focus on how we can construct the same robot using the EV3 version. I'll welcome any comments on this. Try to build it and try to fire the parts as far as possible.
Lessons with this tutorial
This tutorial is used in the following lessons
- Catapult built from LEGO Mindstorms EV3/NXT (Part 3 - Automatic loading)