Tuesday, June 11, 2013

NEWS!!

Okay...I may have been a little too optimistic when I said that my employment this summer wouldn't interfere too greatly with my video schedule. I have probably never been so wrong. I'm not used to working 8 hours a day, every day, so it's going to take me some time to get adjusted to my new schedule. I guess that it shouldn't be much longer than a week to get back into the rhythm of things. I'm still doing some of the things mentioned in my last post, and I do have an interesting project I have been working on in my free time. While I am getting reset, you can still get into contact with me via my email, humanharddrive@gmail.com, if you have any immediate questions, because it's far easier than trying to talk through YouTube.

Now that that is sorted, I have a request of any of my readers who may be artistically inclined. You may have noticed that YouTube has changed how they present channel pages. Since the change, I've felt as though my page is somewhat lacking. Thus I ask those of you blessed with good color sense and a steady hand, if you could create some channel art. I would be very grateful for your contribution. I can't guarantee any sort of reward, but I may be able to find something.

Sunday, April 7, 2013

Future Video Plans

With midterms and the semester coming to an end relatively soon, I think it's time to reveal plans for future videos. Hopefully I should have more time between midterms and finals to put up a few more videos. Then come the summer months where my employment shouldn't interfere with my plans too much.

I've published 15 Arduino tutorials thus far, and I feel that there are only going to be a few more as I feel I've covered everything that can be done with the native device. That being said, I do want to do some more videos exploring some of the interesting things that can be done with shields and extra libraries. I'd also like to explore the Arduino Due, given the time to procure one.

I'm still going to continue on with the AVR-C tutorials, along with Electronics 101 and 201. The Minecraft Redstone tutorials may require some rethinking, but that should continue as well. The "On A Breadboard" videos will continue as soon as I can gain access to some better testing equipment, specifically an oscilloscope and a LLA. I have some other video ideas that I want to put up that don't fit in any specific category, that will appear periodically, as well as some project videos.

Finally I have 2 new series to announce. First is moving to a different architecture microcontroller. I'm going to start doing videos using the ARM Cortex-M4 microcontroller built into the STM32F Discovery board. The second series is something a few people have requested. It's a series based around learning assembly with the Z80 processor. This series will have 2 purposes; one being to introduce assembly to interested programmers, and the second is to cover building an entire system around a microprocessor, rather than a microcontroller.

I hope you all enjoy these new series. Remember that I am always willing to take topic suggestions.

Monday, March 25, 2013

The Importance of Assembly

There's a commonly held belief among programmers: if you want to be a great coder, write something new everyday for a few years. While this may be true, I find that it tends to settle a programmer into a particular language. Doing so, almost closes the mind to what one is actually doing, entering in line after line of code. I feel that it makes a coder lazy. Sure laziness can be a good thing; who knows what the world would be like if someone hadn't invented the methods copy and paste. But laziness can make programs inefficient and heavy. I believe that if developers encouraged more efficient means of coding, computers of today wouldn't need to be anywhere as powerful. The problem with higher level languages is that they use higher level commands, copying and pasting snippits of lower level code that have a general use, and a general efficiency. Most programmers will never know the complexities of a command as simply as print.

I am someone who can program in assembly. Not for any big processors, like x86 or x64, but I know my way around ARM, AVR, and Zilog. Writing a small amount of code completely changes how you look at other projects. In assembly, you have to be cognizant of every line of code, because you want to squeeze every ounce of power out of what you're writing. It encourages writing specific bits of code in specific ways, for specific purposes. Every piece of code is purpose specific. Every problem requires a creative solution. If you want to be a great programmer, learn a little bit of assembly. It goes a long way.

Wednesday, March 20, 2013

Learning from Datasheets

As a computer engineer, one of the most important things to learn is how to read a datasheet for every piece of information it can offer. Everything in a datasheet outlines, quite literally, every detail of its subject. By now you've probably gone through quite a few datasheets for various ICs to pull out some quick information like the pin-out or basic circuit configurations. But there's more information there. Take the 555 chip for example. In its datasheet, not only does it have several basic circuit configurations examining different modes of operation, it also has example values, timing formulas and waveform outputs for each of them. There are also notes detailing what you should be cognizant of, and general suggestions.

