I've mentored roughly a dozen year-long undergraduate senior research projects, and I've always used a mix of the following techiques to keep students motivated.
Set clear goals, both short and long term.
Students often flounder when they don't understand quite what they should be doing. Research is hard to figure out, and students often don't know how to "work" on a problem.
Whenever I meet with a student, I make sure near the end of the meeting to make a clear list of things the student ought to do by next week. Usually these have the form "work out a few more examples of this", "see if you can figure the same thing for all of these", "try applying this to this", and "see if you can write up this proof". You should try to set at least three goals for each week, with the hope that the student will accomplish at least two of them. When a student doesn't make progress on a goal for a week, you can spend part of the following meeting discussing the specifics of what the student needs to do to work on the goal.
It also helps to keep the student aware of long-term goals for the project. Sentences like "hopefully you can finish up this proof by December, so that you will have time next semester to prove two or three more theorems like this" can work wonders. Students should constantly be aware of what they need to get done if they want to have a good project.
Ask the student to keep a research journal.
The student should have journal with all of their scratchwork that keeps track of what they thought about on each day of the project. Near the beginning, you should tell the student that they should try to work on their project every day, and they should make sure to write down whatever they think about.
You don't "check" the journal, but usually the student should have it open during your research meetings. If you find during a meeting that you don't have much to talk about, you can ask something like "Well, do you have your journal? What have you been thinking about?"
If you use this approach, students will have trouble hiding it when they don't get work done, so they will tend to honestly admit that they didn't have much time this week. When this happens, you should tell them that it's fine---it's okay if they're busy once in a while, as long as they get some good work done for the next week. If they go two weeks in a row without doing much work, you should remind them of the goals for the project, and say that you're worried that they may have a hard time accomplishing these goals if they can't manage to get more work done. Try not to criticize the student directly: this will sour your working relationship, which is essential to getting the project done.
Try to be available between meetings.
I often try to encourage my research students to stop by my office hours for a few minutes between weekly meetings. For example, this semester I have a student that I meet with on Wednesdays, but I usually ask her to stop by my office hours for a few minutes on Fridays and Mondays as well. We usually only get to talk for 5 or 10 minutes during my office hours, but in many cases I'm able to help her with something she's struggling with enough to give her a few more days of productivity. I also find out on Friday whether she's done anything since Wednesday, and I find out on Monday whether she's done anything over the weekend.
If your office hours aren't convenient for this, you could try to get your student to stop by at the end of one of your classes each week, or some other convenient meeting time. But it really does help to have short, 5-minute meetings between the weekly hour-long meetings.
Be excited about the project.
Excitement is infectious, and it helps a lot to be excited about the student's project during the meetings. You should express enthusiasm whenever the student accomplishes anything, and you should talk excitedly about potential results that the student might be able to get. (By the way, I'm not suggesting that you fake excitement here. You really should be excited about what the student is doing. If you're not, maybe you should find something more interesting for them to work on.)