For me, procrastination always come from a lack of having a digestible plan of attack.
When you find yourself procrastinating, figure out a single next step for your project, one single feature, or one single task in that feature that needs to be done. If you know what your next step in the project is, you'll have this urge to jump back in and do that task.
If you can't find that task, then you need to step back and look at your project from a higher level and analyze it to see if you have a clear picture of what you're trying to achieve.
When you find yourself procrastinating, figure out a single next step for your project, one single feature, or one single task in that feature that needs to be done. If you know what your next step in the project is, you'll have this urge to jump back in and do that task.
If you can't find that task, then you need to step back and look at your project from a higher level and analyze it to see if you have a clear picture of what you're trying to achieve.
Try it, it works wonders.