I still think the IC solution posted earlier is better...
What is the function of the 330Ω resistors?
Also, your schematic simply connects the µC GND to the battery ground,
µC GND to the battery ground is intentonal, you have to connect uC somewhere to the battery circuit, you just do OK?
, so it's negative here.
330 Ohm 's set the base drive current into the BJTs. They'll set 6 mA of current. As AG points out it could benefit being higher, say 20 mA. I'll discuss this later.
Here's a 'trade secret' in circuit analogies. When using a transistor to switch a significant current, it's a bit like "grasping a nettle'". If it's done half-heartedly, you get stung, but if you grab a nettle hard it doesn't sting you. When driving a transistor to switch a significant amount of current, you need also to be sure you're driving it more than it needs, then the transistor doesn't heat up or fry.
It's done by analysis. Very roughly, you can look at how much motor current you're going to be switching (200 mA?). Then look for the hFE parameter in the datasheet, as near that current you can find. Say it's hFE=100 @ 50 mA. Now it's 200 / 100 = 2 mA of base current needed. 2 mA is considered 'not grasping the nettle', you'll need to overdrive it some. If you don't overdrive it, it's not the end of the world, but you'll start smelling burning and maybe burn your finger.
Once you've decided on how much to drive the BJT, you do some sums. Say if it's 3 V supply to uC, and you'd chose 10 mA. It's roughly 2 / 10 (kohms) = 200 Ohm. Where '2' came from is the voltage across the resistor that you want to use. That's a guess by me based on experience, which is 'knock off a volt' for this particular circuit, it'll take too long to explain
If you overdrive the BJT too much (lower resistor value), it won't harm the transistor, but the uC could warm up too much. You'll probably be able to drive a total of 100 mA with the uC.