The (Ultimate) ZYBOt Guide

Back in March, we released a blog post announcing the ZYBOt. There was a set of Instructables and a video showing what the ZYBOt is all about. If you check those out, you can see that the ZYBOt is remote-controlled and has a video feed that can be displayed to a computer. The ZYBOt is a great project for people that want to dive into working with FPGAs and Linux.

A Crash Course on Linux (Just The Good Parts)

Originally, this blog post was going to be about how Linux works with its kernel and everything. That turned out to be extremely dry, and it was a jumbled mess to try to fit everything into a blog post. Just check out the Linux wiki page for all that stuff. Instead this post is going to be more about parts of Linux that people should know about. Linux is used widely for developing software and embedded systems. One example is the Zybot, partially developed by Kaitlyn and me!

Setting Up a LAMP Server

Now that we have Linux booted up on our computer, we can get programming. What happens if we want to create web pages? Well, we need to set-up our LAMP server. LAMP stands for Linux Apache MySQL PHP. This blog post goes in conjunction with a relevant Instructable about setting up our LAMP server, so just like the previous blog post about dual-booting Ubuntu, this is going to go over more of why we’re doing this. What the LAMP server will allow us to do it create a local host that will let us communicate with the Internet.

Recursion

Welcome back to the Digilent Blog! Today we’re going to go over recursion! Recursion is when a function calls itself directly, or through another function. Sometimes we can’t solve a problem using loops (iteration), so we have to use recursion. Recursion is slower than iteration, difficult to debug, and it uses up more of the stack. But recursion can also have simpler code, so in some cases, the benefits outweigh the problems.

Number Systems

Today, we are going to learn about number systems. A “number system” is defined here as “any notation for the representation of numerals or numbers.” We naturally use the decimal (base 10) system, meaning we use the numbers 0-9 to represent all the other numbers. The three types of number systems that we are going to talk about today are decimal, binary, and hexadecimal, but there are many more!

What Are “Pointers”?

This blog post will cover the basics of pointers, a programming tool that is used in languages like C and C++. In this post, we will be using C as our primary language. Pointers are variables that contain a memory address (a concept used to access the computer’s primary storage memory). Variables normally contain a value such as 1 or ‘a’, but pointers contain an address of the value. When we reference a variable through pointers, this is called indirection. Each link goes to a text file of C code. This code can be run as is and will help show us the power of pointers!