About the tachometer...
Nobody uses those anymore.
(Except maybe in school classes and explaining theory).
BLDC motors often have hall sensors, motors with encoders also generate easy to use pulses.
The simple way is to have a few small ISR functions, which trigger on each flank of (one of) the Hall sensors. You can combine that with a free running timer, and the time diffence between two pulses is then a measurement of your speed.
You can also have another ISR, (in practice 20Hz is a nice compromise) and then count the number of flanks in those 50ms, which is also a measurement for your speed and position feedback.
Brushed DC motors are much easier to control then BLDC motors. For a Brushed DC motor you can simply directly use a PWM output (at almost any frequency, really, anything between 30Hz and 100kHz will work) For a BLDC motor you have to know the motor position, and control the 3 half bridges separately and accurately.
for more of BLDC, have a look into "FOC" which stands for Field Oriented Control. There is lots of source code for this "out there". Texas Instuments has made a video series which is a nice introduction into FOC.
There are also plenty of examples on github and elsewhere. BLDC motors are often used in those drones, and there are plenty of open source versions of an "ESC" (Electronic Speed Controller) for these things.
A pretty much polished project in this direction is
https://odriverobotics.com/For a DIY solution, you could for example build something around a L6234.
Another way to get speed and position feedback is with a diametrically magnetized magnet and an angle position measurement IC. The AS5047 is an example of such an IC. This chip (or similar) is used in projects such as "mechaduino" and "ananas stepper".
Both have been mentioned on Hackaday.com, which also has collected lots of other motor related posts over the last 15+ years, and it has a search / browse funktion. I.E:
https://hackaday.com/?s=motor+controllerThe advantage on searching on hackaday (or instructables or similar) is that each article has some photographs and is meant to give some (hopefully decent) documentation, instead of just dumping some source code somewhere.