Difference between revisions of "Ardumower Mini"

From www.wiki.ardumower.de
Jump to: navigation, search
(Videos)
(Steps (manual wiring option))
 
(32 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
[[Image:Ardumower_mini_pcb1_3.jpg|thumb|350px|Ardumower Mini and PCB 1.3]]
 +
[[File: Ardumower_mini.jpg | 500px]]
 +
 
=Abstract=
 
=Abstract=
 
This page describes the 'Ardumower Mini' that can be used to implement a full Ardumower for indoor software development and  
 
This page describes the 'Ardumower Mini' that can be used to implement a full Ardumower for indoor software development and  
Line 5: Line 8:
 
=Needed parts=
 
=Needed parts=
 
*[https://www.marotronics.de/index.php?a=152 Ardumower mini chassis including motors etc.]
 
*[https://www.marotronics.de/index.php?a=152 Ardumower mini chassis including motors etc.]
*[https://marotronics.de/ Ardumower mini electronics]:
+
*PCB 1.3 (recommended) OR  manual wiring using components (not recommended)
** Arduino Mega 2560 Board
+
** Mega Sensor Shield Special Sensor Expansion Board für Arduino
+
** 20 cables female-to-female
+
** Dual MC33926 Motor Driver Carrier (or STL298N Dual Motor Driver)
+
** Ultrasonic Ranging module (HC-SR04) (optional, recommended)
+
** Bluetooth RF Transceiver Module (HC-05) (optional, recommended)
+
** Odometry sensor module (encoder) (optional, recommended)
+
** Sound Sensor LM386 Audio Amplifier 200x and 150 mH perimeter coil (optional)
+
 
+
=Pictures=
+
<gallery>
+
File: Ardumower_mini_front.jpg | Ardumower mini front
+
File: Ardumower_mini_side.jpg | Ardumower mini side
+
File: Ardumower_mini_top.jpg | Ardumower mini top
+
File: perimeter_sender_v2_l298.jpg | Indoor perimeter sender (L298-based)
+
</gallery>
+
  
 
=Videos=
 
=Videos=
#[https://www.youtube.com/watch?v=zjHvKAYzzoU&feature=youtu.be Ardumower mini]
+
#[https://www.youtube.com/watch?v=vvfRZFmgq4E Ardumower Mini and PCB 1.3]
 +
#[https://www.youtube.com/watch?v=zjHvKAYzzoU&feature=youtu.be Ardumower Mini]
 
#[https://www.youtube.com/watch?v=Mah97zM8x5U Ardumower mini tracking perimeter wire]
 
#[https://www.youtube.com/watch?v=Mah97zM8x5U Ardumower mini tracking perimeter wire]
 
#[https://www.youtube.com/watch?v=bA2sRMLeSjg Project LF: lane-by-lane mowing (Gyro+odometry)]
 
#[https://www.youtube.com/watch?v=bA2sRMLeSjg Project LF: lane-by-lane mowing (Gyro+odometry)]
Line 32: Line 20:
 
#[https://www.youtube.com/watch?v=W3XY5LuRWHc Project LF, milestone1 (working µC, perimeter, coil, motors, buzzer, LCD)]
 
#[https://www.youtube.com/watch?v=W3XY5LuRWHc Project LF, milestone1 (working µC, perimeter, coil, motors, buzzer, LCD)]
  
=Steps=
+
=Building steps (PCB 1.3 option)=
  
The Ardumower Mini can run the same software as the 'big Ardumower'. For the PCB, you don't need to use an Ardumower PCB - instead you can (with some limitation) connect the components directly to the Arduino Mega as shown below. The limitations are: there will be no battery charging circuit, no charging station, and of course your wiring will not look as nice as a ready PCB :-)
+
The Ardumower Mini can run the same software as the 'big Ardumower'. For the PCB, it's recommended to use PCB 1.3.
  
For software download, see the [http://wiki.ardumower.de/index.php?title=Ardumower_PCB#Download_and_flash_Arduino_code Ardumower PCB/code page]. In the Arduino IDE, go into file 'config.h', and activate the pin configuration for the Ardumower Mini (enable '#define USE_MINI' and disable '#define USER_MOWER'). Now the code will use the Ardumower Mini pin configuration file ('mini.cpp').
+
[[File:warning.png]] <b>NOTE: Do not use more than 8 volt to operate the mini DC motors!</b>
  
NOTE: Do not use more than 7 volt to operate the mini DC motors!
+
For further building instructions, see PCB1.3 and for uploading the software, see Azurit Firmware.
 +
 
 +
=Building steps (manual wiring option)=
 +
If you do not want to use PCB 1.3, you can (with some limitation) connect the components directly to the Arduino Mega as shown below. The limitations are: there will be no battery charging circuit, no charging station, and of course your wiring will not look as nice as a ready PCB :-) In Azruit Firmware (mower.h), choose PCB_1_2 and DRIVER_L298N.
  
  
 
[[Image:Ardumower_mini_wiring.png|500px]]
 
[[Image:Ardumower_mini_wiring.png|500px]]
 +
Important: Connect motor driver GND to Arduino GND, so both share a common GND!
  
  
Line 58: Line 50:
 
  +5v  --- leave open
 
  +5v  --- leave open
 
  +12v --- LiPo 2s battery 7volt (+)  
 
  +12v --- LiPo 2s battery 7volt (+)  
  GND  --- LiPo 2s battery 7volt (-)
+
  GND  --- LiPo 2s battery 7volt (-), also connect to Arduino GND
 
  OUT1 --- left motor (+)
 
  OUT1 --- left motor (+)
 
  OUT2 --- left motor (-)
 
  OUT2 --- left motor (-)
Line 70: Line 62:
 
  ENB  --- insert jumper (enables OUT3,4)
 
  ENB  --- insert jumper (enables OUT3,4)
 
  S1  --- insert jumper (enables 5v regulator for +12v voltage input)
 
  S1  --- insert jumper (enables 5v regulator for +12v voltage input)
 +
 +
NOTE: You can test L298N motor driver without Arduino:
 +
 +
# If you connect IN2 to HIGH (5v) and IN1 to LOW (GND), the motor should rotate forward.
 +
# If you connect IN2 to LOW (GND) and IN1 to HIGH (5v), the motor should rotate reverse.
 +
 
   
 
   
 
3.2 For MC33926 motor driver
 
3.2 For MC33926 motor driver
  
 
  VIN      --- LiPo 2s battery 7volt (+)
 
  VIN      --- LiPo 2s battery 7volt (+)
  GND      --- LiPo 2s battery 7volt (-)
+
  GND      --- LiPo 2s battery 7volt (-), also connect to Arduino GND
 
  M1OUT1    --- left motor (+)
 
  M1OUT1    --- left motor (+)
 
  M1OUT2    --- left motor (-)
 
  M1OUT2    --- left motor (-)
Line 94: Line 92:
 
  EN        --- Arduino pinMotorEnable (see code: mini.cpp)
 
  EN        --- Arduino pinMotorEnable (see code: mini.cpp)
 
  VDD      --- Arduino 5V  
 
  VDD      --- Arduino 5V  
 +
 +
NOTE: You can test MC33926 motor driver without Arduino:
 +
 +
# If you connect IN1 to HIGH (5v) and IN2 to LOW (GND), the motor should rotate forward.
 +
# If you connect IN1 to LOW (GND) and IN2 to HIGH (5v), the motor should rotate reverse.
 +
  
 
4. Arduino Mega
 
4. Arduino Mega
Line 138: Line 142:
 
  DO2 (right motor) --- Arduino pinOdometryRight (see code: mini.cpp)   
 
  DO2 (right motor) --- Arduino pinOdometryRight (see code: mini.cpp)   
 
  NOTE: Set 'twoWayOdometrySensorUse = 1'
 
  NOTE: Set 'twoWayOdometrySensorUse = 1'
 +
 +
12. Stand-alone perimeter receiver and sender (for your own robot project)
 +
 +
[[File: Perimeter1.png|600px]]

Latest revision as of 15:04, 21 August 2018

Ardumower Mini and PCB 1.3

Ardumower mini.jpg

Abstract

This page describes the 'Ardumower Mini' that can be used to implement a full Ardumower for indoor software development and that you can purchase via the shop Shopping.png

Needed parts

Videos

  1. Ardumower Mini and PCB 1.3
  2. Ardumower Mini
  3. Ardumower mini tracking perimeter wire
  4. Project LF: lane-by-lane mowing (Gyro+odometry)
  5. Project LF : robot position tracking on map
  6. Project LF: particle filter while mowing
  7. Project LF: robot position estimation via particle filter
  8. Project LF, milestone1 (working µC, perimeter, coil, motors, buzzer, LCD)

Building steps (PCB 1.3 option)

The Ardumower Mini can run the same software as the 'big Ardumower'. For the PCB, it's recommended to use PCB 1.3.

Warning.png NOTE: Do not use more than 8 volt to operate the mini DC motors!

For further building instructions, see PCB1.3 and for uploading the software, see Azurit Firmware.

Building steps (manual wiring option)

If you do not want to use PCB 1.3, you can (with some limitation) connect the components directly to the Arduino Mega as shown below. The limitations are: there will be no battery charging circuit, no charging station, and of course your wiring will not look as nice as a ready PCB :-) In Azruit Firmware (mower.h), choose PCB_1_2 and DRIVER_L298N.


Ardumower mini wiring.png Important: Connect motor driver GND to Arduino GND, so both share a common GND!


1. Start button

Button (a) --- Arduino pinButton (for actual pin number, see code: mini.cpp)
Button (b) --- Arduino GND 

2. Piezo buzzer

Buzzer (a) --- Arduino pinBuzzer (for actual pin number, see code: mini.cpp)
Buzzer (b) --- Arduino GND 

3. Motor driver

3.1 For L298N motor driver

+5v  --- leave open
+12v --- LiPo 2s battery 7volt (+) 
GND  --- LiPo 2s battery 7volt (-), also connect to Arduino GND
OUT1 --- left motor (+)
OUT2 --- left motor (-)
OUT3 --- right motor (+)
OUT4 --- right motor (-)
ENA  --- insert jumper (enables OUT1,2)
IN1  --- Arduino pinMotorLeftPWM  (for actual pin number, see code: mini.cpp)
IN2  --- Arduino pinMotorLeftDir  (for actual pin number, see code: mini.cpp)
IN3  --- Arduino pinMotorRightPWM (for actual pin number, see code: mini.cpp)
IN4  --- Arduino pinMotorRightDir (for actual pin number, see code: mini.cpp)
ENB  --- insert jumper (enables OUT3,4)
S1   --- insert jumper (enables 5v regulator for +12v voltage input)

NOTE: You can test L298N motor driver without Arduino:

  1. If you connect IN2 to HIGH (5v) and IN1 to LOW (GND), the motor should rotate forward.
  2. If you connect IN2 to LOW (GND) and IN1 to HIGH (5v), the motor should rotate reverse.


3.2 For MC33926 motor driver

VIN       --- LiPo 2s battery 7volt (+)
GND       --- LiPo 2s battery 7volt (-), also connect to Arduino GND
M1OUT1    --- left motor (+)
M1OUT2    --- left motor (-)
M2OUT1    --- right motor (+)
M2OUT2    --- right motor (-)
M1_FB     --- Arduino pinMotorLeftSense (see code: mini.cpp)
M1_SF     --- Arduino pinMotorLeftFault (see code: mini.cpp)
M1_PWM_D1 --- connect with jumper to GND
M1_PWM_D2 --- connect with jumper to VDD
M1_IN1    --- Arduino pinMotorLeftPWM (see code: mini.cpp)
M1_IN2    --- Arduino pinMotorLeftDir (see code: mini.cpp)
EN        --- Arduino pinMotorEnable  (see code: mini.cpp)
M2_FB     --- Arduino pinMotorRightSense (see code: mini.cpp)
M2_SF     --- Arduino pinMotorRightFault (see code: mini.cpp)
M2_PWM_D1 --- connect with jumper to GND
M2_PWM_D2 --- connect with jumper to VDD
M2_IN1    --- Arduino pinMotorRightPWM (see code: mini.cpp)
M2_IN2    --- Arduino pinMotorRightDir (see code: mini.cpp)
EN        --- Arduino pinMotorEnable (see code: mini.cpp)
VDD       --- Arduino 5V 

NOTE: You can test MC33926 motor driver without Arduino:

  1. If you connect IN1 to HIGH (5v) and IN2 to LOW (GND), the motor should rotate forward.
  2. If you connect IN1 to LOW (GND) and IN2 to HIGH (5v), the motor should rotate reverse.


4. Arduino Mega

Power jack       ---  LiPo 2s battery 7volt (outside is-/inside is+)

5. Bluetooth receiver (optional, but recommended)

VCC5.0  --- Arduino 5v   (for 5v Bluetooth version)
VCC3.3  --- Arduino 3.3v (for 3.3v Bluetooth version)
TXD     --- Arduino RX2
RXD     --- Arduino TX2
GND     --- Arduino GND

6. Sonar/ultrasonic (optional, but recommended)

VCC     --- Arduino 5v
Trig    --- Arduino pinSonarCenterTrigger (see code: mini.cpp)
Echo    --- Arduino pinSonarCenterEcho (see code: mini.cpp)
GND     --- Arduino GND

7. Model R/C (optional)

VCC           --- Arduino 5v
CHANNEL steer --- Arduino pinRemoteSteer (see code: mini.cpp)
CHANNEL speed --- Arduino pinRemoteSpeed (see code: mini.cpp)

8. IMU (compass/gyro/accel) (optional)

SDA     --- Arduino SDA
SCL     --- Arduino SCL
GND     --- Arduino GND
VCC5.0  --- Arduino 5v

9. Perimeter receiver (optional, but recommended)

VCC     --- Arduino 5v
IN      --- coil (a)
GND     --- coil (b)
GND     --- Arduino GND
Out     --- Arduino pinPerimeterLeft (see code: mini.cpp)

10. Perimeter sender (optional, but recommended)

See Ardumower sender.

11. Odometry/wheel encoder (optional)

VCC               --- Arduino 5v
GND               --- Arduino GND
DO1 (left motor)  --- Arduino pinOdometryLeft (see code: mini.cpp)
DO2 (right motor) --- Arduino pinOdometryRight (see code: mini.cpp)   
NOTE: Set 'twoWayOdometrySensorUse = 1'

12. Stand-alone perimeter receiver and sender (for your own robot project)

Perimeter1.png