🔒 Locked
Microcontrollers and Such
Advertisement
Original Post
I recently became interested in microprocessors, microcontrollers, and general electronics. What is the best way to start learning not only how to understand all the parts, but to actually work with some? I've seen quite a few beginner kits online, but I don't want a dumbed-down kit geared towards kids under 13. I want an electronics kit that will give me the parts and instruction on how to actually start learning microcontrollers. Part of my goal is (probably years from now after I finish my CS degree) to figure out how to reverse engineer hardware such as old GameBoys and N64's. I know this borders illegal, but I'm not doing it so people can rip ROMs and make emulators, I want to be able to do cool things with the hardware. Kind of how people got Doom running on iPods. Another part of my goal is simply to take my programming knowledge and create hardware that I can play with. Maybe a robot that follows a light source or moving object. Maybe just a robot that's meant to use AI to navigate terrain. Of course I'm going to start with "make a light blink" followed by "make this speaker beep at me." I'm not expecting tremendously remarkable things quickly, but I have nowhere to start right now. I'd prefer a cheaper solution, however I don't want to sacrifice quality for price. I'm willing to wait until my finances are better if necessary. Any suggestions? Anyone here try any beginner kits and have opinions? Thanks for reading this and/or responding.
Im also interested in learning about hardware and electronics. Ive heard of people making handheld versions of the gamecube and the xbox and using a empty glass bottle as a computer case. I would love to be able to do things like that.
Might I suggest Electrical or Computer Engineering as opposed to CS if it's the kind of stuff that interests you ?
Quote:
Original post by jfclavette
Might I suggest Electrical or Computer Engineering as opposed to CS if it's the kind of stuff that interests you ?
It interests me, but only as a hobby. I really want to be a programmer (hopefully in game development, but other programming is fine too) and a part time teacher at a community college or something. I wouldn't like working with hardware all the time.
Quote:
Original post by ForeverNoobie
Im also interested in learning about hardware and electronics. Ive heard of people making handheld versions of the gamecube and the xbox and using a empty glass bottle as a computer case. I would love to be able to do things like that.
There's actually a book that shows how to do stuff like that. Luckily it's mostly just moving around parts and maybe adding a bit of length to wires and such.
I'm interested in figuring out how the systems actually work so I can make things (games and accessory-type hardware) for them. I always had a humorous idea of a funny 8-bit DDR running on NES. :)
Quote:
Original post by NickGravelyn Quote:
Original post by jfclavette
Might I suggest Electrical or Computer Engineering as opposed to CS if it's the kind of stuff that interests you ?
It interests me, but only as a hobby. I really want to be a programmer (hopefully in game development, but other programming is fine too) and a part time teacher at a community college or something. I wouldn't like working with hardware all the time.
Computer Engineering does involve programming, but it will vary from school to school. Where I go, you can take it through the electrical dept. or the cise dept., allowing a choice of hardware or software emphasis.
You don"t have to take it as a major though, consider taking an electrical engineering minor. The only thing you might not like about it is that the labs tend to be very time consuming, making it a bit tough to take if you already have a heavy class load.
Quote:
Original post by HelplessFool Quote:
Original post by NickGravelyn Quote:
Original post by jfclavette
Might I suggest Electrical or Computer Engineering as opposed to CS if it's the kind of stuff that interests you ?
It interests me, but only as a hobby. I really want to be a programmer (hopefully in game development, but other programming is fine too) and a part time teacher at a community college or something. I wouldn't like working with hardware all the time.
Computer Engineering does involve programming, but it will vary from school to school. Where I go, you can take it through the electrical dept. or the cise dept., allowing a choice of hardware or software emphasis.
You don"t have to take it as a major though, consider taking an electrical engineering minor. The only thing you might not like about it is that the labs tend to be very time consuming, making it a bit tough to take if you already have a heavy class load.
I may consider it as a minor, but I definitely like the stuff my soon-to-be school offers for CS degrees. I'd get to study compiler design, AI, graphics programming, a bunch of math classes, computer architecture, and other fun things. I'm not sure if they have computer engineering, but perhaps the electronic engineering.
Personally, when I decided to major in EE over CS, I never looked back. It's likely that since you're just starting out, you aren't fully aware of the scope of EE. The way I saw it at the time, it was something I was curious about, I knew cool things could be done with it, but it was still a big unknown -- so I jumped on it and had a lot of fun learning all about an entirely new field to me.
That said, using 8-bit MCUs is fairly trivial if you have some basic knowledge of electronic circuits. A lot of MCUs, particularly those with on-board flash ROM and internal RAM are very self contained and thus easy to work with. The biggest problem for you will likely be finding a way to program the flash memory -- device programmers are quite expensive but you can also build your own. A good MCU to start with is the Atmel AT89C2051 or AT89C4051. These are small 8051-based microcontrollers with no external address space. The bare minimum to get them up and running is to give them the 5V they need, hook up a crystal oscillator with two 27pF caps to ground, and toggle the reset pin.
To generate the 5V voltage, you'll probably want a 7805 linear voltage regulator, which accepts input voltages >= 7V and spits out a constant 5V. Put a 0.1uF cap from the input terminal to ground and a 1-10uF cap from the output (5V) terminal to ground. You can use a 9V battery as input, or a 14-20V DC input from a wall transformer (AC->DC converter.)
I don't know what to recommend as far as beginners' texts go. A lot of the hobbyist electronics books you'll find at book stores are pretty bad, IMHO.
I actually put together a small video game system using a Z80 microprocessor, external ROM and RAM, and an FPGA for video output. You can find it at http://www.trzy.org -- it's called the BartStation.
That said, using 8-bit MCUs is fairly trivial if you have some basic knowledge of electronic circuits. A lot of MCUs, particularly those with on-board flash ROM and internal RAM are very self contained and thus easy to work with. The biggest problem for you will likely be finding a way to program the flash memory -- device programmers are quite expensive but you can also build your own. A good MCU to start with is the Atmel AT89C2051 or AT89C4051. These are small 8051-based microcontrollers with no external address space. The bare minimum to get them up and running is to give them the 5V they need, hook up a crystal oscillator with two 27pF caps to ground, and toggle the reset pin.
To generate the 5V voltage, you'll probably want a 7805 linear voltage regulator, which accepts input voltages >= 7V and spits out a constant 5V. Put a 0.1uF cap from the input terminal to ground and a 1-10uF cap from the output (5V) terminal to ground. You can use a 9V battery as input, or a 14-20V DC input from a wall transformer (AC->DC converter.)
I don't know what to recommend as far as beginners' texts go. A lot of the hobbyist electronics books you'll find at book stores are pretty bad, IMHO.
I actually put together a small video game system using a Z80 microprocessor, external ROM and RAM, and an FPGA for video output. You can find it at http://www.trzy.org -- it's called the BartStation.
From a quick search of schools around hear, computer engineering doesn't exist in my part of the country :). Electrical engineering is at at least one school, but the curriculum deals only with hardware spare for two classes on programming. I'm way more of a software guy so I think I'll stick with computer science.
I might try out on of the beginner kits from online sometime and see how well that works out. I just want to see how to put stuff together and make things.
I might try out on of the beginner kits from online sometime and see how well that works out. I just want to see how to put stuff together and make things.
I'm not sure how good you are at programming. But I would recommend a Basic Stamp. I have one here at work at it is great for very rapid development. It would get you used to a lot of ideas of microcontrollers. It not exactly cheap but not expensive, but the knowledge base behind it is huge.
The reason I commented about your programming level is because I believe that all you need to become a good programmer is good ideas and a lot of practice. Where as electricity has no IDE, no drop down menus, no auto-complete, and therefore requires some extensive training. I started out college as ME and failed all my classes (the only class I passed was Drafting because I tested out of it). Haha, that’s not the point, the point is I am going to re-enroll into EE because it’s new and interesting to me, everything else I do everyday for fun (as far as ME and CS type stuff).
The reason I commented about your programming level is because I believe that all you need to become a good programmer is good ideas and a lot of practice. Where as electricity has no IDE, no drop down menus, no auto-complete, and therefore requires some extensive training. I started out college as ME and failed all my classes (the only class I passed was Drafting because I tested out of it). Haha, that’s not the point, the point is I am going to re-enroll into EE because it’s new and interesting to me, everything else I do everyday for fun (as far as ME and CS type stuff).
Quote:
Original post by NickGravelyn
From a quick search of schools around hear, computer engineering doesn't exist in my part of the country :). Electrical engineering is at at least one school, but the curriculum deals only with hardware spare for two classes on programming.
What schools are you looking at? Any respectable university in the nation will have an EE program or at least ECE (electrical and computer engineering.) UMichigan Ann Arbor is among the top programs in the nation. You're also close to great schools in Illinois, Wisconsin, Ohio, Indiana, Pennsylvania, New York, etc.
Quote:
I'm way more of a software guy so I think I'll stick with computer science.
Suit yourself. I was the same way when I started. The way I see it, though, is you realistically have one shot at college and why not gain as much as you can from it by learning something entirely new and interesting.
Quote:
Original post by honayboyz
The reason I commented about your programming level is because I believe that all you need to become a good programmer is good ideas and a lot of practice. Where as electricity has no IDE, no drop down menus, no auto-complete, and therefore requires some extensive training.
I think that's an exaggeration. EE is about theory and ideas and not about technical training. All you need to be a good EE is to have good ideas, practice, and take the time to understand how and why things work so as to better apply the theory.
As an EE, you'll be using IDEs, too, if you're doing any development in a hardware description language (VHDL, Verilog, ABEL, etc.) Simulators are often used extensively. You might find yourself writing a software-level emulator for a system you designed so that you can test out programs without physically burning ROMs. And as a hobbyist, you'll be doing a lot of design with pencil and paper, perhaps with some schematics and simple SPICE verification if necessary.
The downside to the engineering fields is that there is a physical barrier to implementing things. You'll have to learn where to get parts, what kinds of parts are available, and how to put things together. But all of that is fairly easy to pick up, especially if you're motivated, and is really no different than when a programmer has to learn the tools of the trade. Electronic parts are very, very cheap (but not as cheap as free software. ;)) It takes a lot of creativity, but some amazing things can be accomplished without a big budget or any sort of manufacturing equipment.
Quote:
Original post by trzy
What schools are you looking at? Any respectable university in the nation will have an EE program or at least ECE (electrical and computer engineering.)
Grand Valley State University, as far as I saw on their website, did not feature any computer engineering majors.
Quote:
Original post by trzy
Suit yourself. I was the same way when I started. The way I see it, though, is you realistically have one shot at college and why not gain as much as you can from it by learning something entirely new and interesting.
Why waste it learning something new that I'm not interested in as a career? And besides, I can always return to college to get a second degree or take a few electives in electronic engineering. You don't have just one shot at college. You can go back as much as you want (and can depending on finances).
I'm all for learning new things, but I know that I do not want to work on hardware in any way (beyond worrying about software compatibility) in my career. I want to code artificial intelligence for games or at least just be making applications for computers. Programming is and always has been my thing. The hardware is simply a hobby learning experience.
make sure you are looking in the engineering section of their webpage, and not their computer/science section. Sort of annoying how they sometimes hide things like that.
I'm thinking about switching to EE or something at UNB, as sadly UPEI doesn't offer anything other than just a few classes on it. I've been leaning away from games and more towards wanting to work with designing robots.
I'm thinking about switching to EE or something at UNB, as sadly UPEI doesn't offer anything other than just a few classes on it. I've been leaning away from games and more towards wanting to work with designing robots.
Quote:
Original post by NickGravelyn Quote:
Original post by trzy
What schools are you looking at? Any respectable university in the nation will have an EE program or at least ECE (electrical and computer engineering.)
Grand Valley State University, as far as I saw on their website, did not feature any computer engineering majors.
look here for one.
Quote:
Quote:
Original post by trzy
Suit yourself. I was the same way when I started. The way I see it, though, is you realistically have one shot at college and why not gain as much as you can from it by learning something entirely new and interesting.
Why waste it learning something new that I'm not interested in as a career?
...
I'm all for learning new things, but I know that I do not want to work on hardware in any way (beyond worrying about software compatibility) in my career.
the point that a lot of people are trying to make, but not quite clearly saying, is that you CAN'T know what degree you will truly want until you have tried it. how do you know that you wouldn't like hardware engineering if you have absolutely no experience with it (as the original question of the thread suggests)? you can't, which is why many people switch majors after they start school. I know a guy who went from computer engineering to an english/jap dual major because he didn't like things like discrete structures.
i can't speak for all EE courses in the nation, but over here you actually make something in the labs that DOES something, even if its just a toy and not useful. making stuff has a very rewarding feeling, totally different from when you solve most of the problems you will work on in a CS degree. thats just my opinion though.
Quote:The funny thing is, someone has already beat you to the punch. They used the NES on a chip to make a DDR pad that you plug directly into the TV, kind of like the atari joysticks avalible at walmarts.
Original post by NickGravelyn
I'm interested in figuring out how the systems actually work so I can make things (games and accessory-type hardware) for them. I always had a humorous idea of a funny 8-bit DDR running on NES. :)
If only I can remember the link to that "thing".
Quote:
Original post by HelplessFool Quote:
Original post by NickGravelyn Quote:
Original post by trzy
What schools are you looking at? Any respectable university in the nation will have an EE program or at least ECE (electrical and computer engineering.)
Grand Valley State University, as far as I saw on their website, did not feature any computer engineering majors.
look here for one.
Indeed, they hid it with the engineering department. Thanks for the link. I'll look into it.
Quote:
Original post by HelplessFool
the point that a lot of people are trying to make, but not quite clearly saying, is that you CAN'T know what degree you will truly want until you have tried it. how do you know that you wouldn't like hardware engineering if you have absolutely no experience with it (as the original question of the thread suggests)? you can't, which is why many people switch majors after they start school. I know a guy who went from computer engineering to an english/jap dual major because he didn't like things like discrete structures.
i can't speak for all EE courses in the nation, but over here you actually make something in the labs that DOES something, even if its just a toy and not useful. making stuff has a very rewarding feeling, totally different from when you solve most of the problems you will work on in a CS degree. thats just my opinion though.
That does make sense. If I dislike CS I'll switch, but I'm not going to go into EE for no real reason. I have experience programming and working on software and I enjoy it. I feel rewarded after figuring out a tough problem. However, with no experience in EE, I feel justified into not wanting to pursue it because I may or may not like it. My reaction was mainly to the statement 'Suit yourself.' as if he knew more about what degree I should pursue better than I do.
Quote:
Original post by Binomine
The funny thing is, someone has already beat you to the punch. They used the NES on a chip to make a DDR pad that you plug directly into the TV, kind of like the atari joysticks avalible at walmarts.
But I'm talking a DDR pad and game for the NES system, not some knock off that plugs right into a TV. Also, I figured someone would've beat me to it. I just think it would be fun to make one myself. The pad shouldn't be terribly hard to construct compared to actually programming the game.
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement