Sunday, February 16, 2014

Why Can't I Build A Brain by Korho

I came across a forum on letsmakerobots.com that put the title "Why Can't I build a Brain?" in my head. The conversation was initiated by createmc who wants to know how he would go about building a microcontroller from scratch. I have asked the same question, but the answer is ultimately spelled out in this forum as clear as a bell by Geir Anderson.
THE BRAINS OF A COMPUTER Microcontrollers are the brains of the robot. It is where instructions are received (input) and sent out (output) to perform any function. The Hello World program for the Arduino is called Blink. Blink literally sends input to tell the microcontroller to blink a LED. It is a basic test of input/output functions. Can we input a sketch that will get the LED to turn on for so many seconds and off for so many seconds. It is a good test of whether or not the microcontroller is doing the job it is designed to do. It is designed to receive input (a sketch or program) that results in output ( a solitary function or series of functions). That is why the microcontroller is defined as the brains of the computer.
BRAIN DEAD So, lets say that you find all the hardware to build your microcontroller. Bravo to you! But it probably will not work. It will not do the job that microcontrollers are designed to do. Basically, it is brain dead. Why? There is no language center of the brain. It would lack an instruction set in the hardware. What it comes down to is that the person building this brain from scratch would have to give it a language to communicate in. It would even need a language beneath the language, called assembly. Assembly language allows the device to communicate with machine code. Machine code allows the device to do an ALU. An ALU is the arithmetic and logic unit which is essential in computer and even the most basic microprocessors in order to maintain timers. I am not going to discuss timers, but trust me, it is necessary to the microprocessor. Long story short, that LED that was supposed to blind for x seconds cannot do so without the assembly language that turns on the counter to count those seconds. That is over simplifying, but that is what I do. I can over simplify because I am NOT an expert. Assembly language is defined as a low level language. So, if assembly is a low level programming language, is there a high level programming language? Of course there is. C programming language was considered as a high level programming language. And that is another article in itself. This article was focused on why a homemade microcontroller would not work. The answer is that without a low level language there cannot be any high level functions performed when you attempt to submit input.
RECOGNITION I had fun reading the forum on letsbuildarobot.com, but in researching the information for this article I was able to understand more about microprocessors. I am taking the microcontroller class with Riverside Robotics Society. Regardless, I find that I frequently have questions and like createmc I somehow thought it would be best to build a homemade microcontroller from scratch. It's about as simple a doing brain surgery. I would like to commend createmc for presenting this to the forum (that took guts) and I would like to know if he attempted to resolve the problem and how it turned out if so. I have to also admire the level of knowledge presented by Geir Anderson, Oddbot, Dan M and rogue. You all provided a wealth of insight that a student can follow. It was a very intellectual conversation, guys. Well done! I invite you guys to read this article and comment. I also invite anyone who found my article useful to read the forum where I got the idea for this paper from. http://letsmakerobots.com/node/29075 I have been a member of Riverside Robotics Society since August 2013. I was elected media officer in September 2013 and Secretary in January 2014. The club is a great place to talk about robots, learn to build robots, and socialize with fellow robot builders. Check it out if you can. Here is a link: http://www.meetup.com/The-Riverside-Robotics-Society/

2 comments:

  1. Korho, thanks for another great blog article!

    ReplyDelete
  2. I hope that my research yielded the correct information. Correct anything that I may have gotten wrong, please.

    ReplyDelete