The real skill of reading a datasheet is being able to sift through something as dense as a controller datasheet. The sort of thing that details the operation of microcontrollers,  processors, LCD devices and sensors. A lot of information about how to get started with, or how to implement is contained within these documents. Microcontrollers and processors will often have example code, or something close to, specific to various components of the device. LCD controllers will have timing information for how to communicate with the device and what output that will result in. Sensor datasheets will often have formulas for calculating real life units from data, and what will produce certain output.

Datasheets are a powerful tool, but it takes patience to realize their true potential.

Saturday, March 16, 2013

The State of Things So Far

I realize that it has been several months since my last post. I fear that what this blog is going to devolve into is just a series of posts apologizing for not having more to write. So here's a general update. With school, lack of equipment, and general laziness, my posts to the YouTube channel have been some what sporadic. I recently past 60 uploads and over 2,000 subscribers! I hope that over the coming week off, I can upload some more videos and begin chipping away at the list of suggestions I have accumulated. 

One of the great things about having this blog and the YouTube channel is the people that I  come into contact with. Recently I've been in contact with a student studying astrophysics, requesting help for an Arduino controlled light spectrum analyzer; here's hoping that his experiment goes well. I have also been in contact with two missionaries, looking to use microcontrollers to aid in their field work. Helping people is one of the biggest reasons I started my channel and this blog, and it's a great feeling to know that I am actually accomplishing that.

Thanks to all of my subscribers and readers.

Friday, November 2, 2012

