Lectures
Introduction
This is the web for Mobile Devices Course at Master Degree, the course is mainly focused into the Signal Processing Lane. The course requires basic programming and Linear Algebra knowledge.
The lecture needs a system or an embedded system to implement and understand how can be programmed and used as a main stream to gather information. Thus, it is highly recommended to have a device similar to the BeagleBone or RaspBerry boards.
The main idea is to learn how a GNU/Linux based operative system can be used to develop hardware-access applications from terminal or GUI front-end.
The lectures will be mainly provided by Git repositories to allow the student reproduce the complete task developed by the instructor. Thus, it is highly recommended to learn the basics of the Git system.
1. Introduction to the beagle boards
We are going to work with a Single Board Computers or Portable Embedded Systems, both systems are really close to Mobile Devices that works (in most of the cases) with Embedded Linux.
There are several options to select: Raspberry Pi, DragonBoard, ASUS Tinker Board, cRio, LattePanda, Intel Nuc, Libre Computer, ESP32, NanoPi, BeagleBone, Onion, Intel Galileo, and more.
Of course the selected option depends on the final application or applications. For this course, the best options are the: 1) The BeagleBone Black, 2)BeagleBone Nano, and 3) Raspberry Pi; in this priority order.
I recommend the BeagleBone Boards because it is highly supported by groups and forums, has great available tools, and several electronic expansion cards to work with.
If you want to know prices and more details please visit Best single computers
1.1 Basics of GNU/Linux
GNU/Linux is the technical name that receives the Unix based operative systems(OS). The OS are the combination of several open-source projects, the most relevant are the GNU environment (Richard Stallman) and the OS kernel known as Linux (Linus Torvalds).
Nowadays, the word Linux is used to refer to the complete OS instead of the kernel, however, the correct name is GNU/Linux. Thus, the GNU/Linux OS are commonly distributed as compendium of packages or programs, these is known as a distro or distribution. Each distribution has a minimum of packages previously installed to work with.
GNU/Linux is a wide used operative systems in several engineering applications, data science server/computers, real time application, embedded systems, and more. According with 1, GNU/Linux distributions are used in the 78% of the most important servers in the world.
Therefore, I recommend to be in full contact with the work-flow of GNU-Linux. As you may know, there are several Linux distributions to work with, and this distribution must be selected by considering the final application.
Then, if you are a first user of GNU-Linux, I recommend to use Ubuntu. If you have already used a GNU-Linux distribution, I recommend to work with Debian, or if you can handle it a little bit more, use Arch.
Thus, you will need a way to work with many Linux distributions to develop applications. To manage this, you can install a physical instance of each distro in your computer (the best option, but take with care), otherwise you can install the Docker system to have many distros without problems as sand-boxes, or as a last option work with virtual machine instances; not the best option but the easiest.
The full contents of the Lecture and examples is in the repository Basics of Linux
1.2 Install microSD and basic connection
Here you can find two repositories to install a new ISO in the BBB’s microSD and make a basic configuration for USB/SSH connection, please follow the instructions below:
1.3 Board connections and basic communication
We have already used the ssh protocol to connect our computers to the Beagle/Rasp board. Nevertheless, it is important to understand and use the ssh-keygen tools and how to start programming using bash scripts:
improve a little bit our boards installing VIM and Oh-my-Bash:
1.4 Git, Vim and oh-my-bash introduction
Along this lecture two important tools are introduced: GIT version control system and Vim source text editor. Details about the lectures are in the next repositories:
1.5 Vim and Tmux configuratio, and GPIOs
2 Basics of programming
2.1 Bash programming concepts
In the next repositories you can find a basic guide to access and test the onboard LEDs (BeagleBone only), and also a basic script to test the bash programming concepts:
2.2 C programming concepts
A long this lecture, let us test a basic Hello World scripts on C by turning ON or OFF the USR3 LED. The idea is to remember the compilation chain process to obtain an executable application.
2.3 Web applications using Nodejs
3 SBC’s Services
3.1 A Web and CGI server
The lecture presents the basic procedure to install and configure an Apache Web server. Then, a basic CGI script is running on the server:
4 IoT Devices with MQTT
The lecture discusses the basics installation of the Mosquitto application to work with MQTT, how to mount a Node-RED service with Dashboard and use it as a MQTT broker. Finally, the Arduino IDE to work with the ESP32 iot device:
-
IDC http://www.tercerainformacion.es/spip.php?article15580 ↩
More information about other Lectures below: