hknssn

Eurobricks Vassals
  • Content Count

    17
  • Joined

  • Last visited

About hknssn

Recent Profile Visitors

691 profile views
  1. I just created a copy of your program but mine works fine. Had the motor run for about 1-2min with no noticeable change in speed. So the behavior you describe is kinda strange. Since you have nothing in the program that adds or change the speed of the move block. And it should not increase the speed just becouse its in a loop. The image shows the complete program, right? Below is some things you could try, not sure if it will do much :( - What if you just put the "move" block inside a loop, do you get the same behavior? - What happends if you use the speed "0". - change motor, cable, port - check firmware (my firmware was V1.06X) I have had some strange connection/program fenomenon when i have had more then 1 software that can connect to the ev3 unit running at the same time. In my case labview and the lego software. So if you have some other software aswell make sure only one is running. Also when you download the program use the "Download and run", if you just use "download" and then press the center button on the unit it dosent necessarily run the program you just downloaded. I have done that some times and it can be quite confusing until you realise that you are running another program. /Hknssn
  2. I have not tried a sphere since i had no around, but i think it would work better since it would stay centered automatically. It's the motors/gearing. The motors seems to struggle when it's too heavy. I used 4 Ev3 units with 15 servo motors and 10 touch sensors. They communicated with bluetooth. For the programming i used Labview.
  3. Hi, Here is my latest project that i have been working on the past 2 months. It's only function is to keep on rotating a platform or sphere. So it doesn't really have any purpose besides looking kinda cool. It can be used as a MOC display stand, but it has it's weight limit. I tried to have Gyroboy(from Ev3 education set) balancing on the platform but it was to heavy and it didn't really like the unstable platform. So it ended up with a borring box on top instaid. Lego Axis by Andreas Håkansson, on Flickr The build was inspired by a robot/machine i saw on the new season of battlebots. It's the one holding the trophy. After some research i found out that it was created by Mark Setrakian. I also found a video of his machine. (see below) You might notice that his moves alot more smoother. And that i stole the name becouse i couldn't come up with something myself. So this project was kinda software heavy compared to my other mocs so i figured i might aswell share i little about what makes it tick. For those that don't care how it works or just hate math should probably skip the rest. First off, what is the problem? The problem is to get the arm to follow i curved line at a specific height in space so that the 5 arms together makes a circular motion. What I need for this is a way to convert X,Y,Z coordinates into angles for the diffrent joint in the arm and then a way to plot a curved path in the X,Y,Z coordinate system. Converting X,Y,Z coordinates into angles (for 3 joints) The way i did this was to create two 2-dimensional views of the arm, X-Y and Z-Ys (not same as Y). YX by Andreas Håkansson, on Flickr So first of i calculate the value of Ys. This is done with the X Y positions that would be part of our desired position. Ys = sqrt(X^2 + Y^2) Now it is possible to get the angle between Ys and X. Angle Radians_YsX = arccos(X/Ys) (arccos = inverted cos = cos-1) Some calculators/softwares (EV3 original software) would directly give you the value in degrees. In labview you get the value in radians instaid of degrees so you have to convert it into degrees youself. The diffrence between radians and degrees is basically that for degrees 360 = full circle and for radians 6,28(Pi x 2) = full circle. I used labview so i had to add this. Degrees_YsX = Radians_YsX x 180 / Pi Now i have the calculated angle for the first joint. YsZ by Andreas Håkansson, on Flickr B and C is fixed distances in the mechanical design so they will be constants in this case. Ys i got from the calculations above and Z is part of our desired position so i know that value aswell. To get the angle for bc (third joint) i first need to know the lenght of V. V = sqrt(Z^2 + Ys^2) To get the angle for bc. Radians_bc = arccos((B^2 + C^2 - V^2) / (2 x B x C)) Degrees_bc = Radians_bc x 180 / Pi Now i just need the angle between B and Z (bz) for the second joint. First i calculate the angle between B and V (bv) Radians_bv = arccos((B^2 + C^2 - V^2) / (2 x B x C)) Degrees_bv = Radians_bc x 180 / Pi Then i calculate the angle between V and Z (vz) Radians_vz = arccos(Z/V) Degrees_vz = Radians_vz x 180 / Pi Add them together Degrees_bz = Degrees_bv + Degrees_vz Now i am able to generate the degree values for the 3 joint in the arm based on the XYZ coordinates. However the degree values of the joint is not the same as the degree value for the motors so i will have to account for that with some gear ratio calculations. (I have a feeling most people here in the technic forum knows the basics of gear ratio so i'll skip explaining that.) In the calibration sequence of the machine i then match the starting position for the motors with the appropriate degree value. Creating a curved path. The curved path is based of a circle that has it center in the middel of the machine. Each arm will move along 64 degrees of the circle. I used 64 degree instaid of 72 (1/5 of 360 degree) to avoid collisions of the arms when they do the transition. I had to use a separate coordinate system for the path based of the center of the machine, in the new coordinate system i use Xc and Yc. Path by Andreas Håkansson, on Flickr As you can see in the image above the path starts at 328 degree and moves to 392 degree. I keep going above 359 (instaid of starting over at 0) to avoid having make special code that would have to hadle the jump as it moves along the path. To get Xc and Yc coordinates for the path (based of th center of the machine). Yc = cos(v) x r (v = angle, r = radius) Xc = sin(v) x r Ex: 1/ (Yc) 127,2mm = cos(328) x 150mm (Xc) -79,5mm = sin(328) x 150mm 2/ (Yc) 150mm = cos(360) x 150mm (Xc) 0mm = sin(360) x 150mm 3/ (Yc) 127,2mm = cos(392) x 150mm (Xc) 79,5mm = sin(392) x 150mm Now i just need to get the path based in the center coordinate system to the coordinate system for the arm. The distance between the two coordninate systems is know (just measure). To get the Z and X positions. Z = P - Yc (P = distance between the two coordinate systems) X = 0 - Xc Ex: (Z) 122,8mm = 250mm - 127,2mm (Yc) (X) 79,5mm = 0 - -79,5mm (Xc) The Y value for the arm does not need to be calculated, it can be what ever i set it at as long as the arms can reach it. So that is basically the math for the machine. I use the same calucaltions for all 5 arms. To get it to move in the path i start at 328 degree and then every 100ms i add 1 degree until i get to 392. Then i lower the Y value to lower the arm and then start to subtract 4 degree every 100ms until it reach 328 again. Then change back the Y value to make to arm go up again then it kinda repeats that. Each arm starts at 5 diffrents points in this cycle so that when the first arm starts moving forward the last arm will start moving revers. This way there will always be 4 arms holding the plate. There is probably more efficent ways to solve this, but this is what i could come up with. :) Most of the equations could be used for a walking robot as long as its only has 3 joints / leg if you want all legs to pull in the same directions. But i have a feeling there might be some weight issue. Hopefully the explinations was understandable and not too boring. :) /Hknssn
  4. Thanks!, the 2 nxt communicated with bluetooth. Maybe at some point i'll build it in LDD, no promises :). The planes that gets through the machines ends up almost identical. It do sometimes happend that the plane get stuck in the machine and need to be manualy removed but its kinda rare, most of the mechancal problems that i have encountered so far has been fixed. The problems i have at the moment is: - messureing the air pressure, at the moment i'm using a spring pressed against a pneumatic cylinder with a sensor. It works fine the first 2-3 planes then the spring tend to stay in the pressure ok state even if it's not :/. The plan is to get a proper non lego pressure sensor. - Controlling PF motors from NXT, sometimes the IR signal from the IR-LINK sensor dont get recived by the PF IR recievers so the PF motors dont start/stop when they should. But its kinda rare. - PF motors dying after 4-5 hours. Had it run on a lego event in sweden for 9 hours, replaced 2 motors after 5 hours.
  5. Hello! So this is a old project of mine that some of you might have seen 1,5 year ago when i posted version 2.0 on the mindboards forum. Since then there have been som upgrades and changes, so i decided to make a new (better) video and also post it here on eurobricks :). The machine folds paper planes and throws them automatically. It has 2 NXT units controlling everything with 6 servo motors, 10-12 power function motors and lots of sensors. (The power function motors is controlled with a IR-Link sensor connected to the NXT) The big diffrence from this version (V2.1) and my old version (V2.0) is the look of the machine and alot of the function has been upgraded so that it's more reliable and faster. The speed for folding 1 plane has gone down from 2 min 50sec to 1 min 45 sec. It is also running from a external 9VDC power supply instaid of batteries which makes a big difference. I hope you like it :) Below is links to the old versions. V1.0 : V2.0 : Hopefully some day i'll make a V3.0 that folds more complex paper planes :) /Hknssn
  6. Have you tried to replace the 16 tooth gear with a 12 tooth gear? It will be a better fit for the gear rack and it migh solve the 180 degree problem since it should increase the turn movement.
  7. I made a basic prototype for the dubble folded truck ramp, see the video below. Not sure if it fit into your build but atleast its one way to do it :)
  8. Here is the program for machine. In each program there is a list of how to connect the in/ouputs in the main program window. Not sure how easy it is to understand the rest of the program :), there is basically no comments at all telling what the code is doing. Good luck! http://www.brickshel...mber_140710.ev3 http://www.brickshel...eyor_140710.ev3
  9. I have uploaded the LDD file to brickshelf now, if anyone wants to get a closer look of the climbing robot and some tower modules. There is 4x 32166 pieces missing since it doesn't exist in LDD. They should be where the blue bush pieces are placed at the moment. http://www.brickshel...aceelevator.lxf
  10. Thanks! The mechanism that push the pins does not work every time, in the video you can see at some point that the climbing robot makes a small "jump" that is when i had to manually press in a pin. Then i did som cheating and cut that bit out :P. I have been thinking about puting some sensors that checks if the pins has been pushed in correctly so that the machine can make a second attempt if it failed. Thanks! I have a LDD file of the climbing robot and the tower sections but i dont know how to upload it here. :( Under the floor the tower and the two conveyor units is connected with techninc pieces to make the whole machine more stable. The cables from the conveyors to the EV3 unit are also hidden inside the pillers and under the floor. It cant disassemble the tower and i doubt that i will try to add more functions to the machine, but i might try to improve the existing functions to make it more reliable. Adding more function would be too much work, i get enough headaches from my other projects already :).
  11. As you can see in the picture below there is 2 linear aktuators on each side pushing the pins.
  12. To reach space (100km above sea level according to wikipedia) it would require 250000 modules, each module consists of 130 pieces so a total of 32,5 million pieces.
  13. I added a picture to the main post, however its kinda big.
  14. Well since the machine sometimes already mess up with the pin connections between the modules/sections i bet it would be a nightmare to have a machine creating the module/section that consists of several pins :) I have 18 modules + the base modules that are stuck, which equals a total of 92 cm high above the tiles. Thanks :). Akiyuky is basically a lego god, we can all learn things from him. :)