Ardumower Mini: Unterschied zwischen den Versionen

Aus www.wiki.ardumower.de
Wechseln zu: Navigation, Suche
(Steps)
(Steps (manual wiring option))
 
(48 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 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  
Zeile 5: Zeile 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://www.marotronics.de/index.php?k=7 Ardumower electronics]
+
*PCB 1.3 (recommended)  OR  manual wiring using components (not recommended)
 
+
=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=uC6drtcvkIU Project LF : robot position tracking on map]
 +
#[https://www.youtube.com/watch?v=kaCt7vCkF-g Project LF: particle filter while mowing]
 +
#[https://www.youtube.com/watch?v=ySj2lEhs7L0 Project LF: robot position estimation via particle filter]
 +
#[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>
 +
 
 +
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]]
 +
Important: Connect motor driver GND to Arduino GND, so both share a common GND!
  
NOTE: Do not use more than 7 volt to operate the mini DC motors!
 
  
 
1. Start button
 
1. Start button
 
  Button (a) --- Arduino pinButton (for actual pin number, see code: mini.cpp)
 
  Button (a) --- Arduino pinButton (for actual pin number, see code: mini.cpp)
  Button (b) --- GND  
+
  Button (b) --- Arduino GND  
  
 
2. Piezo buzzer
 
2. Piezo buzzer
 
  Buzzer (a) --- Arduino pinBuzzer (for actual pin number, see code: mini.cpp)
 
  Buzzer (a) --- Arduino pinBuzzer (for actual pin number, see code: mini.cpp)
  Buzzer (b) --- GND  
+
  Buzzer (b) --- Arduino GND  
  
 
3. Motor driver
 
3. Motor driver
Zeile 41: Zeile 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 (+)
 +
OUT2 --- left motor (-)
 +
OUT3 --- right motor (+)
 +
OUT4 --- right motor (-)
 
  ENA  --- insert jumper (enables OUT1,2)
 
  ENA  --- insert jumper (enables OUT1,2)
 
  IN1  --- Arduino pinMotorLeftPWM  (for actual pin number, see code: mini.cpp)
 
  IN1  --- Arduino pinMotorLeftPWM  (for actual pin number, see code: mini.cpp)
Zeile 49: Zeile 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)
OUT1 --- left motor (+)
+
 
OUT2 --- left motor (-)
+
NOTE: You can test L298N motor driver without Arduino:
OUT3 --- right motor (+)
+
 
OUT4 --- right motor (-)
+
# 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 (+)
 +
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_FB    --- Arduino pinMotorLeftSense (see code: mini.cpp)
 
  M1_SF    --- Arduino pinMotorLeftFault (see code: mini.cpp)
 
  M1_SF    --- Arduino pinMotorLeftFault (see code: mini.cpp)
Zeile 71: Zeile 92:
 
  EN        --- Arduino pinMotorEnable (see code: mini.cpp)
 
  EN        --- Arduino pinMotorEnable (see code: mini.cpp)
 
  VDD      --- Arduino 5V  
 
  VDD      --- Arduino 5V  
M1OUT1    --- left motor (+)
+
 
M1OUT2    --- left motor (-)
+
NOTE: You can test MC33926 motor driver without Arduino:
M2OUT1    --- right motor (+)
+
 
M2OUT2    --- right motor (-)
+
# If you connect IN1 to HIGH (5v) and IN2 to LOW (GND), the motor should rotate forward.
VIN      --- LiPo 2s battery 7volt (+)
+
# If you connect IN1 to LOW (GND) and IN2 to HIGH (5v), the motor should rotate reverse.
GND      --- LiPo 2s battery 7volt (-)
+
 
  
 
4. Arduino Mega
 
4. Arduino Mega
 
  Power jack      ---  LiPo 2s battery 7volt (outside is-/inside is+)
 
  Power jack      ---  LiPo 2s battery 7volt (outside is-/inside is+)
  
5. Bluetooth receiver  
+
5. Bluetooth receiver (optional, but recommended)
 
  VCC5.0  --- Arduino 5v  (for 5v Bluetooth version)
 
  VCC5.0  --- Arduino 5v  (for 5v Bluetooth version)
 
  VCC3.3  --- Arduino 3.3v (for 3.3v Bluetooth version)
 
  VCC3.3  --- Arduino 3.3v (for 3.3v Bluetooth version)
Zeile 88: Zeile 109:
 
  GND    --- Arduino GND
 
  GND    --- Arduino GND
  
6. Sonar (ultrasonic)
+
6. Sonar/ultrasonic (optional, but recommended)
 
  VCC    --- Arduino 5v
 
  VCC    --- Arduino 5v
 
  Trig    --- Arduino pinSonarCenterTrigger (see code: mini.cpp)
 
  Trig    --- Arduino pinSonarCenterTrigger (see code: mini.cpp)
Zeile 94: Zeile 115:
 
  GND    --- Arduino GND
 
  GND    --- Arduino GND
  
7. Model R/C
+
7. Model R/C (optional)
 
  VCC          --- Arduino 5v
 
  VCC          --- Arduino 5v
 
  CHANNEL steer --- Arduino pinRemoteSteer (see code: mini.cpp)
 
  CHANNEL steer --- Arduino pinRemoteSteer (see code: mini.cpp)
 
  CHANNEL speed --- Arduino pinRemoteSpeed (see code: mini.cpp)
 
  CHANNEL speed --- Arduino pinRemoteSpeed (see code: mini.cpp)
  
8. IMU (compass/gyro/accel)  
+
8. IMU (compass/gyro/accel) (optional)
 
  SDA    --- Arduino SDA
 
  SDA    --- Arduino SDA
 
  SCL    --- Arduino SCL
 
  SCL    --- Arduino SCL
Zeile 105: Zeile 126:
 
  VCC5.0  --- Arduino 5v
 
  VCC5.0  --- Arduino 5v
  
9. Perimeter receiver
+
9. Perimeter receiver (optional, but recommended)
 
  VCC    --- Arduino 5v
 
  VCC    --- Arduino 5v
 
  IN      --- coil (a)
 
  IN      --- coil (a)
Zeile 112: Zeile 133:
 
  Out    --- Arduino pinPerimeterLeft (see code: mini.cpp)
 
  Out    --- Arduino pinPerimeterLeft (see code: mini.cpp)
  
10. Perimeter sender
+
10. Perimeter sender (optional, but recommended)
 
  See [http://wiki.ardumower.de/index.php?title=Perimeter_wire#Sender Ardumower sender].
 
  See [http://wiki.ardumower.de/index.php?title=Perimeter_wire#Sender Ardumower sender].
  
11. Odometry (wheel encoder)
+
11. Odometry/wheel encoder (optional)
 
  VCC              --- Arduino 5v
 
  VCC              --- Arduino 5v
 
  GND              --- Arduino GND
 
  GND              --- Arduino GND
Zeile 121: Zeile 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]]

Aktuelle Version vom 21. August 2018, 14:04 Uhr

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