BlazingFire's story began when I saw the NXTLog Robotic Pet competition. I looked at the inspiration projects, and noticed that my first NXT dragon, Walkingthunder, had been listed as an inspiration project. I decided to participate in the contest, and wanted to make another dragon to enter. I was away from my NXT at the time, so I began by planning a dragon. I had a great idea that the dragon could normally walk on four legs, but could rear up on its hind legs and walk only on them. I drew my idea of what the dragon's rear legs should look like, which you can see on the top-left of the paper in the first picture. I originally designed it with two joints in each hind leg. I then asked my sister to draw me a picture of a dragon, which you can see on the top-right in the first picture. I changed my leg plans slightly off of that picture and then started to use Lego Digital Designer (LDD) to begin the make the dragon. You can see my first LDD design in the second picture. I decided to make all legs rigid, and use only one joint per leg. I would use one motor for each of the four legs. I decided that the dragon should not walk like a biped when it reared onto its hind legs, but have a pneumatic claw in one of its front legs to grab "food." Once I could access my NXTs again, I began building, but did not base it off of my first LDD. After a long time, or so it seemed, the dragon was done. I asked my family for name ideas, and I settled on my younger brother's idea, BlazingFire. I decided that it was an ironic name, because BlazingFire would not breathe fire, like other mythical dragons. After BlazingFire was done, I designed its program. Please see picture three. I made it so that external sensor activation and time passed could switch the dragon into different moods, which were normal, happy and annoyed. However, the mood annoyed was not put into its final program.
I decided that I would give BlazingFire the ability to rear up onto his hind legs, as well as walk, by making his hind legs completely rigid and independently powered. I also decided that it I was going to have BlazingFire reach up to his mouth with "food" in one of his claws, as well as walk, then his arms would have to be rigid and independently powered as well. Therefore, I used four of six motor ports on my NXT Intelligent Bricks for the legs alone. Probably since this dragon's legs are not designed to leave the ground when it is walking, BlazingFire is an extremely poor walker. It moves at a very slow speed, of something around four inches a minute. BlazingFire rearing up onto its hind legs is a simple process. Both hind legs move in reverse for a number of degrees. Because of the weight distribution, the dragon lifts is front legs off of the ground and assumes a stance with only its hind legs on the ground. This, however, causes a problem with the head. Consider this dragon with a head and neck rigidly connected to the body. When the robot is on all four legs, the head is roughly parallel to the ground. If it rears up, then the head is pointed up. Please see the second picture for an estimated example. I did not like that idea for BlazingFire, so I added a body network over the dragon that connected the top of the right rear leg to the neck. This made the neck tilt the head roughly parallel to the ground when the dragon had reared up. Please see the third picture. When I first had BlazingFire rear up, then its rear legs caught on its body and prevented it from rearing higher without help. I added two Bionicle pieces, one of which you can see in picture four, to act as a wedge and guide the leg over the body.
One of this dragon's front legs has a pneumatic claw that is used to grab objects and release them. The claw is located in the front left leg. It uses a small pneumatic piston to open and close it, and a RCX touch sensor to detect objects. For the claw, I designed a stack of Lego elements that I called a "dragon treat" that the claw's touch sensor could detect. See picture two. At first, I intended to put my RCX on this robot, and as one of its functions would be to pump the air for the pneumatics. However, I did not put a RCX on. I then decided that a rear leg motor should be connected to a pneumatic pump to pump the air. However, I did not use that idea either. I then connected up the same motor that operated the claw's pneumatic switch to the pneumatic pump. However, I also did not use that idea and ended up using pre-pumped air to activate the claw. I put in an air tank and a large pump, that you can see in picture four.
The neck and mouth use one motor to extend the neck and open the mouth. Please see picture one. I got this idea and probably part of the head and neck's design from billy259's projects "Dragon Prototype" and "Bipedal Dragon Prototype." Thanks! The head and mouth are what BlazingFire uses to "eat" the "food" placed in his claw. Also, the head is where the two lights sensors are stationed. They are used as the dragon's eyes and also as its obstacle detection system. This shall be discussed in a later step. BlazingFire has the ability to detect if two parts on its back are being pressed and released. In the program, I made the detection of its parts being pressed or released a pat. Much petting makes BlazingFire happy. I will call the two places that it can detect petting "petting plates." The first petting plate covers one of the NXT Intelligent Bricks. The cover of the plate has a Lego construction underneath. When the dragon is not walking, pressing the plate firmly enough will make the construction press the NXT Intelligent brick's orange button. Thanks to AuKiiraa's project "INI" for the idea of using the NXT buttons as bump detectors. The second petting plate is located behind the first one. It presses a touch sensor if the plate is pressed. Thanks to MySnailEatsPizza's project "Comet, an NXT Chameleon" for the idea of using Lego pieces over a touch sensor to detect petting.
Since this dragon has two NXT Intelligence Bricks, BlazingFire needs two programs. I had the NXT between the front and rear legs act as the "commander" NXT. It does the main thinking of the program. It tells the second NXT, the one on the back, what to do using BlueTooth commands. Please note: The commander NXT's program is too large to upload here. You will see it in two parts in the project "BlazingFire's Commander NXT Program." The "commander" NXT's program makes the dragon switch between two moods, Happy and Normal. In normal mood, it tries to avoid obstacles although it is a very slow walker and is terrible at avoiding obstacles. Pressing the petting plates on the dragon's back switches it to Happy mood. In happy mood, if it is petted enough, it rears up on its hind legs, then can accept objects and "take bites out of them." I was going to put in an Annoyed mood as well, but I did not do it as I wanted to because I could plug any sound sensors into the main NXT. The program for the second NXT simply received BlueTooth commands from the main NXT and executed the corresponding actions. Both programs' features are explained in depth in the program's comments.
The video is too large to upload in this project. Please see the project "BlazingFire's Video" for it.
LDD File and LDD File Corrections
I have made an incomplete LDD file for this dragon. However, I am almost positive that some of the Lego elements in BlazingFire are slightly forced into place. Please keep this in mind if you want to build it. There are several things that you will want to fix if you are going to build BlazingFire from the LDD. The first consists of what I think is the turntables connected on backwards for the rear legs. You should connect them so that they mesh with the eight tooth gears on the two rear motors. The leg in front of BlazingFire in the LDD goes on the far side of the BlazingFire in the first picture, the leg behind him gos on the near side of the dragon in the first picture. Secondly are the two beams that come almost up to the neck. Those you will want to connect to the two three stud axles with studs in front of them. Next is the two Bionicle pieces that you can see in the second picture that you will need to connect to the rear underside of BlazingFire. Next is the RCX touch sensor and small pneumatic piston that needs to go in the claw. Next is the short RCX wire that needs to connect upwards on the RCX touch sensor, then to a converter cable, then to the Commander NXT's input number two. Next is bent beams next to BlazingFire's front right leg that need to go on the leg. Next is the pneumatic switch that needs to go where shown in the third picture. Next is the RCX motor module in front of the left in front of BlazingFire in the LDD that needs a RCX motor to connect to the axle joiner and the whole thing needs to connect to the studded bricks in on the underside of BlazingFire. You will probably want to remove the Commander NXT to do this, because it needs to be placed on top of the studded bricks on BlazingFire's underside. Next is a converter cable that needs to connect the RCX motor to the commander NXT's output A. Next is that the pneumatic switch needs to be connected to the connector on the beam and pin construction on the 24 tooth gear block. Next is that long pneumatic tubes need to connect the switch to the piston in that the switch output closer to the front of the dragon needs to connect to the lowest piston input, and the other needs to connect to the higher input. Next is that a pneumatic air tank needs to go opposite the RCX motor module. Next is that a pneumatic tube needs to connect the pneumatic switch's input to one of the air tank's sides, and finally, the air tank's other side needs to be connected to a large pneumatic pump located above the shorter part of the rear NXT motors.