So, You Want to be an Engineer

     So, you want to be an engineer. You enjoy building with legos, or Arduinos, or just like taking stuff apart to see how it works. Maybe you like technology or large sums of cash. Maybe you just like the large number of [insert desired partner's gender here] that this field attracts. Then I submit to you this article, that covers what you should do to prepare for going into engineering, or at least a college of engineering.

     The first thing that you should do is get your core engineering classes down pat. Math, math, math, math, math. Everything, no matter what kind of engineering you go into, you're going to be doing math. I'm not saying you have to be an A student, but make sure you understand what you're learning. In college there is going to be a major change, especially in the first year of math, from the concrete to more abstract concepts. You should have taken at least a pre-calculus course, if not an actual calculus course. AP is always a plus. Having that level, puts you in a good place when going off to college. If you do take calculus, move on to a level 2 course,  and have the ability to move on to a level 3 class in college, I suggest you go back and retake the level 2. I took level 2 as a senior in high school, and felt more comfortable, taking it again before moving onto a much harder level 3 class. And there are always other math classes besides calculus that pertain to engineering. I also took a statistics class in high school, and found it to be an extremely useful math, certainly more so than calculus. If you have already taken a calculus course, definitely look to other math classes. Don't stop taking math classes. It's good to keep going until the end of high school, to keep those mental circuits fresh for the adjustment to college classes.

    Next of course is the science. This depends more on what sort of engineering you want to go into. The basics is definitely physics. Just like math, make sure you have an excellent grasp on what is being taught, rather than just learning for the test, and then forgetting everything for the next chapter. Anything beyond a level 1 physics class should be looked at by someone interested in mechanical or civil engineering. If those advanced physics classes go into such things as electricity and magnetism, then an electrical or computer engineer should probably be enrolled in such classes. Chemistry is more of a science that is suited towards chemical and biomedical engineers. Again, with science, it depends more on the field you're interested in. However, if you want to go into mechanical but still want to take a chemistry class, don't let that stop you. Take classes that you have an interest in, not only are you more likely to do better in those classes, but you might find yourself a future major.

     Testing applies on two fronts. One, you should strive to be a good student. Yes, you should go for all A's but, don't fall into the mindset of anything short of that is failure. An F, is failure; never forget that. People who fall into that mindset become stressed out beyond belief and are generally unhappy people. Enjoy taking these classes, and actually learn something. Just because you didn't do well on a test, doesn't necessarily mean that you don't understand what is being taught. There is a difference between a good student, and a bright student. I wasn't a good student, I was a bright student. Homework and studying takes time that could be spent working on a project that is infinitely more interesting, and you're applying things that you've learned. Don't let that be an excuse to just stop caring about your classes, and their work. The goal is to gain an understanding, and from that, do well on tests.
     The second front is standardized testing. This was something I absolutely loathed doing, and I had to do it multiples. It's not fun having to get up in the wee hours, on the weekend, to take a test. No matter how much is sucks to do it, it is required by colleges. The SAT is the standard, the test all colleges accept. Studying for the SAT does do a world of good; getting a tutor is even better. The trick to the SAT is learning its tricks and beating the test. I know that doesn't sound like a half-decent measure of what colleges put stock in, and it isn't. Trying to quantify what it is colleges look for is why the SAT was originally made, and while it isn't perfect, it's one of the only ways we have, besides GPA. However, there is another standardized test that is becoming more and more popular. The ACT, the one I recommend, is definitely more suited towards the engineer's mind set. There is an equal balance of math and writing, there's a science section that tests your ability to read data and make conclusions, but most importantly, it's about an hour and a half shorter than the SAT.

     Choosing a college should come down to 3 things. Number 1, can I afford to go here? If you can't afford it don't go. Having to take out numerous loans that are going to pile up is not something you should be contemplating during your next 4-5 years in college. Number 2, does this offer my major, and have decent facilities in which I may learn? When I applied to college, there were only two colleges on my list that offered my major, and both had the facilities I wanted. Determine your major, which we will discuss shortly, then research the needs that are required by such a major, i.e. equipment, space, and professors. I know it might seem like if the college offers the major, then it must therefore have the requirements. And that's true, however, you might be looking for something a little more. I wanted to do electrical and computer engineering. There are facilities that are required by each, but what I also wanted, was a microfabrication lab, a place where integrated circuits are constructed. Professors are another big thing. Yes, they're qualified to teach the field, but have they spent time working in it? How much experience do they have, and can offer to you? The final thing you should look for, number 3, is what exactly, besides an education, do you want from your college? Do you want a close community? What about a place to party? Or are you looking for some great food? College should be a place of education and higher learning, but it is also an experience. You're spending a lot of money to attend, make sure you get all of what your college has to offer.

     Finally, choose your major. I know that when you enter college you have time to figure out what kind of engineering you're interested in, but it's not always easy as a freshman engineer. You're stuck in a lot of very broad classes, that are there to get you ready for your future in engineering. The problem is that it doesn't expose you to what various majors offer. Now, your college may offer classes that do introduce you to the different forms of engineering that it has to offer, but even that can be a little shallow. Thus you have a couple choices. One thing you can do is actively seek out professors of engineering. See if you can sit in on a few classes, talk to the professor and see what work they're currently doing. Another option you have is, while you're still in high school, talk to some of your teachers. They've probably had other jobs outside of teaching, maybe in research or employed in their field of study. Maybe some of your friend's parents are engineers and can talk to you, show you some of what is they do. But, probably the best way to choose is look at what you're doing now. What interests do you have and would like to explore further? Remember that you're going to have to study in your field of choice for several years in college, so make it something you can enjoy;  because, that which you enjoy, is never work.

Friday, October 26, 2012

Need Help with a Project?

     Recently, I've been receiving more requests separate from ideas for future videos. You guys have been asking for input on some the projects that you're working on. I enjoy getting this feedback from you and being able to help; that's why I started doing this. Thus, in order to increase the amount I can help you do, I've set up an email where you can contact me if you want help with something you're working on. I hope that this can be more expedient than posting comments on videos, or sending me YouTube messages, as I, and probably you, check your email more than anything else.

Feel free to now contact me at humanharddrive@gmail.com.