My 16-yo son recently built a computer. I was a little hesitant when he brought this up, as I have no knowledge in this area. Turns out the biggest barrier for him was the budget for parts. With some guidance from a couple of his friends, online tutorials, and NewEgg and Fry’s for the components, he acquired all the parts he needed and one day when I came home from work he asked me for a little help in routing the power cable. That was all I had to do. We plugged it in and it fired-up fine (whew!).
He uses it mainly for his gaming, but I made him tell his old man he would be able to use it for doing homework, too!
I had these visions of having to buy all the little parts and breaking-out a soldering iron, like back in the day. Today it is just a matter of deciding what you want, and as others have said here, carefully assembling things - mainly plug-in components.
You might use a microcontroller, like an Arduino, to do something simple like turning your sprinklers on every day for 15 minutes. You’d need to hook it up to some sort of electrically operated valve that can open and close to let water flow through it. If you wanted to get a bit more clever, you’d want it not to turn on the sprinklers if it had rained during the day. For that, you’d need to connect it to some sort of rain gauge or moisture sensor in the ground, or maybe have it download a web page with your local weather and scan through the page to see how much rain there has been. The logic is fairly simple:
at 0600
if ground is dry
turn sprinkler on
wait 0015
turn sprinkler off
The trick is in learning exactly how to phrase that so it the computer can understand, what sort of sensors and actuators are available, how to connect it all so it works, and how to test it and recognize when you’ve missed something. The Arduino has gotten so popular with hobbyists that there are lots and lots of things that are designed to work with it.
I mounted an Etch-A-Sketch to a board, popped the knobs off it and replaced them with gears, and mounted two stepper motors to turn the gears. The motors connect to something called a motor shield, which connects to the top of an Arduino. The result is that I can control the motors and draw any line on the Etch-A-Sketch that I want (down to the accuracy of one step of either motor).
The results aren’t quite where I’d like them, yet, but it was an interesting project and I learned a lot.
I was actually a little bit clever. The Etch-A-Sketch is held in place with a window latch, so I can just turn the latch, pop one EAS out, and put another one in. The plan was that when (if) i get it to draw something I like I can keep it without too much trouble. And I read somewhere that you can drill a hole in the back, let the powder out, and make the current drawing permanent.
I built about a dozen PCs for family and friends 20 years ago.
Find a junk PC and disassemble it.
The Static Electricity problem is real - there are anti-static mats for just this problem.
In CA Fry’s and a few hundred other stores will sell you:
Case (should have power supply)
Motherboard (this may have on-board video and sound - probably not good enough for gaming.
Processor - this is a 100-pin chip - and very expensive. Be really careful.
Memory latest and greatest may not be worth the cost differential
Video card
Sound card
Drives - SSD or magnetic disk? Just get a DVD burner - they are dirt cheap.
Cables to connect all.
HERE is the biggie: OEM software - since you are the builder, the store will sell you the heavily-discounted software - O/S, Word processor, Languages, etc.
What is important: once you leave the store, they should not sell you the OEM stuff - when you go back, you are just another person wanting new software.
Another cheap software source is the local Community College bookstore - most publishers want to get students hooked on their products - as in MS Office, Photoshop, whatever - enroll for one semester and strip-mine the bookstore.
This. When myoldest was 6 I taught her the basics (snerk) of using and programming a Tandy Color Computer. Earlier today I let my No 2, epileptic (not retarded, but cheated by the educational system) arrange her mother’s cremation. I wanted my daughters capable, not dependent. Regarding them, Wife didn’t, especially No 2.
Just trying to put some real-world reasoning into a little more structured format.
And it can get more elaborate. The sprinkler controller could download a webpage with a weather forecast. Or you could connect it to a barometer. If the webpage says there’s rain in the forecast, or if the barometer is dropping, then don’t turn the sprinklers on that day. You could water half the yard in the mornings and half in the evenings and see which one does better. It’s all about reducing complicated ideas down to very simple steps.
You also have to learn when enough is enough. You can keep adding features forever and never actually have your project do anything.
I meant to comment on this before. Personally, I find C to be much easier that Java, mostly because it’s so much simpler. The book that documents the C language is only about 60 pages. The O’Reilly book “Java in a Nutshell” is over 1,000 pages. Obviously, they’re not directly comparable; whatever libraries you need to use in a C program are going to need their own docs. I like the language to be simple, so I can put more thought into what I’m trying to do with the language.
Similarly, I prefer a procedural language to an object-oriented one. Classes and subclasses make perfect sense in a textbook, when they get to pick examples that are a natural fit for that kind of organization. In the real world, I’ve rarely found it to be so easy.
But it’s been ages since I was a beginner, and I learned the simple, procedural languages first. It could well be different for someone starting out now.
My very first exposure to programming was an intro class where we learned C. Granted it was aimed at 18 year olds, but 18 year olds with zero programming experience. It was very beginner-friendly.
Thanks for simplifying this for me, I am beginning to “get it” a bit. This thread also matched a good opportunity- my father-in-law just purchased a new PC, and still has his old tower, so he is going to give the old tower to my son to experiment with. And adruino does use C/C++. I am thinking that with the old tower being used as a base unit to mess with, and an Adruino kit to get started on the programming side. Frankly, I am not in a position to drop a ton of cash right now on this, so I have to be a bit budget conscious for the time being.
Starting with your father’s existing tower system is a good idea and will keep costs down. Ideally, it will use a standard power supply and motherboard, but even if it doesn’t he can still upgrade it. What some people do is to upgrade individual components at a time. I have friends whose systems have had virtually all of the components replaced at one time or another.
Two things to keep in mind though:
(1) Some towers by large scale manufacturers (Dell, HP, etc) can have proprietary components or shapes that make upgrading difficult. Oddly sized PSUs, a PCI slot that only supports small cards, stuff like that. They also tend to have small, weak power supplies which is something to watch out for.
(2) If the system is fairly old, its potential for upgrading may be pretty limited. An obsolete motherboard may only accept CPUs that have been off the market and thus cost more than they’re worth or may have fairly low RAM expansion limits. You can’t really take a seven year old box and turn it into a latest & greatest system without replacing almost everything. I don’t say this to discourage but to manage expectations.
But this doesn’t mean it’s not worth it, of course. It can definitely be an education to explore how to work with what you’ve got and a crash course in compatibility and how one memory stick ain’t like the next one.
One precaution–if he decides to disassemble it and removes the heat sink from the CPU, he must clean the points of contact between the top of the CPU and the bottom of the heat sink and reapply thermal paste (or a pad.) It is essential that there be good thermal contact between the CPU and heat sink.
I think Darren Garrison was referring to the clamp that locks the CPU in place. My first build, I was unfamiliar with how the clamp slid into position and ruined my board by somehow inadvertently smashing the pins flat in the process. Fortunately the pins these days are on the board itself ($80) and not the CPU ($200+). Or maybe he meant the actual heat sink bracket itself which always felt more annoying to me than risky.
Also, if you’re applying thermal paste until it squishes out in any quantity, you’re probably using too much which is counter-productive. You just want a thin layer to fill any tiny gaps between the CPU and heat sink, not so much that it acts as a barrier between the two.