Mambo Reference ManualContents
Mambo overview![]() The Mambo robot kit is comprised of a robot body, a controller, DC motors, front wheels attached to the DC motors, a free back wheel, misclanous sensors, etc. Two short cables connect the motors to the controller's motor channels, and 4 long cables are provided for connecting the sensors to the controller general I/O channels. Also included in the robot kit is a 7.2V rechargeable battery pack and a charger. Also included in this kit are robotic claws, temperature sensors, analog light sensors, personal pad, etc. The class kit contains Robotraffic (class) pad, traffic lights system with own controller and battaery pack, etc. Controller overview![]()
Operating the ControllerThe controller may use either of two power sources: USB or battery. The rocker button at the top of the controller is used to select the power source - when pushed towards the battery connector, battery power is active, and when pushed towards the USB connector, the USB is active. Note: if the button is pushed towards the battery, and no battery is connected, then the USB is used as a power source.The USB connector is used for connecting the controller to the computer. The Mambo software uses the USB connection to upload the user programs to the controller. I/O ChannelsThe robot's controller has 4 channels, used for both input and output. Input may be analog or digital(0/1), while output may be only digital (0/1). The channel type can be set using the IDE by pressing the toolbar "Channel settings.." button.Note: When set to analog mode, channel input range depends on the IDE in use. In Mambo Drag-and-Drop IDE, the input range is 0..100, while on the Mambo C/C++ IDE the input range is 0..1023. Motors and motor connectorsThe controller contains 3 PWM motor connectors at its bottom part, of which 2 (on the right side) support high DC motors. Thus, in a normal configuration, the 2 right motor connectors (marked as motor1 and motor2) are connected to the DC motors, while the third (marked as "ex") is used to control servo motors, such as in the robotic claws.For the DC motors (motor1 and motor2), the range of values is -100..+100. A 100 value indicates 100% electrical power forward direction, while -100 value indicates 100% electrical power backward direction. Writing a 0 value to a motor will cause it to stop. Note: any of the 3 motor connectors may be used for input as well, if not used for output. Built in LCDThe built in LCD screen is located in the center of the controller, and is used for printing textual information using the print command. It has 2 lines and 8 columns, and a new print command causes an automatic scroll. For clearing the screen simply print empty string ("").Built in LedThe built in led is located at the bottom-right corner of the controller, under the buzzer. It is a 0/1 output only device, writing to it "1" turns it on, while "0" turns it off.Built in BuzzerThe built in buzzer is located near the bottom-right corner of the controller, above the led. It is a PWM output only device, accepting a frequency as a value.Built in ButtonThe built in button (black button under the LCD, marked as "button1") is an input device returning "1" if it is pushed by the user or "0" when not pushed.SensorsMambo robotic systems contain sensors of many types:![]()
![]()
![]()
![]()
![]()
Robot StructureThe Mambo structure was built with pedagogic considerations in mind: it is mostly transparent, just like the controller cover, so that inner parts can be seen and shown to students in class. It is built of transparent plates and of poles, together forming a stable structure for robotic missions.![]() Robotraffic pad and Traffic Light systemMambo robotic system contains components for working in a robot traffic area, including big pad and traffic light system. For a full explanation about this system is Robotraffic system.Mambo Drag-and-Drop IDE![]() Available commands (bottom menu):
Sample Programs
print "Hello World!";
motor1.value=100; motor2.value=100; wait(3); # wait 3 seconds motor1.value=0; # stop motor1 motor2.value=0; # stop motor2
motor1.value=100; wait(3); motor1.value=0;
motor1.value=100; motor2.value=-100; wait(3); motor1.value=0; motor2.value=0;
while (true) print ""; # clear screen wait (0.5); print channel1; # read and print channel1 value print channel3; # read and print channel3 value wait (0.5);
while (true) led.value=1; wait (0.5); led.value=0; wait (0.5);
while (true) led.value=button1.value; # if buttons is pushed led is on, else led is off wait (0.5);
buzzer.value=523; wait (0.1); buzzer.value=587; wait (0.1); buzzer.value=659; wait (0.1); buzzer.value=698; wait (0.1); buzzer.value=784; wait (0.1); buzzer.value=880; wait (0.1); buzzer.value=988; wait (0.1); buzzer.value=1074; wait (0.1); buzzer.value=0; # stop buzzer wait (0.1);
Number delay=0.015; print "servo test"; for index in 0..3 times step 1 print "close claws"; for index2 in 80..1 time step -1 ex.value=index2; wait (delay); wait (3); for index2 in 0..80 time step 1 ex.value=index2; wait (delay); wait (3); Mambo C/C++ IDE![]() MamboC++ IDE Syntax is a C/C++, with a partial support for object oriented programming. For documentation and help of Mambo C/C++ go to help menu within the application. |