I offer to pack him lunches and stuff and he ends up going out with friends anyway, it's very annoying.
Ha, welcome to my world.
I hesitate to offer advice since I'm not a success story in this area myself yet. But. I think you need to straight up ask him what
he thinks the best course of action is. Go over budget numbers, make sure you're on the same page. Then, talk about how to solve particular problems. See if he recognizes that he needs help with motivation to bike. See if he recognizes he has a problem with impulse control when it comes to the PS3. Then ask, 'okay, how could we structure the budget to help you? What could I do to support you?' Ultimately he has to take ownership and responsibility. Maybe he would quite like the idea of a savings jar. You're the household expert on the budget so you can provide him with the best information and advice but there's a big difference between that and feeling like you're at fault when the budget numbers don't come out like they're supposed to. It's not your job to come with a solution, it's his, but you can help.
If a particular solution fails in the heat of the moment (e.g. maybe a waiting period for entertainment purchases or purchases over $100?), you can go back to the drawing board. Right now, you want to make sure that you're dealing with a heat-of-the-moment problem and not a cold-light-of-day problem. That is, you want to make sure that when you discuss budget goals with him that he's not just saying 'yeah yeah yeah' to make the discussion end or because he disagrees with you and doesn't want to argue or because he agrees with you but doesn't want to think about the implications for his behavior. All this time you've been on him to bike maybe he secretly thinks it's silly because he hasn't gotten the 'big picture' of what a difference it would make to the finances. Agree with Mr. Pop that getting him to read ER blogs might help if he hasn't seen the light yet.
If my advice sounds like, 'he's an adult so treat him like one' I don't mean to suggest that you're not doing so now :) I just think it's a simple thing that's worth repeating.