102
11Instructables320,804Views135CommentsJoined November 18th, 2011

Tell us about yourself!

## Achievements

100+ Comments Earned a bronze medal
10K+ Views Earned a bronze medal
• I can only guess, but you can check this. Seems the shield is "e-gizmo" one. According the circuit (not sure if it is correct) - it uses pins:D8 - Dir-A ("Direction A"), D9 - PWM-A, D10 - PWM-B, D11 - Dir-B ("Direction B"). If so (double check this) - it's needed to change corresponding pin numbers in the program: const int pinRightMotorDirection = 4;//"Dir A" on motor-shield const int pinRightMotorSpeed = 3;//"PWM A" on motor-shield const int pinLeftMotorDirection = 7;//"Dir B" on motor-shield const int pinLeftMotorSpeed = 6;//"PWM B" on motor-shieldIn this case - bumper pins need to be corrected as well - to use other free pins: const int pinRightBumper = 5; const int pinLeftBumper = 8;Again - I do not ha...

see more »

I can only guess, but you can check this. Seems the shield is "e-gizmo" one. According the circuit (not sure if it is correct) - it uses pins:D8 - Dir-A ("Direction A"), D9 - PWM-A, D10 - PWM-B, D11 - Dir-B ("Direction B"). If so (double check this) - it's needed to change corresponding pin numbers in the program: const int pinRightMotorDirection = 4;//"Dir A" on motor-shield const int pinRightMotorSpeed = 3;//"PWM A" on motor-shield const int pinLeftMotorDirection = 7;//"Dir B" on motor-shield const int pinLeftMotorSpeed = 6;//"PWM B" on motor-shieldIn this case - bumper pins need to be corrected as well - to use other free pins: const int pinRightBumper = 5; const int pinLeftBumper = 8;Again - I do not have this board, this is a guess and it can be wrong. Please contact shield's seller for clarification.

• Hi. I'm not sure what can this simple motor circle do, but if it is a motor driver - I think you do not have to use motor shield. Please check out the step 21 in this instructables with such example: https://www.instructables.com/id/Another-cardboard-robot-vacuum-cleaner-controlled-

• Hi. Different motor shield may be designed to be controlled with different pins. Please look at titles of signals on your shield and follow the instruction on a step #20 or on couple comments below.

• Hi. I did not try this particular motor-shield. However as long as the motor-shield supposed to drive two DC motors with their current and voltages - it may work.Pin numbers can be also different - in such case these pin numbers need to be set in the program.

• Following project is similar to this - with more details:https://www.instructables.com/id/Another-cardboard...Block diagram:

• It should be possible. Just check out the pins of DIR and PWM - they may be different on different shields

• You may also check out another project - with some options: https://www.instructables.com/id/Another-cardboard...

• Please look at this one

• Hi, in the instruction with the link below I provided rough evaluation:https://www.instructables.com/id/Another-cardboard...Following list is not precise and just for example - parts can be cheaper or more expensive. E.g. "Arduino Nano" costs \$1, just have another form-factor than usually motor-shield have.Arduino Leonardo \$7Motor-Shield \$6DC motor 6v 120rpm 2x\$10=\$20DC 5015S 5V Turbine Brushless Cooling Blower Fan \$4Axis Rubber Wheel 2x\$2=\$4Power Bank 5v \$10Wires \$?-------------Total ~\$50

• revrekad commented on revrekad's instructable Robot Vacuum Floor Cleaner2 years ago

I have not used STM32. In my other instructions I described projects with Arduino board and their programs are pretty simple - I think STM32 should work with it. Example how to setup STM32 based prototyping board with Arduino IDE: https://www.instructables.com/id/STM32F103RB-in-Arduino-and-beyond/

• Because the robot is very simple and it does not have spinning brush.For example, different versions of iRobot Roomba use acoustic sensor (kind of microphone - listening hits of dirt particles thrown by a spinning brush) or combination of an acoustic sensor and optical sensor (I do not know how it is implemented): https://homesupport.irobot.com/app/answers/detail/...This simple robot does not have a spinning brush, so acoustic sensor would not be a choice, probably. Optical sensor - that might be an interesting task to measure if it can be implemented to detect such small dust particles, which the turbine alone gets into the dustbin.I heard about an approach when photo is taken along the floor with a bright flash - particles of dust expected to be shown on an image as many bright spots....

see more »

