-
Posts
229 -
Joined
-
Last visited
Content Type
Profiles
Forums
Gallery
Everything posted by ord
-
Pneumatics General Discussion
ord replied to 9v system's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Yeah they do. I stop them at 2bar (~30psi) though and haven't tested much higher. -
Pneumatics General Discussion
ord replied to 9v system's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
I guess it could be, but they are brand new from Lego. I'm hesitant to use silicone because of discussion in this thread. Have you had success with it? I do wonder what the original grease in Lego pneumatics is made from... -
[WIP] Mindstorms 51515 Plotter
ord replied to ord's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
@OLivier1234 please see my reply to Carsten back on page 1 of this thread. The code is in a hidden comment there. Good luck! -
Pneumatics General Discussion
ord replied to 9v system's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
They're all similar (and similar to my other cylinders). It's the 5.5L pumps that seem to be the odd ones out - moving them is almost effortless. -
Pneumatics General Discussion
ord replied to 9v system's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
I think the volume is the same since they both have a 2L stroke. The new ones (for me anyway) are noticeably harder to push/pull, and I think when doing this hundreds of times per minute this becomes an issue. -
Pneumatics General Discussion
ord replied to 9v system's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Has anyone noticed much higher friction in the 6L pumps compared to the old 5.5L pumps? I ordered some 6L pumps from Pick A Brick for my compressor but the motors struggle to pump them (even with extra down-gearing), making compression slow and the batteries drain fast. -
Zero's workshop
ord replied to Zerobricks's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
That is something I'd love to get my hands on. I still reference Sariel's Technic Builder's Guide but it's 13 years old now. Will your book be hard copy or digital? -
Technic Parts We Would Find Useful
ord replied to gyenesvi's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
A pneumatic elbow fitting, something like this: -
[MOC] Cartesian Parallel Robot
ord replied to ord's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Hi, the code is written in pybricks, so if you want to use it you have to install pybricks on your hub from https://pybricks.com/. Specifics of what each line means can be found in the documentation at https://docs.pybricks.com/en/latest/. -
[MOC] Cartesian Parallel Robot
ord replied to ord's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Here's the code. Note that it's raw and a bit messy - I never intended to publish it. from pybricks.hubs import TechnicHub from pybricks.pupdevices import Motor from pybricks.parameters import Port, Stop, Color, Direction from pybricks.tools import wait from math import sin, pi, fabs, sqrt print("START") # Initialize the hub hub = TechnicHub() # Initialize the motors motor_x = Motor(Port.A, Direction.COUNTERCLOCKWISE, [20, 75]) motor_y = Motor(Port.B, Direction.COUNTERCLOCKWISE, [20, 75]) motor_z = Motor(Port.C, Direction.COUNTERCLOCKWISE, [20, 75]) #motor_suction = Motor(Port.D, Direction.CLOCKWISE, [12, 36]) # Initialize variables old_x = 0.0 old_y = 0.0 old_z = 0.0 # Flash light def flash(): hub.light.on(Color.GREEN) wait(100) hub.light.off() # Find zero def reset_motors(): print("Finding origin...") motor_x.run_until_stalled(-100, duty_limit=30) print("x zero set.") #flash() motor_y.run_until_stalled(-100, duty_limit=30) print("y zero set.") #flash() motor_z.run_until_stalled(-100, duty_limit=30) print("z zero set.") #flash() motor_x.reset_angle(0) motor_y.reset_angle(0) motor_z.reset_angle(0) #motor_suction.reset_angle(0) # Move end effector def move(x, y, z, speed): global old_x global old_y global old_z rel_x = x - old_x rel_y = y - old_y rel_z = z - old_z segment_length = sqrt(pow(rel_x,2) + pow(rel_y,2) + pow(rel_z,2)) time = segment_length / speed if time == 0: time = 0.01 x_speed = fabs(rel_x) / time y_speed = fabs(rel_y) / time z_speed = fabs(rel_z) / time #print("Time = " + str(time) + "; Segment length = " + str(segment_length) + "; Speed = " + str(x_speed) + ", " + str(y_speed) + ", " + str(z_speed) + "; Move to " + str(x) + ", " + str(y) + ", " + str(z)) if x_speed > 1: motor_x.run_target(x_speed, x*10, then=Stop.COAST, wait=False) if y_speed > 1: motor_y.run_target(y_speed, y*10, then=Stop.COAST, wait=False) if z_speed > 1: motor_z.run_target(z_speed, z*10, then=Stop.COAST, wait=False) wait(time * 12000) old_x = x old_y = y old_z = z # Move each axis +/- def axes_demo(speed): move(7,7,0,speed) move(0,7,0,speed) move(0,0,0,speed) move(0,7,0,speed) move(0,7,5,speed) move(0,7,0,speed) # Circle (diagonal) def circle(speed): move(6.0,5.3,4.3,speed) move(4.9,6.5,3.5,speed) move(3.7,7.0,2.5,speed) move(2.1,6.5,1.5,speed) move(1.0,5.3,0.7,speed) move(0.7,3.5,0.5,speed) move(1.0,1.7,0.7,speed) move(2.1,0.5,1.5,speed) move(3.5,0.0,2.5,speed) move(4.9,0.5,3.5,speed) move(6.0,1.8,4.3,speed) move(6.3,3.5,4.5,speed) # Circle (diagonal reverse) def circle2(speed): move(6.0,1.8,4.3,speed) move(4.9,0.5,3.5,speed) move(3.7,0.0,2.5,speed) move(2.1,0.5,1.5,speed) move(1.0,1.7,0.7,speed) move(0.7,3.5,0.5,speed) move(1.0,5.3,0.7,speed) move(2.1,6.5,1.5,speed) move(3.5,7.0,2.5,speed) move(4.9,6.5,3.5,speed) move(6.0,5.3,4.3,speed) move(6.3,3.5,4.5,speed) # Circle (diagonal reverse raised) def circle3(speed): move(6.7,1.8,4.8,speed) move(5.6,0.5,4.0,speed) move(4.2,0.0,3.0,speed) move(2.8,0.5,2.0,speed) move(1.7,1.7,1.2,speed) move(1.4,3.5,1.0,speed) move(1.7,5.3,1.2,speed) move(2.8,6.5,2.0,speed) move(4.2,7.0,3.0,speed) move(5.6,6.5,4.0,speed) move(6.7,5.3,4.8,speed) move(7.0,3.5,5.0,speed) # Circle (top plane) def circle4(speed): move(7,3.5,5,speed) move(6.96,4,5,speed) move(6.85,4.5,5,speed) move(6.66,5,5,speed) move(6.37,5.5,5,speed) move(5.95,6,5,speed) move(5.46,6.4,5,speed) move(4.92,6.7,5,speed) move(4.33,6.9,5,speed) move(3.5,7,5,speed) move(2.67,6.9,5,speed) move(2.08,6.7,5,speed) move(1.54,6.4,5,speed) move(1.05,6,5,speed) move(0.63,5.5,5,speed) move(0.34,5,5,speed) move(0.15,4.5,5,speed) move(0.04,4,5,speed) move(0,3.5,5,speed) move(0.04,3,5,speed) move(0.15,2.5,5,speed) move(0.34,2,5,speed) move(0.63,1.5,5,speed) move(1.05,1,5,speed) move(1.54,0.6,5,speed) move(2.08,0.3,5,speed) move(2.67,0.1,5,speed) move(3.5,0,5,speed) move(4.33,0.1,5,speed) move(4.92,0.3,5,speed) move(5.46,0.6,5,speed) move(5.95,1,5,speed) move(6.37,1.5,5,speed) move(6.66,2,5,speed) move(6.85,2.5,5,speed) move(6.96,3,5,speed) move(7,3.5,5,speed) # Suction movement def suction_move(x,y,z): move(6.8,1.2,5,100) #wait(500) move(6.8,1.2,z,100) wait(200) # Suction on motor_suction.run_target(500, 180, then=Stop.BRAKE, wait=False) wait(1000) move(6.8,1.2,5.3,100) #wait(500) move(x,y,5.3,150) #wait(500) move(x,y,1.5,150) #wait(500) # Suction off motor_suction.run_target(500, 0, then=Stop.BRAKE, wait=True) wait(100) # Video part 1a def part_1a(): # Bottom square move(0,7,0,60) wait(500) move(7,7,0,60) wait(500) move(7,0,0,60) wait(500) move(0,0,0,60) wait(1000) # Move z move(0,0,5,300) wait(500) #move(0,0,5,300) #wait(500) #move(7,0,0,300) #wait(500) #move(0,7,5,300) #wait(500) #move(0,7,0,300) #wait(500) move(7,0,5,300) wait(1000) # Two circles then home move(6.3,3.5,4.5,250) circle(140) circle(140) wait(500) move(0,0,0,100) # Video part 1b def part_1b(): move(0,7,0,100) wait(3000) axes_demo(70) wait(1000) # Top circle move(7,0,5,100) wait(1000) circle4(100) wait(2000) move(6.3,3.5,4.5,100) circle(130) circle(130) wait(600) move(0,0,0,140) # Video part 2 def part_2(): move(0,0,5,300) wait(500) suction_move(0,2.8,3.0) move(0,2.8,5,150) suction_move(3,2.8,2.0) move(3,2.8,5,150) suction_move(0,4.8,1.0) move(0,4.8,5,150) suction_move(3,4.8,0.0) # Push tray wait(1000) move(1.5,7,1.5,80) move(1.5,7,0,80) move(1.5,0,0,50) wait(200) # Back right top corner move(7,7,5,400) wait(500) # PROGRAM HERE reset_motors() hub.light.on(Color.WHITE * 0.8) wait(5000) part_1b() #part_1b or part_2 here print("END") -
[TC28] Pendulum Clock
ord replied to Berthil's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Nice work! Congratulations on getting it so accurate. -
[TC28] Pong arcade
ord replied to msk6003's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Ah, I now see that this is apparently what you had in the first version. I had similar problems when building my XY plotter. It seems like the increased friction is happening in the same position vertically... perhaps the ball chain is catching on something... -
[TC28] Pong arcade
ord replied to msk6003's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Wow, interesting project. I hope you can get it working. If the up/down mechanism is what's inadvertently triggering the clutch, could you just decouple the up/down so it's directly powered by the motor? -
[TC28] Desk clock
ord replied to Davidz90's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Impressive! It seems like you have achieved your goal of less than 1% error . -
[TC28] Metal lathe (large scale)
ord replied to howitzer's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Nice! How is the performance of the bearings? It looks like you've kept a 2L space between both the inner and outer rings? -
General Part Discussion
ord replied to Polo-Freak's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
I have a feeling that it can. The joints appear to be able to attach in series using 2x 2L axles, and a friction pin would make that connection even more robust. I was thinking that too. Interestingly, the joint that part is designed for has a very similar function to this joint - 2 articulations with 15 degree increments.- 5,506 replies
-
- rant!
- Bionicle Technic
-
(and 1 more)
Tagged with:
-
[TC28] Desk clock
ord replied to Davidz90's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Fascinating and creative use of Lego. Following closely . -
Advanced Lego robotics
ord replied to pekka111's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
It is essentially the method that Glaysche mentioned of using two parallel gear trains. It is explained in this thread: I am looking forward to this! -
Bearings built from Lego
ord replied to howitzer's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
There was some discussion recently in this topic: This is the smoothest ball bearing design I've seen: -
General Part Discussion
ord replied to Polo-Freak's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
In some sets they come in grey, I guess for aesthetics.- 5,506 replies
-
- rant!
- Bionicle Technic
-
(and 1 more)
Tagged with:
-
General Part Discussion
ord replied to Polo-Freak's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Have you considered this? Someone posted it in a MOC recently and I thought it was smart. Not sure about it's real world performance.- 5,506 replies
-
- rant!
- Bionicle Technic
-
(and 1 more)
Tagged with:
-
GBC General Discussion
ord replied to Jim's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Wow, that's great! I especially like the conveyor design but there are lots of things to like here.- 1,124 replies