If you are writing contemporary fiction, you could probably get away with writing these words incorrectly. Your dialog will flow just fine and sound quite natural. But if you are writing historical fiction, you had better know these words and use them properly, because it’s certain that your characters would have learned them in school! Even cowboys and farmers would have used these words correctly, unless they were completely uneducated.
So, what’s the difference?
When you ask someone if they “can” do something, you are asking if they are capable of it. “Can you knit?” asks if the person has the knowledge, the tools and the skills to knit.
“Can I…” should never be used. Ever. “I” would already know if I were capable of doing something, and so it is a moot point. “Can I knit?” Of course, I can! I taught myself to knit many years ago! “Can I drive the car?” Of course, I can. I got my driver’s license nearly forty years ago. If I were asking for permission to use the car, then I would use the word “may.”
“May I drive the car on Friday?” This question asks permission to borrow the car.
“Can you drive?” would be asking if the person had the knowledge and skills required to drive a car. It’s actually kind of insulting. If you want someone to drive for you, because you are getting tired and want them to take over, you should ask them politely. “Will you drive?” would be more appropriate.
So in your stories, your polite heroes will ask, “May I have this dance?”
And when your naughty heroines are being disciplined, and required to ask for it, they would cry out, “One, thank you, sir! May I have another?”
Now we can all use these little words correctly, because we have the knowledge and skills to do so.