The ATMEL Atmega328 was chosen for the good price, wide availability and
wide community support. This chip is also used in the Arduino UNO
development platform that is usually the starter's platform when it comes to
embedded programming. Using the same chip should ensure a smooth
transition of newbies and experienced users alike.
The microcontroller features 21 GPIO pins divided in three ports :
Port B (PB7:0)
This port is reserved for the NRF24L01 communications module due to the
hardware SPI pins. An ICSP connector is also wired on the respective MISO,MOSI,SKC
and RESET pins
The clock circuitry is also on this port.
PB0 drives a onboard LED.
Port C (PB5:0)
This port is used as an analog input on the arduino board so we just used
an 6 pin connector to provide easy access for adding extra sensors and
Port D (Pd7:0)
Port D drives the L293D Hbridge, and the enable pins on the L293D are
connected to PWM capable pins, (PD5 and PD6) to enable individual speed
control for each motor.
Also,the RX/TX pins (PD0 and PD1) are reserved for the user and extended
to an 3 pin connector that also contains the reset pin (PC6).