Because the robot is very simple and it does not have spinning brush.For example, different versions of iRobot Roomba use acoustic sensor (kind of microphone - listening hits of dirt particles thrown by a spinning brush) or combination of an acoustic sensor and optical sensor (I do not know how it is implemented): https://homesupport.irobot.com/app/answers/detail/...This simple robot does not have a spinning brush, so acoustic sensor would not be a choice, probably. Optical sensor - that might be an interesting task to measure if it can be implemented to detect such small dust particles, which the turbine alone gets into the dustbin.I heard about an approach when photo is taken along the floor with a bright flash - particles of dust expected to be shown on an image as many bright spots. I have not seen such implementation though.

• I think Arduino Uno should be fine.

• https://cdn.instructables.com/FIB/PCDF/I5MD3HIK/FIBPCDFI5MD3HIK.LARGE.jpgOr this instructionhttps://www.instructables.com/id/Another-cardboard-robot-vacuum-cleaner-controlled-/step20/Using-Arduino-Nano/

• You can look at the comments in the following instruction regarding L293D https://www.instructables.com/id/Floor-vacuum-cleaner-robot-controlled-by-Arduino-w-1/

• I think it should work. Example:https://www.instructables.com/id/How-to-use-the-L29...

• To learn how to program Arduino you can try to follow some tutorials like these https://www.instructables.com/howto/getting+started...Then use the code for this particular project, located here:https://github.com/satr/Robot-vacuum-cleaner-contr...

To elarn how to porogram Arduino yYou can try to follow some tutorials like these https://www.instructables.com/howto/getting+started...Then use the code for this particular project, located here: https://github.com/satr/Robot-vacuum-cleaner-contr...

• As far as I remember - the code by the link is fully-functional robot logic, with two bumpers and up to 5 ultrasonic sensors.I used only ATmega MCUs. Other people also use PIC and other controllers. MCU need enough digital and analog (ADC) pins for required amount of bumpers and sensors, also two pins with PWM.Probably even MCU ATtiny maigh be sufficient (e.g. http://www.forkrobotics.com/2012/04/run-arduino-code-on-an-attiny )If the speed of the robot not need to be adjustable - no PWM required, just two digital pins used to change motor direction.

• Regarding using another shield.Motor shield I have uses following pis(Ch.A - is to control one motor, Ch.B - is to control another motor):Function: Ch.A / Ch.BDirection: D4 / D7PWM: D3 / D6Motor shield ArduinoMotorShieldR3 uses different pins:https://www.arduino.cc/en/Main/ArduinoMotorShieldR...Function: Ch.A / Ch.BDirection: D12 / D13PWM: D3 / D11Brake: D9 / D8Current Sensing: A0 / A1For bumper I used pins D5 / D8. In MotorShieldR3 the pin D8 is used for break, so it need to be changed - e.g. use D4. Connect bumpers to pins D5 and D4So constants need to be changed://right sideconst int pinRightMotorDirection = 12;//"Channel A" on motor-driverconst int pinRightMotorSpeed = 3;//"Channel A" on motor-driverconst int pinRightBumper = 5;//left sideconst int pinLeftMotorD...

see more »

Regarding using another shield.Motor shield I have uses following pis(Ch.A - is to control one motor, Ch.B - is to control another motor):Function: Ch.A / Ch.BDirection: D4 / D7PWM: D3 / D6Motor shield ArduinoMotorShieldR3 uses different pins:https://www.arduino.cc/en/Main/ArduinoMotorShieldR...Function: Ch.A / Ch.BDirection: D12 / D13PWM: D3 / D11Brake: D9 / D8Current Sensing: A0 / A1For bumper I used pins D5 / D8. In MotorShieldR3 the pin D8 is used for break, so it need to be changed - e.g. use D4. Connect bumpers to pins D5 and D4So constants need to be changed://right sideconst int pinRightMotorDirection = 12;//"Channel A" on motor-driverconst int pinRightMotorSpeed = 3;//"Channel A" on motor-driverconst int pinRightBumper = 5;//left sideconst int pinLeftMotorDirection = 13;//"Channel B" on motor-driverconst int pinLeftMotorSpeed = 11;//"Channel B" on motor-driverconst int pinLeftBumper = 4;Probably it is needed to put signal LOW to break pins. In “setup()” method:pinMode(D9, OUTPUT);digitalWrite(D9, LOW);pinMode(D8, OUTPUT);digitalWrite(D8, LOW);This should work, but it might not - as I did not test what I wrote above - I do not have such particular motor-shield.

• Hi. You can find the program for this particular project here: https://github.com/satr/Robot-vacuum-cleaner-contr...Such program can be written to Arduino with Arduino IDE https://www.arduino.cc/en/Main/Software

• Hi. It should be possible to control motors with L293. There are some comments and reports about this within my instructions.