-
Posts
1,479 -
Joined
-
Last visited
Content Type
Profiles
Forums
Gallery
Everything posted by AVCampos
-
42126 - Ford F150 Raptor
AVCampos replied to Ngoc Nguyen's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
8315? -
Do you mean that, for example, if you used one of those in the 42030 instead of the LEGO version and manually turned it away from the desired angle, it'd automatically return to it (like regular servos do)? If so, that's a big advantage over the LEGO version.
- 304 replies
-
Don't they connect via radio (proprietary 2.4 GHz, or, since it can connect to an app, more likely Bluetooth), and therefore it's only a matter of pairing one receiver to a controller at a time?
- 304 replies
-
I've just found out there's a version with a 6-output receiver and a transmitter with 4 proportional channels (and 2 bang-bang). Anyone tried this? May I post a link to the Chinese store where I found this, @Jim?
- 304 replies
-
[APP] BrickController2
AVCampos replied to imurvai's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Can you help me with this? I looked in /storage/emulated/0/Android/data/com.scn.BrickController2 and its subfolders, and couldn't find my profiles (which were created in a previous version of the app), or any files for that matter. I'm running Android 8.0.0 on my phone, so the folder policies shouldn't be an issue.- 1,316 replies
-
- sbrick
- game controller
-
(and 8 more)
Tagged with:
-
[APP] BrickController2
AVCampos replied to imurvai's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Woo, thank you very much! It has been a hassle in the past to manually replicate my profiles for my devices, this'll save me a lot of work.- 1,316 replies
-
- sbrick
- game controller
-
(and 8 more)
Tagged with:
-
[APP] BrickController2
AVCampos replied to imurvai's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
The SPIKE hub, when running the MINDSTORMS firmware, can already be controlled from a gamepad.- 1,316 replies
-
- sbrick
- game controller
-
(and 8 more)
Tagged with:
-
Mechanically, I can only see four-wheel steering and variable ride height missing from UCS cars. What else can be added? I don't believe functional brakes is in such a list, as they require intentionally rubbing parts against each other. Perhaps new crankshaft elements to allow more realistic firing sequences?
-
42126 - Ford F150 Raptor
AVCampos replied to Ngoc Nguyen's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
It's no wonder they appeared in the dune buggy. -
I made a short program in Pybricks to control the Cat from a LEGO PU remote. Although it lacks the app's niceties such as tilt information, route drawing and especially proportional control, I found physical buttons more pleasant to use and it switches functions a lot faster (not to mention the calibration only takes a few seconds). @kbalage's tutorial for the buggy and Zetros was invaluable for this! In the program, I set the remote's +/- buttons to directly control the treads. The red buttons control the active function. Pressing the green button cycles through the four functions, and the remote's LED indicates which one is active: Blue: blade lift Green: ripper Yellow: ladder Red: blade tilt White: function switching in progress # Basic imports from pybricks.pupdevices import Motor, Remote from pybricks.parameters import Port, Direction, Stop, Button, Color from pybricks.tools import wait # Initialise the motors motor_left = Motor(Port.A, positive_direction=Direction.COUNTERCLOCKWISE) motor_right = Motor(Port.B) motor_function = Motor(Port.C, positive_direction=Direction.COUNTERCLOCKWISE) motor_change = Motor(Port.D) SPEED_CHANGE = 720 # Speed for the function shifting motor def reset_selector(): """Moves the function selector to the first position""" # Run the motor backwards until it hits the physical limit in the shifting mechanism motor_change.run_until_stalled(-SPEED_CHANGE, then=Stop.HOLD) # Since the angle that hits the limit is a little over a 90º position of the selector, get the nearest multiple of 90º rounded_angle = round(motor_change.angle() / 90, 0) * 90 # Run the motor to the precise multiple of 90º motor_change.run_target( speed=SPEED_CHANGE, target_angle=rounded_angle, then=Stop.HOLD, wait=True) def set_led(angle): """Sets the colour of the remote's LED based on the selector's angle""" if angle == 0: colour = Color.BLUE elif angle == 90: colour = Color.GREEN elif angle == 180: colour = Color.YELLOW elif angle == 270: colour = Color.RED else: colour = Color.WHITE # This should never happen, but just in case remote.light.on(colour) # Connect to the remote remote = Remote(timeout=None) remote.light.on(Color.WHITE) # Set the selector to the first position, and mark it as zero reset_selector() motor_change.reset_angle(0) chosen_angle = 0 set_led(chosen_angle) # Now we can start driving! while True: # Check which buttons are pressed. pressed = remote.buttons.pressed() # Set the left tread to the left buttons speed_left = 0 if Button.LEFT_PLUS in pressed: speed_left += 100 if Button.LEFT_MINUS in pressed: speed_left -= 100 # Set the right tread to the right buttons speed_right = 0 if Button.RIGHT_PLUS in pressed: speed_right += 100 if Button.RIGHT_MINUS in pressed: speed_right -= 100 # Set the selected function to the red buttons speed_function = 0 if Button.RIGHT in pressed: speed_function += 100 if Button.LEFT in pressed: speed_function -= 100 # Process the green button if Button.CENTER in pressed: # The mechanism is shifting, let the user know this remote.light.on(Color.WHITE) chosen_angle += 90 # Move the function selector to the next function if chosen_angle > 270: # If we're already at the last function and the selector is physically blocked from turning 360º, we need to turn back chosen_angle = 0 reset_selector() # We can't use run_target() here because it always chooses the shortest path, which would be to turn forward from 270º to 360º instead of back from 270º to 0º else: # Normal case: just turn the selector to the desired position motor_change.run_target( speed=SPEED_CHANGE, target_angle=chosen_angle, then=Stop.HOLD, wait=True) # The selector is at the desired position; tell the user the good news set_led(chosen_angle) # Wait for the user to be release the green button while Button.CENTER in remote.buttons.pressed(): wait(10) # Apply the selected speed to the thread and function motors motor_left.dc(speed_left) motor_right.dc(speed_right) motor_function.dc(speed_function) # Wait wait(10)