Grumpy,In defense of sonny, he pointed out that for $2 you can buy a pre packaged converter from spark fun and not have to buy any other parts, and given it does 4 channels, it could be cheaper than picking up the parts to build one yourself.
In the optocoupled approach, can you connect to the emitter side of the optocoupler with a pull down resistor and connect collector to the voltage rail, to avoid the extra transistors that are there to un-invert the signal? It seems that if you don't enable the pull up on the pin, it would work? Reason I ask is that I have a boatload of isolators (good deal in bulk XD). And may have to tie. Pi to a mega
Use USB or powered USB hub is more common since this time not only Arduino is powered by Pi but also supported up to 127 Arduinos same time.