Debug: Database connection successful
You are not logged in.
SpaceNut ... there did not seem to be a topic in Education about robots
The Holiday Gift Idea catalogs are starting to arrive ...
For a relatively small sum, this product (to be posted shortly) is pretty amazing.
It basically seems to be giving wheels to a smart phone! I presume the operator uses another smart phone, but a laptop or other computer might work.
I bring this up in the context of the effort of GW Johnson to re-invent the Mars Lander for proving landing pads.
The RC NASA Mars Rover
Item 97524
This is the remote-controlled vehicle modeled after the NASA Mars 2020 Perseverance rover.Read More
Currently Taking Orders -Expected ship date 10/25/2021
$59.95
Qty -
1
+
Add to Cart
Lifetime GuaranteeLifetime Guarantee
Our items are guaranteed for their normal life under standard, non-commercial use.Product Story
This is the remote-controlled vehicle modeled after the NASA Mars 2020 Perseverance rover. Its all-terrain tires and shock absorbing suspension enable the rover to conquer uneven environments whether on Earth or the red planet. It has a front camera arm that secures a smartphone, allowing the vehicle to take pictures and record footage—capturing a point-of-view documentation of your exploration missions. Its remote control provides forward/backward, left/right, and sideways movement just like the real Mars rover from up to 98' away. Requires two AA batteries. Ages 5 and up.
So why would we (NewMars Lander Design Team) miss a chance to mount a smart phone on our little pounder rover robot?
(th)
Last edited by tahanson43206 (2021-09-17 11:46:57)
Offline
Like button can go here
even build it with lego's
Offline
Like button can go here
This topic has been idle since 2021.
For SpaceNut .... your suggestion of building robots is Lego bricks is interesting, as shown in Post #2
While LEGO(tm) bricks are associated with a particular kind of plastic component and method of assembly, the basic idea of using identical components to build up complex systems is on display in the Real Universe every day.
Individual atoms are essentially indistinguishable from each other, and the same goes for molecules of the same type.
Above that level, arrangements of these identical components become distinguishable.
There are several levels of complexity between atoms and LEGO(tm) blocks, but the basic idea may work for robots.
I have two educational robot kits on hand here to study. One came pre-assembled because I was interested in just using the robot to perform a task.
I was not successful because the software needed to enable all the components to work together was beyond my reach at the time.
I still have all the components. They include the robot arm, a Bluetooth enabled game controller, a Raspberry Pi system with the needed capability, and various computers that could serve as software assembly stations.
The second system is from a different manufacturer. It came as a collection of parts, and I was able to assemble the system, but in this case as well, the missing element was the software that must be loaded onto the control board to enable the arm to respond to commands from the PS/2 game controller.
If current plans hold, I will restart the Robot Arm project and report progress on the forum.
The reason I was given for why that was not done was that the manufacturer of the control board installed software for testing the board, and that software is still on the board.
I have no way of using the manufacturer installed software.
It seems to me that before shipping the kit, the manufacturer could have loaded the basic software onto the system board so that the robot arm would have worked right out of the box. I think that I understand why that was not done. The manufacturer is in the education business. The manufacturer therefore may have wanted the customer to follow all the training exercises that are included with the kit. However, I just wanted results after I completed assembly of the kit.
Here is a program designed to test the PS/2 game controller with the output delivered as text strings:
/*****************************************************
* This code applies to Metal robotic arm Kit
* Through this link you can download the source code:
* https://github.com/Cokoino/CKK0017
* Tested with ckk0017 on 2026/02/12 on Win 7
* Updated 2026/02/14 to include Joy Stick reports
*****************************************************/
#include <PS2X_lib.h>//for 1.4
PS2X ps2x; // create PS2 Controller Class
//right now, the library does NOT support hot pluggable controllers, meaning
//you must always either restart your Arduino after you conect the controller,
//or call config_gamepad(pins) again after connecting the controller.
int error = 0;
byte vibrate = 0;
void setup(){
Serial.begin(57600);
error = ps2x.config_gamepad(10,12,11,13); //setup GamePad(clock, command, attention, data) pins, check for error
if(error == 0){
Serial.println("Found Controller, configured successful");
Serial.println("Try out all the buttons");
Serial.println("holding L1 or R1 will print out the analog stick values.");
}
else if(error == 1)
Serial.println("No controller found, check wiring");
else if(error == 2)
Serial.println("Controller found but not accepting commands");
//Serial.print(ps2x.Analog(1), HEX);
//ps2x.enableRumble(); //enable rumble vibration motors
//ps2x.enablePressures(); //enable reading the pressure values from the buttons.
}
void loop(){
/* You must Read Gamepad to get new values
Read GamePad and set vibration values
ps2x.read_gamepad(small motor on/off, larger motor strenght from 0-255)
if you don't enable the rumble, use ps2x.read_gamepad(); with no values
you should call this at least once a second
*/
if(error != 0)
return;
ps2x.read_gamepad(false, vibrate); //read controller and set large motor to spin at 'vibrate' speed
if(ps2x.Button(PSB_START)) { //will be TRUE as long as button is pressed
Serial.println("Start is being held");
}
if(ps2x.Button(PSB_SELECT)){
Serial.println("Select is being held");
}
if(ps2x.Button(PSB_PAD_UP)) { //will be TRUE as long as button is pressed
Serial.println("UP is being held");
}
if(ps2x.Button(PSB_PAD_RIGHT)){
Serial.println("RIGHT is being held");
}
if(ps2x.Button(PSB_PAD_LEFT)){
Serial.println("LEFT is being held");
}
if(ps2x.Button(PSB_PAD_DOWN)){
Serial.println("DOWN is being held");
}
if(ps2x.Button(PSB_TRIANGLE)){
Serial.println("TRIANGLE is being held");
}
if(ps2x.Button(PSB_CROSS)){
Serial.println("CROSS is being held");
}
if(ps2x.Button(PSB_SQUARE)){
Serial.println("SQUARE is being held");
}
if(ps2x.Button(PSB_CIRCLE)){
Serial.println("CIRCLE is being held");
}
if(ps2x.Button(PSB_L2)){
Serial.println("L2 is being held");
}
if(ps2x.Button(PSB_R2)){
Serial.println("R2 is being held");
}
if(ps2x.Button(PSB_L1)){
Serial.println("L1 is being held");
Serial.print("Stick Values:");
Serial.print(ps2x.Analog(PSS_LX), DEC); //Left stick, X axis.
Serial.print(",");
Serial.println(ps2x.Analog(PSS_LY), DEC); //Left stick, Y axis.
}
if(ps2x.Button(PSB_R1)){
Serial.println("R1 is being held");
Serial.print("Stick Values:");
Serial.print(ps2x.Analog(PSS_RX), DEC); //Right stick, X axis.
Serial.print(",");
Serial.println(ps2x.Analog(PSS_RY), DEC); //Right stick, Y axis.
}
delay(50);
}(th)
Offline
Like button can go here