Is there a cryptographic protocol which, at least in theory (and under standard cryptographic assumptions) enables people to securely vote from their homes? I could see how the various problems might be addressed (such as: preventing people from voting twice, producing proof that the vote was registered while revealing no information about who the vote was for) except for one: preventing coercion (that is making sure that the voter isn't being bribed or otherwise forced to vote a certain way). This seems to be impossible, in principle, without the voter being physically present at a voting center with overseers watching, but maybe I'm not sufficiently thinking outside the box?..
(Summarizing the discussion in the comments)
A mechanism to defend against bribes/coercion:
The simplest variant is, make the voter enter a password in order to vote, but do not provide an indication whether the password was correct. That is, if the voter enters a correct password and votes, the vote is registered, whereas if the voters enters an incorrect password and votes, the vote is ignored but the result looks the same on the client side. This has the drawback that, if the voter enters a wrong password by mistake, their vote will not count and they won't even know this.
The drawback can be somewhat ameliorated by allowing tolerance to small edit distance. A more complex solution is, provide each voter with one true password and a way to randomly generate exponentially many (but still sparse w.r.t. edit distance) false passwords, s.t. even an attacker who knows the generating algorithm cannot tell whether a given string was generated by it (alternatively, just sample the true password from the same distribution).
This question is probably too broad to be answerable here, because the answer depends on what kinds of security requirements you have, what the threat model is, and what assumptions we're willing to make -- there are many different versions of those. In other words, the "secure voting" problem is not one problem, but a broad class of problems. I suggest doing a literature search, reading some of the classic papers, then see if you have a more specific question. You could start with papers published at EVT and WOTE use them to seed your literature search.
If you're specifically interested in coercion, I suggest looking at Juels, Catalano, and Jakobson (WPES 2005) and Civitas (IEEE S&P 2008). Those are two important early papers. Also, by doing a search on papers that cite them, you'll be able to turn up a lot of more recent work on coercion.
All of these schemes have something in common; they do require some kind of trusted channel to the voter or some situation where the voter does register in person in a supervised environment. They might not require supervision during the time of voting; that can be pushed to a setup phase.
Also, the solutions may depend on whether you are willing to assume that voters have a personal device (e.g., smartphone) and whether voters are willing to trust it. Obviously the problem gets easier if you answer that in the affirmative.