Grammar generating odd number of 1s
I would split the language in a part that assures that the number of 1s is odd (like, one 1), and another part of the language that maintains that. Similar to induction. So the first step is to write

$$S \rightarrow A1A$$

This makes sure there is at least one $1$ in our grammar, and $A$ is must maintain that. Any number of $0$s or $2$s have no effect, as well as the empty string:

$$A \rightarrow 0A \mid A0$$
$$A \rightarrow 2A \mid A2$$
$$A \rightarrow \lambda$$

However, if $A$ contains a $1$, it must contain at least another one. How can we enforce this? Simple! We re-use $S$, which already enforces this:

$$A \rightarrow 1S\mid S1$$

Note that I made every rule symmetrical regarding order. This is not a good practice in general when writing grammars for actual parsing, as it leads to highly ambiguous grammars. However here the focus is on getting the requirements right, so having not to worry about order at all makes it a bit easier.