Version 27

    element14's The Ben Heck Show

    Join the Ben Heck team every week for amazing hacks! Watch them build and mod community-inspired projects using electronics!

    Back to The Ben Heck Show homepage

    Connect with TBHS
    Featured Bonus Materials
    See All Episodes

     

     

    We're Giving Two Ben Heck Prototypes to someone that tells us what they are doing to inspire STEM Learning!

     

     

    In the comments below:  Let us know what you've done or will do to inspire STEM Learning!

     

    We're giving away two Hex Game prototypes for anyone that is able to let us know how they would inspire STEM learning using numbers.

     

    If you have an interesting or unique way of generating interest in learning about STEM (Science, Technology, Engineering, Math) let us know.

     

    We want to hear answers that inspire others to want to learn or excite curiosity in STEM.

     

    Feel free to discuss a STEM project you've worked on or are working on, a unique perspective on looking at STEM, what you find fascinating about STEM, a "eureka" moment that made you interested in STEM.

     

    You can be creative with how you choose to answer this. 

     

    For instance, you could quantify in numbers how something inspired interest or excited curiosity in STEM for others.

     

    Or, you could share your perspective on how you love patterns in numbers, oddities about numbers, or how you experience higher level understanding through numbers.

     

    You could talk about how you used technology to inspire interest in something related to STEM. 

     

    Or you can talk about a build you made or are planning to make in order to educate others about anything that is related to STEM.

     

    Click Here for Details

     

    {gallery} My Gallery Title

     

     

     

    In an upcoming episode of the Ben Heck Show, Atari Dragster World Record, Ben will work on a RAM analyzer that makes decisions to see if the longest standing world record for a video game is legit.  Its fitting that it will also be on Ben's most cherished piece of gaming platform (we don't know this for sure but he's always talking about it), The Atari 2600.

     

    In that episode, you guessed it, you will see Ben using The Hex Game Prototype to convert between hexadecimal and decimal while analyzing a data dump!

     

    In an Upcoming Episode Ben Will Let Us Know if the Longest Standing Video Game Record is Legit:

     

     

     

    In an upcoming episode Ben applies logic and technology to make sense numbers. He'll work on a RAM Analyzer that uses an MCU to make decisions on how best to play the game. He'll need to do some math first and take out the Hex Game to make some hexidecimal to decimal conversions!

     

    With the Hex Game you can easily convert between decimal, hexadecimal, and binary.  Its intended to be sold as a kit that can also be used to teach you how to solder.  The term Hex, while technically the number 6 as the term is used in reference to a hex wrench, is almost always used in reference to the number 6 with anything coding related because it comes up so often that its come to be used as shorthand for hexadecimal, as in the hex code you use to represent color with HTML.

     

    While numbers exist as a construct that uses objective symbols to express exact quantity, our subjective understanding of them forces us to project meaning onto them.  The number 10, the same number of digits on our hands, is the basis for the decimal number system which is how we typically think of numbers.  Decimal, is a base 10 number system, but you could alternately use any base to symbolically represent numbers. Base 2, or binary, is used with computers as 1s and 0s as the on or off state is an approximation of the on or off state of switches and transistors. When you are talking to your machine, you'll be able to process data a lot more easily if you convert those 1s and 0s to a format you can quickly identify.

     

    In an upcoming episode of the Ben Heck Show, Atari Dragster World Record, Ben will work on a RAM analyzer that makes decisions to see if the longest standing world record for a video game is legit.  Its fitting that it will also be on Ben's most cherished piece of gaming platform (we don't know this for sure but he's always talking about it), The Atari 2600.

     

     

    The Making of the Hex Game

     

    Earlier this year The Ben Heck team began working on three long-term builds with the idea of completing a polished prototype that they could potentially bring to market. The three builds they worked on were a Super Glue Gun (Ben's favorite hand tool), a Logic Board Game, and a Mini Pinball Kit which you chose as the final build on the element14 community via a poll.  The Logic Board Game was intended to be a STEM game so they sought out advice from JT, someone with 20 plus years of experience in the gaming industry, who warned them that making an educational game that was marketable was the hardest type of game to make because you had to not only make it educational, you had to make it fun. As it turned out, his advice was prescient, of the three long term builds they set out to work on at the beginning of the year, the Logic Board Game made the least progress and went through the most iterations.

     

    Logic Gate Board Game Finale

     

    Because the team was struggling with their logic board game project they brought in Hari Kalyanaraman, a product specialist from element14, to help them assess the current state of the project and analyze whether it was worth taking to completion. Hari was able to tell them if the number they had in mind for the game matched what market could support. While the the game was originally mechanical, their decision to include a microcontroller and a screen added heavily to the production costs. They were also setting themselves to compete with games on smart phones and tablets.  After his visit, they decided to conclude work on their project, they didn't go with their original idea and it seemed like every time they solved one problem they came up with two new problems.

     

    Building a Hex Game Prototype

    Their aborted attempt at a logic board game planted the seed for their next big idea around a STEM game, the Hex Game.  The concept is deceptively simple, but incredibly useful. The most exciting part of it was that it could easily be made into a kit that could be used to teach you solder and learn binary or hexadecimal arithmetic. Even while working on the prototype, its already proven to be a useful learning tool, as Felix has used it as an opportunity to coach Karen and Max on their soldering technique.  The most useful STEM related application for the Hex Game is how it challenges the way you think about numbers.  Remember, for an educational game to marketable, it not only needs to be challenging, it also needs to be fun.

     

    Decimal, Binary, and Hexadecimal

     

     

     

     

    {tabbedtable} Tab LabelTab Content
    Decimal

    Decimal


    A number system is nothing more than a way to represent numbers. The way most people think about numbers is through the decimal system which uses 10 digits (0,1,2,3,4,5,6,7,8,9).  After 9 the counter resets so to speak and you have the number 10, so on so forth.  This way of thinking about numbers is easy to understand.  After all we have 10 digits on both of our hands and if we were to count something by number it’s a lot easier for us to think about thinks in terms of base 10.  Working in other base systems is not that much different than working in base 10 and an understanding of binary and hexadecimal is fundamental to appreciating how computers and programming works.

     

    The total number of allowable symbols in a number system, including 0, is the radix or base number system.  The decimal number system is one such number system that is based on ten digits going from 0 through 9.  This is the way most people think about numbers, we can use our 10 digits to count, so its easy for us to think about numbers in a way that allows us to use each one of our fingers to count. Working in other base systems is not that much different than working in base 10 and an understanding of binary and hexadecimal is a necessary to understanding how digital electronics work.

     

     

     

     

    Binary

    Binary, The Language of Computers

     

    One of the primitive data types in computers is called the byte.  A byte is equal to 8 bits. A bit is a single binary digit so an 8 bit binary number might could be: 0 1 0 1 0 1 0 1.  Using only two digits, 0 and 1, a byte with its eight bits can actually represent 2^8 or 256 bit patterns.

     

    Mathematically, n bits yields 2^n patterns so 8 Bits are in a Byte which gives you 256 patterns.

     

    Binary/Decimal Chart

     

    Bit #109876543210
    Power2^102^92^82^72^62^52^42^32^22^12^0
    Decimal Bit Value10245122561286432168421

     

     

    An 8-bit CPU allows you to work with 256 bit patterns of data or .  Larger collection of bits are called words: typically 16, 32, or 64.  A 16 bit word contains 2 bytes, a 32 bit word contains 4 bytes, and a 64 bit word contains 8 bytes.

     

    Most people have spent so much time around computers then, or owned an iPod or a Smartphone, that they take for granted that the following terms are just ways of representing a large number of 1s and 0s:

     

     

    Unit
    Power
    Storage
    Bit2^1One Binary Digit
    Nibble2^24 Bits
    Byte2^38 Bits
    Word2^4/2^5/2^616/32/64 Bits
    Kilobyte (KB)2^101024 Bytes
    Megabytes (MB)2^201024 KB
    Gigabytes (GB)2^301024 MB
    Terabyte (TB)2^401024 GB
    Petabyte (PB)2^501024 TB
    Hexadecimal

    Why Use Hexadecimal?

     

    Of course base 2 (binary) and base 10 (decimal) aren't the only number systems you can use to represent numbers, you can find a name for almost any base system. If you are dealing with anything STEM related binary and Hexadecimal are commonly used and worth learning about.

     

    Hexadecimal notation refers to a number system that uses 16 digits, 0-9 plus the letters A-F, to symbolically represent numbers. Its use throughout the web and computer systems to indicate values.  For example, the way you would represent colors using HTML is through hexadecimal notation.

     

    The hex code for green is #008000 but you could create different shades of green using a different combination of the hexadecimal values such as #00FF00 for lime, #228B22 for forest green, and #808000 for olive green.  Using decimal code these numbers would be represented as rgb you would have lime as rgb (0.255.0), forest green as rgb (34, 139, 34), and olive as rgb(128,128,0).  Its easy to see from this example that its a lot easier to interpret the information used to represent color using 16 digits as opposed to only 10.

     

    Hexadecimal is commonly used by programmers to describe locations in memory because it can represent every byte (such as eight bits) as two consecutive hexadecimal digits as opposed to the eight digits that would be required by binary numbers and the three digits that would be required with decimal numbers.

     

    Its much easier to read than binary and not much more difficult than decimal. Converting between hexadecimal and binary is also easy after a little practice as all that is necessary to convert a byte value from hexadecimal to binary is to translate each individual hexadecimal digit into its four-bit binary equivalent.

     

    Hexadecimal numbers are indicated by the addition of an identifier such as the 0x prefix which shows up in a lot of UNIX and C-based programming language like Arduino. There are a lot of prefixes and suffixes that can be used such as the # prefix that is used in the HTML color example, and the "h" suffix that is used for assembly.



     

     

    Early Computers Were Heavy Calculators

     

    Before transistors revolutionized computing, computers were room-sized machines built with vacuums and relays. While the technology has evolved, computers were still using the came concepts we use today, over a half century ago. They carried out instructions and stored numbers as "bits" (binary digits) in structures known as registers.  Your basic handheld calculator blows those machines away.  Those registers have since shrunk to the something you would need an electron microscope to see.

     

    The teletype, for instance, used a seven-bit code that we now call ASCII to send alphanumeric data over wires. This is essentially the same bit code, or an expansion on it with something like unicode, that is still used to store data on a PC.  Whereas the ASCII code 7 use to be used to ring a real bell in a distant station, it now makes a beep on your computer's speakers.

     

     

    {tabbedtable} Tab LabelTab Content
    Z1

     

    Konrad Zuse built the first electro-mechanical binary programmable computer, the Z1, in his parent's living room between 1936 and 1938. It weighed around 2200 lbs, had 20,000 parts, a 22-bit floating value adder and subtracter, some control logic for multiplication (through repeated additions) and division (through repeated subtraction), and 64-word floating memory where word of memory could be written and read by the control unit.

     

    Programs were stored by means of 8-bit punch tape and a punch reader, the control unit supervised the machine and execution of instruction, the arithmetic unit (had two registers - R1, R2), and all internal operation was done through addition and subtraction.

     

     

    The memory consisted of 64 words, each containing 22 bits and formed from 3 blocks. The first block contained 64 words for exponents and signs (8 bits per word) while the other two blocks contained 32 words for the mantissa (14 bits per word). The selection unit interpreted the address for memory and was managed by the control unit.

     

     

    The input device was a keyboard that took numbers in decimal form with an exponent which the machine converted to binary normalized floating point representation and transferred to memory. The output device converted the binary floating point number in Register 1 into a decimal number with an exponent and displayed it on a annunciator.

     

    The Z1 wasn't reliable and it was slow but its important none the less because it was all binary. Zuse was unsatisfied with the reliability of the binary switching metal sheets in the Z1 so he enlisted the help of a friend, Helmut Schreyer, a telecommunications specialist with a lot of experience with relays and switching schemes.

     

    His second computer, Z2, was considered the first reliable model.  Konrad managed to find 800 old relays from the phone company with the help of his friends.  For the Z2, the arithmetic and control unit was made by relays but kept mechanical memory of the Z1.

     

     

     

    In 1940 the Z2 helped Zuse obtain partial funding for the Z3 which he had begun to build in 1939.  It was ready in the Spring of 1941 and was presented to Scientists in Berlin in May of that year. The Z3 was built completely out of relays (600 for the arithmetic unit, 1400 for the memory, and 400 for the control unit.  It was similar to the Z1 and Z2 in almost all other aspects. Between 1942 and 1943 Korad Zuse designed, for engineering purposes, the first high-level programming language to be designed for computers.

    ENIAC and ABC

     

    In 1942, John Astanasoff and his assistant Clifford E Berry built and designed the first electronic computer when they completed their work on the Atanasoff-Berry Computer (ABC).  This was the first computer to use capacitors for storage, as in current RAM, and it was capable of performing 30 simultaneous operations. Atanasoff was a professor of Mathematics and Physics whose work required a great deal of mathematical calculation. Later, as a professor at Iowa State, he'd publish proposals for a a computing machine that would be a solution of large systems of linear algebraic equations.  As an electrical engineer, he soon turned to electronics as a solution to problems of accuracy and speed in performing scientific calculations.

     

     

    The four ideas he proposed for the machine were that it would use electricity and electronics as the medium for the computer, he would use base-two numbers for computing, he would use condensers for memory and a regenerative or "jogging" process to avoid lapses that might be caused by leakage of power, and would compute by direct logical action and not be enumeration (counting) as used in the existing calculator devices. Astanasoff hired Clifford Berry, after Iowa State approved a grant for $650, and the two began constructing a prototype for the world's first electronic digital computer.

     

     

    In 1946, The ENIAC, the Electrical Numerical Integrator and Calculator was built by John P. Eckert, John W. Mauchly, and their associates at the Moore School of Electrical Engineering at the University of Pennsylvania.  It was done for the military as their was a need for code-breaking as well as systems to calculate weapons trajectory and other military functions. It used approximately 18,000 vacuum tubes, occupied 1800 square feet, and consumed 180,000 watts of electrical power.  Punched cards served as the input and output while registers served as address and as quick-access read/write storage. The ENIAC needed to be rewired and switched for each program to be run as executable instructions were created via specified wired and switches that controlled the flow of computations through the machine.

    The UNIVAC

    In 1945, the mathematician John von Neumann demonstrated that it was possible for a computer to have a simple, fixed physical structure and also execute any kind of computation by means of a proper programmed control without changes in hardware.  What this means is you could change programs without having to rewire the system.  The first commercially available computers, a group that included EDVAC and UNIVAC, were the first generation to take advantage of this when they began appearing in 1947.

     

     

    For the first time, these computers included random access memory (RAM) for storing parts of the program and the data that is needed quickly. These machines were typically programmed using machine language.  The UNIVAC, Universal Automatic Computer)  was the first true general-purpose computer designed for both alphabetical and numerical uses.

     

     

     

    Transistors Change Everything

     

    The revolution in electronics that made home computing possible came when of integrated circuit companies such as Motorola, Rockwell, and Zilog, started mass producing 8-bit microprocessors in the early 70s.  The Zilog Z-80 chip was used to make the Tandy (Radio Shack) an already built kit that did not require you to do your own soldering. The Z-80 chip was also used in the Sega Master System when it was released.  The MOS Technology 6502 chip found itself in variations of the basic design in the Atari 2600, Atari 8-bit family, Apple II, Nintendo Entertainment System, and the Commodore 64.

     

    The reason computers use binary is rooted in the fact that electronic circuits only have 2 states, on and off. Because a computer is made of electronic circuitry, the binary system is a logical choice for sending, receiving, and computing information. The binary system is less cumbersome for computers to use than the 10 digit decimal system. Almost every computer built since the 1950s uses binary. Using binary simplifies computing tasks, making it easier to store and manipulate numbers, since there are only two possibilities, 0 and 1, instead of 10. It allows a simple device such as a switch or a transistor with two distinct states, on and off, to become a number storage unit or a calculator. It is easier and less expensive for computers to deal in binary numbers as opposed to decimal numbers. To understand how binary became the logical choice for storing, transmitting, and manipulating information for computing devices let's consider that the circuitry that makes up the machine.

     

    The brain of the computer is the computer's processor or CPU.  It's made up of billion transistors, which as mentioned have only two states, on and off. The transistor is a tiny switch that gets activated by electronic signals so it makes sense to use two digits, 1 and 0 to reflect the on and off states of a transistor. When we program a computer we are giving the computer a set of instructions.  Machine code or machine language is a set of instructions executed directly to the computer's central processing unit (CPU).  Numerical machine code is the lowest-level representation of compiled or assembled computer program. While it's possible to write programs directly in machine code, it would be extremely difficult to manage individual bits and to manually calculate numerical addresses and constants. Exceptions would be low level debugging, program patching, and assembly disassembly. The programs that are commonly used today are written in higher-level languages or assembly language. The source code is translated to executable machine code through a translator such as a compiler.  The exception would be interpreted programs where the interpreter itself could be seen as an executor or processor, performing the instructions of machine code, usually directly from executable machine code.

     

     

     

    Modern Bits: 1s and 0s Everywhere

     

     

     

     

    {tabbedtable} Tab LabelTab Content
    Modern Computers

     

    32 bit systems utilize data in 32 bit pieces while 64 bit systems utilize data in 64 bit pieces. Generally, the more data that can be processed at once, the faster your system can operate.  A 32-bit processor includes a 32-bit register which can store 2^32 or 4,294,967,296 values.  A 64-bit processor includes a 64-bit register that can store 2^64 or 18,446,744,073,709,551,616 values.  That means a 64-bit register is 4,294,967,296 times larger than a 32-bit register! The CPU register stores memory addresses so that the processor can access data from RAM.

     

    One bit in the register can reference an individual byte (8 bits) in memory. Theoretically, a 32-bit register can access about 4 gigabytes (4,294,967,296 bytes) of RAM. The number is actually less than that as as a part of the registry is taken up by temporary data.  You don't necessarily need a 64-bit architecture to have a modern computer but a 64 bit system can run more efficiently and allocate memory blocks more efficiently.

     

     

    RAM and CPUs aren't the only place around computers that use binary data,  literally everything that is digital is by definition binary. That includes most of the music people listen to, the movies they watch, and the documents that are stored on your computer.  As technology became more advanced and computers could take advantage higher processing power and RAM, a lot of the physical media used to store all those 1s and 0s no longer became necessary.

    Gaming Consoles

    The number of "bits" in a gaming console name, such as the Nintendo 64 or the 16-bit Sega Genesis (aka Mega Drive), refers to the CPU word size. A word is a fixed-sized piece of data handled as a unit by the instruction set or the hardware and processor.

     

    The Nintendo 64 was hyped as 64-bit to show off its processing power just as the Sega Genesis began the so called 16-bit gaming era because it used a processor capable of 16 bits, the Motorola 68000 . When Sega released its 16-bit console, it was a great way to market the console as well as practical, from a programming and hardware standpoint, because 16-bits what as already being used for games at the arcades.  Before the 16-bit era, you enter a purely 8-bit era of gaming consoles known as the third generation of gaming consoles.

     

    The market leader of that generation, the Nintendo Entertainment System, used a Ricoh 2A03 8-bit processor (MOS Technology 6502 core) while the Sega Master System used an 8-bit processor called the Zilog Z80.  While the Atari 2600 is considered part of the second generation of gaming consoles, it's also an 8-bit machine as it essentially uses the same CPU as the NES, the Ricoh 2A03 bit processor. In fact, every home gaming console that used a CPU had at least an 8-bit processor so there are a lot of hardware and technical considerations to consider that go well beyond the processor. If you wanted to look for an example of a 4 bit gaming device you'd have to go back to the Microvision.

     

    Released in 1979, this was a handheld gaming device used an Intel 8021 and later a TMS1100 in the game cartridges. Because there is not a 1:1 correspondence between processor and power, there's actually a lot of overlap between the various generations of gaming consoles and grouping these consoles based on processing power is problematic. Nintendo never made a 32 bit console, opting instead to  jump from the 16-bit Super Nintendo to the 64-bit Nintendo 64. It competed into the 32 bit era and Nintendo took its time getting into the 16 bit era. The Sega Genesis, marketed as a 16 bit machine during the 8 bit era, actually used a 32 bit processor.

     

    The Motorola 68000 used a 32-bit instruction set, 32-bit registers and a 32-bit internal data bus but was limited to a 16-bit main ALU and a 16 bit wide external data bus. Meanwhile, the 16 bit CPU for the SNES, the Ricoh 5A22, is a 16 bit processor limited to an 8 bit data bus. The Super Nintendo competed into the 32 bit era with the Sony PlayStation and the Sega Saturn before leapfrogging both consoles with the Nintendo 64.

     

    When you talk about how many bits a processor can handle you'll have to consider how many bits can the data bus handle at a time, the address bus which is how many bits of memory can the processor access, the instruction set which is how many bits of instruction can the processor have, and register size which is how many bits can the processor work with.

     

    The amount of bits a processor used for a gaming system began getting taken less seriously as a talking point for marketing around the fourth and fifth generation when no one could even agree which systems belonged to which generations.  The Sega Dreamcast used a 128 bit processor whereas the Xbox used a 32-bit processor.

    Digital Media

    RAM and CPUs aren't the only place around computers that use binary data,  literally everything that is digital is by definition binary. That includes most of the music people listen to, the movies they watch, and the documents that are stored on your computer.  As technology became more advanced and computers could take advantage higher processing power and RAM, a lot of the physical media used to store all those 1s and 0s no longer became necessary.

     

     

    The more bits you've got, the pattern of 1s and 0s, the more values that become available. Having more 1s and 0s available to you allows you to utilize larger number combinations and represent more things such as more detailed images, audio that exceeds CD quality, and resolution every bit as good as what's stored on physical media.

     

    Encoders are what allows you to hear, watch, read, and see all the digital audio, video, text, and images on your electronic devices.  So that you can appreciate media across different electronic devices these encoding formats have largely been standardized. Audio files are encoded using AAC, mp3 WAV, AAC, etc; video files are encoded using MPEG4, H264, etc.; text is encoded in character sets such as ASCII and unicode; and images are encoded in files such as BMP, JPEG, and PNG.

     

     

    How to Win One of Two Hex Game Prototypes!

     

    Directions:

     

    Step 1:  Log in or register on element14, it's easy and free.

     

    Step 2: Post in the comments section below and tell us:  

     

    How would you Inspire STEM Learning Using Numbers?

     

    Videos, pictures and text are all welcomed forms of submission.

     

     

    We will accept entries until 3:00pm CDT Dec 18th, 2017 and announce our winner December 28th 2017.