User Tools

Site Tools


lego_nxt_teleoperation_introduction

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
lego_nxt_teleoperation_introduction [2024/08/04 15:49] – Links hhameedlego_nxt_teleoperation_introduction [2024/08/15 23:30] (current) – Build Instruction Links hhameed
Line 1: Line 1:
 <fs xx-large>**LEGO NXT Teleoperation Introduction**</fs> <fs xx-large>**LEGO NXT Teleoperation Introduction**</fs>
 +\\
 **Author: **Hashim H., Email: hameeh1@unlv.nevada.edu **Author: **Hashim H., Email: hameeh1@unlv.nevada.edu
 \\ \\
Line 41: Line 41:
 **Step 3** **Step 3**
  
-Download the required NXC library and sample/demo on the controller product page listed above or here. It is highly recommended that you compile and run the included sample to understand how to interface with the library. +Download the required NXC library and sample/demo on the controller product page listed above or [[http://www.mindsensors.com/index.php?controller=attachment&id_attachment=39|here]]. It is highly recommended that you compile and run the included sample to understand how to interface with the library.
  
  
Line 48: Line 48:
 In any file using the PS2 library, always import the library file and define/instantiate related variables such as the module address (for communication), sensor port, and controller stat/pressure variables. In any file using the PS2 library, always import the library file and define/instantiate related variables such as the module address (for communication), sensor port, and controller stat/pressure variables.
  
-The following is an example of moving a motor connected to port A based on the input of the PS2 controller’s left stick:+{{:nxt_controller_motor.jpg?400|}}
  
-<code c basic_movement.nxc>+The following is an example of moving a motor connected to port A based (pictured above) on the input of the PS2 controller’s left stick: 
 + 
 +[[http://www.mindsensors.com/index.php?controller=attachment&id_attachment=39 | Library Download]] 
 + 
 +<code c [enable_line_numbers="true"basic_movement.nxc>
 //imports the library //imports the library
 #include "PSP-Nx-v4-lib.nxc" #include "PSP-Nx-v4-lib.nxc"
Line 85: Line 89:
 Given verification of user input given controller output, robotic teleoperation can be performed by building out the module with two motors in a manner similar to the domabot’s base (full instructions [[https://www.damienkee.com/storage/domabot_build.pdf|here]]) and determining output based on controller input.  Given verification of user input given controller output, robotic teleoperation can be performed by building out the module with two motors in a manner similar to the domabot’s base (full instructions [[https://www.damienkee.com/storage/domabot_build.pdf|here]]) and determining output based on controller input. 
  
-The following are examples of functions to use in your main loop for teleoperation (assuming motors connected to ports B and C):+{{:nxt_controller_drive.jpg?400|}} 
 +[[https://youtu.be/hLN8Q94Waso | Video Example]]
  
-<code c drive_functions.nxc>+The following are examples of functions to use in your main loop for teleoperation (assuming motors connected to ports B and C [pictured above]): 
 + 
 +<code c [enable_line_numbers="true"drive_functions.nxc>
 //Pass in the current state of a given joystick axis to the respective field(s) //Pass in the current state of a given joystick axis to the respective field(s)
 void tankDrive(int rightStickY, int leftStickY){ void tankDrive(int rightStickY, int leftStickY){
Line 105: Line 112:
 The following are example functions that may be used and adjusted based on peripheral construction and purpose: The following are example functions that may be used and adjusted based on peripheral construction and purpose:
  
-<code c peripheral_functions.nxc>+<code c [enable_line_numbers="true"peripheral_functions.nxc>
 //Rotates a motor forward and backward using the square button //Rotates a motor forward and backward using the square button
 //Can be used in mechanisms such as a gripper/claw and projectile “kicker” //Can be used in mechanisms such as a gripper/claw and projectile “kicker”
Line 149: Line 156:
 } }
 </code> </code>
 +
 +**<fs x-large>Additional Build Instructions</fs>** 
 +
 +The following are links to various mobile robot builds and mechanisms to be customized for your teleoperational purposes:
 +
 +[[https://www.lego.com/cdn/product-assets/product.bi.core.pdf/4556207.pdf|Castor Bot & Kick Mechanism]]
 +\\
 +[[https://www.nxtprograms.com/game_control_car/steps.html|Elevated Castor Robot]]
 +\\
 +[[https://www.nxtprograms.com/claw_car/steps.html|Claw Mechanism]]
 +\\
 +{{ :band-powered.pdf |"Band-Powered"}}
 +\\
 +{{ :coralle_and_kick.pdf |Corrale & Kick}}
 +
 +
 +<fs x-large>**Final Words**</fs>
 +
 +The purpose of this tutorial has been to inform of the potential for teleoperation using the Lego NXT module, a user utilizing a remote controller to execute defined functions which while explained for mechanical use, may extent far beyond such. 
 +
 +Speculating future work derived from this tutorial includes that of autonomous NXT module operation with an emphasis on function execution in response to visual data.
lego_nxt_teleoperation_introduction.1722811786.txt.gz · Last modified: by hhameed