After a little brainstorming, I came up with the following block diagram:
To avoid unsightly wires I'll make the thing battery powered, and since it's on a window I'll let it recharge via photovoltaics.
Controlling it remotely will require either RF or IR. I already have some nRF24L01's lying around, plus I have one attached to my Raspberry Pi. I'm thinking I can use the Pi to control a schedule for opening/closing the curtains and communicate that command through the nRF24. OR I can let the microcontroller handle things and set the schedule/current time through the Pi. I can also just build a standalone remote for the curtains, but that won't be able to set a schedule, just command it to open/close.
Motors and mechanics are not my strong suit. However, I think just a basic DC brushed motor will work for this project and not be too noisy. Plus they're cheap and easy to control. I've already picked out a couple candidates and might just order all of them to test out. I'll need to detect when the motor has stalled out, either from a completed move or it got caught on something. An encoder would be best, but they're more expensive. I think I can get away with just measuring the current used by the motor through a resistor. It'll take some experimenting to find the right cut-off threshold, while also recognizing start-up current, but shouldn't be too hard.
Will be a PIC. I'm most familiar with those. They even have some with built in Op-Amps, which I would use for the current sense resistor, cutting down on parts and board space.
Honestly, getting the mechanics set up, mounting the motor and pulleys to the wall, will probably be the hardest part of this project. Mechanics are really not my strong suit.