Raspberry Pi IoT In C Using Linux Drivers

Raspberry Pi IoT In C Using Linux Drivers
Author: Harry Fairhead
Publisher:
Total Pages: 280
Release: 2021-02-08
Genre: Computers
ISBN: 9781871962642

The Raspberry Pi makes an ideal match for the Internet of Things. To put it to good use in IoT you need two areas of expertise, electronics and programming and this presents a barrier to getting started. However, there is an overlooked route that can provide a shortcut. Pi OS, the Raspberry Pi's operating system is Linux based and Linux drivers are available for many off-the-shelf IoT devices. These provide a very easy-to-use, high-level way of working. The problem that this book solves is that there is very little documentation to help you get started. In it Harry Fairhead explains the principles so that you can tackle new devices and he also guides you through of using external hardware via standard Linux drivers. Throughout this book you will find a practical approach to understanding electronic circuits and datasheets and translating this to code, specifically using the C programming language. The main reason for choosing C is speed, a crucial factor when you are writing programs to communicate with the outside world and if you are familiar with another programming language, C shouldn't be hard to pick up. After a quick tour of the Raspberry Pi ecosystem, Visual Studio Code (VS Code) and how it can be used to develop remotely, is introduced. The first IoT program anyone writes is "blinky" to flash an LED and this book is no exception, but it might not be quite what you expect. Instead of using a GPIO line it uses the Linux LED driver - no hardware and no fuss. The GPIO isn't left out, however, as the next three chapters focus on its use via the new GPIO character driver, which replaces the old and very common sysfs GPIO driver. This is the way to do modern GPIO. A key component in any look at Linux and its relationship to hardware is the relatively new Device Tree. While most accounts of this resource are aimed at device driver writers, this one is aimed at device driver users and to this end we look at the DHT22 temperature and humidity driver. After a brief detour into some basic electronics, we look at Pulse Width Modulation supported via a driver rather than needing to be implemented using the GPIO. From here we tackle the two standard buses, I2C and SPI, first going through the basics and then looking at the two attempts to impose a higher organization, the hardware monitoring system, Hwmon, and Industrial I/O, IIO. The third standard bus, although generally not supported in hardware is the 1-Wire bus. This is covered in detail and even includes an introduction to using Netlink, which uses the sockets API to send messages to and from the kernel to access the driver. The final chapter takes things to the next level and considers creating your own custom overlays by writing fragments to the device tree. Harry Fairhead has worked with microprocessors, and electronics in general, for many years and is an enthusiastic proponent of the IoT. He is the author of Raspberry Pi IoT in C, which has recently been republished in its second edition, updated for Raspberry Pi 4 and co-author of Raspberry Pi IoT in Python Using GPIO Zero. His other recent books include Micro: bit IoT in C, Fundamental C: Getting Closer To The Machine and Applying C For The IoT With Linux.

Raspberry Pi IoT In Python Using Linux Drivers

Raspberry Pi IoT In Python Using Linux Drivers
Author: Mike James
Publisher: I/O Press
Total Pages: 276
Release: 2021-03-14
Genre:
ISBN: 9781871962659

The Raspberry Pi makes an ideal match for the Internet of Things. To put it to good use in IoT you need two areas of expertise, electronics and programming, and this presents a barrier to getting started. However, there is an overlooked route that can provide a shortcut. Pi OS, the Raspberry Pi's operating system, is Linux- based and Linux drivers are available for many off-the-shelf IoT devices. These provide a very easy-to-use, high-level, way of working. The problem that this book solves is that there is very little documentation to help you get started. Throughout this book you will find a practical approach to understanding electronic circuits and datasheets and translating this to code, specifically using Python. Python is an excellent language for learning about the IoT or physical computing. It might not be as fast as C, but it is much easier to use for complex data processing. The emphasis in this book is on understanding how things work so that you can apply your new knowledge to your own projects. You can use any Python development system that you know, but the programs in the book have been developed using Visual Studio Code and its remote development facilities. The first IoT program anyone writes is "Blinky" to flash an LED and this book is no exception, but it might not be quite what you expect. Instead of using a GPIO line, it uses the Linux LED driver - no hardware and no fuss. The GPIO isn't left out, however, as the next three chapters focus on its use via the new GPIO character driver, which replaces the old and very common sysfs GPIO driver. This is the way to do modern GPIO. A key component in any look at Linux and its relationship to hardware is the relatively new Device Tree. While most accounts of this resource are aimed at device driver writers, this one is aimed at device driver users and to this end we look at several devices, including the DHT22 temperature and humidity sensor. After a brief detour into some basic electronics, we see how Pulse Width Modulation is supported via a driver. From here we tackle the two standard buses, I2C and SPI, first going through the basics and then looking at the two attempts to impose a higher organization, the hardware monitoring system, Hwmon, and Industrial I/O, IIO. The third standard bus, although generally not supported in hardware, is the 1-Wire bus. This is covered in detail and even includes an introduction to using Netlink, which uses the sockets API to send messages to and from the kernel to access the driver. The final chapter takes things to the next level and considers creating your own custom overlays by writing fragments to the device tree. This is the second title jointly authored by Harry Fairhead and Mike James and can be seen as the alternative approach to that outlined in Raspberry Pi IoT In Python Using GPIO Zero. For both books, Harry brings his expertise in electronics and the IoT and Mike contributes the Python code. Harry Fairhead is the author of other IoT-related titles including Raspberry Pi IoT in C, Second Edition; Micro: bit IoT in C, Second Edition; Applying C For The IoT With Linux and Fundamental C: Getting Closer To The Machine. Mike James is the author of Programmer's Python: Everything is an Object and other programming and computer science titles in the I Programmer Library.

Yocto for Raspberry Pi

Yocto for Raspberry Pi
Author: Pierre-Jean Texier
Publisher: Packt Publishing Ltd
Total Pages: 209
Release: 2016-06-29
Genre: Computers
ISBN: 1785288059

Create unique and amazing projects by using the powerful combination of Yocto and Raspberry Pi About This Book Set up and configure the Yocto Project efficiently with Raspberry Pi Deploy multimedia applications from existing Yocto/OE layers An easy-to-follow guide to utilize your custom recipes on your Raspberry Pi Who This Book Is For If you are a student or a developer of embedded software, embedded Linux engineer or embedded systems in competence with Raspberry Pi and want to discover the Yocto Project, then this book is for you. Experience with Yocto is not needed. What You Will Learn Explore the basic concept of Yocto's build system and how it is organized in order to use it efficiently with Raspberry Pi Generate your first image with Yocto for the Raspberry Pi Understand how to customize your Linux kernel within the Yocto Project Customize your image in order to integrate your own applications Write your own recipes for your graphical applications Integrate a custom layer for the Raspberry Pi In Detail The Yocto Project is a Linux Foundation workgroup, which produces tools (SDK) and processes (configuration, compilation, installation) that will enable the creation of Linux distributions for embedded software, independent of the architecture of embedded software (Raspberry Pi, i.MX6, and so on). It is a powerful build system that allows you to master your personal or professional development. This book presents you with the configuration of the Yocto Framework for the Raspberry Pi, allowing you to create amazing and innovative projects using the Yocto/OpenEmbedded eco-system. It starts with the basic introduction of Yocto's build system, and takes you through the setup and deployment steps for Yocto. It then helps you to develop an understanding of Bitbake (the task scheduler), and learn how to create a basic recipe through a GPIO application example. You can then explore the different types of Yocto recipe elements (LICENSE, FILES, SRC_URI, and so on). Next, you will learn how to customize existing recipes in Yocto/OE layers and add layers to your custom environment (qt5 for example). Style and approach A step by step guide covering the fundamentals to create amazing new projects with Raspberry Pi and Yocto.

Raspberry Pi Technology

Raspberry Pi Technology
Author: Simon J. Cox
Publisher: MDPI
Total Pages: 305
Release: 2018-04-03
Genre: Computers
ISBN: 3038425796

This book is a printed edition of the Special Issue "Raspberry Pi Technology" that was published in Electronics

Raspberry Pi Zero Cookbook

Raspberry Pi Zero Cookbook
Author: Edward Snajder
Publisher: Packt Publishing Ltd
Total Pages: 413
Release: 2017-03-24
Genre: Computers
ISBN: 1786466473

Over 80 practical and interesting recipes that explore the plethora of functionalities and opportunities available with Raspberry Pi Zero About This Book Deep dive into the components of the small yet powerful Raspberry Pi Zero Get into grips with integrating various hardware, programming, and networking concepts with the so-called “cheapest computer” Explore the functionalities of this $5 chip through practical recipes Who This Book Is For This book is for programmers and hobbyists who are eager to dive deep into the Raspberry Pi Zero. If you have basic or zero knowledge of the Raspberry Pi Zero, or if you looking for examples of ways to utilize the Raspberry Pi's GPIO interface, then this book is ideal for you. Basic knowledge of Python will be beneficial, and experience with circuitry and electronics will be needed for the later chapters in the book. What You Will Learn Set up your Raspberry Pi Zero with the operating system, networking, and different interfaces Get a hands-on introduction to Linux, Python, and shell scripts with the Raspberry Pi Zero Become a master at driving GPIOs and controlling relays, motors, transistors, buzzers, audio, read switches, and interrupts with the Raspberry Pi Zero Control GPIOs using the web interface and Node.js Connect displays, LED matrixes, analog sensors, and digital sensors Hack the Ethernet on the Raspberry Pi Zero Make your Raspberry Pi Zero an IoT-based sensor node and remotely monitor your data In Detail The Raspberry Pi Zero, one of the most inexpensive, fully-functional computers available, is a powerful and revolutionary product developed by the Raspberry Pi Foundation. The Raspberry Pi Zero opens up a new world for the makers out there. This book will give you expertise with the Raspberry Pi Zero, providing all the necessary recipes that will get you up and running. In this book, you will learn how to prepare your own circuits rather than buying the expensive add–ons available in the market. We start by showing you how to set up and manage the Pi Zero and then move on to configuring the hardware, running it with Linux, and programming it with Python scripts. Later, we integrate the Raspberry Pi Zero with sensors, motors, and other hardware. You will also get hands-on with interesting projects in media centers, IoT, and more. Style and approach This recipe-based book will ensure you gain an intermediate-level knowledge of the Raspberry Pi Zero. This book contains comprehensive illustrations with specific schematics for each circuit diagram.

Exploring BeagleBone

Exploring BeagleBone
Author: Derek Molloy
Publisher: John Wiley & Sons
Total Pages: 601
Release: 2014-12-31
Genre: Computers
ISBN: 1118935128

In-depth instruction and practical techniques for building with the BeagleBone embedded Linux platform Exploring BeagleBone is a hands-on guide to bringing gadgets, gizmos, and robots to life using the popular BeagleBone embedded Linux platform. Comprehensive content and deep detail provide more than just a BeagleBone instruction manual—you’ll also learn the underlying engineering techniques that will allow you to create your own projects. The book begins with a foundational primer on essential skills, and then gradually moves into communication, control, and advanced applications using C/C++, allowing you to learn at your own pace. In addition, the book’s companion website features instructional videos, source code, discussion forums, and more, to ensure that you have everything you need. The BeagleBone’s small size, high performance, low cost, and extreme adaptability have made it a favorite development platform, and the Linux software base allows for complex yet flexible functionality. The BeagleBone has applications in smart buildings, robot control, environmental sensing, to name a few; and, expansion boards and peripherals dramatically increase the possibilities. Exploring BeagleBone provides a reader-friendly guide to the device, including a crash course in computer engineering. While following step by step, you can: Get up to speed on embedded Linux, electronics, and programming Master interfacing electronic circuits, buses and modules, with practical examples Explore the Internet-connected BeagleBone and the BeagleBone with a display Apply the BeagleBone to sensing applications, including video and sound Explore the BeagleBone’s Programmable Real-Time Controllers Hands-on learning helps ensure that your new skills stay with you, allowing you to design with electronics, modules, or peripherals even beyond the BeagleBone. Insightful guidance and online peer support help you transition from beginner to expert as you master the techniques presented in Exploring BeagleBone, the practical handbook for the popular computing platform.

Exploring Raspberry Pi

Exploring Raspberry Pi
Author: Derek Molloy
Publisher: John Wiley & Sons
Total Pages: 723
Release: 2016-06-09
Genre: Computers
ISBN: 1119188709

Expand Raspberry Pi capabilities with fundamental engineering principles Exploring Raspberry Pi is the innovators guide to bringing Raspberry Pi to life. This book favors engineering principles over a 'recipe' approach to give you the skills you need to design and build your own projects. You'll understand the fundamental principles in a way that transfers to any type of electronics, electronic modules, or external peripherals, using a "learning by doing" approach that caters to both beginners and experts. The book begins with basic Linux and programming skills, and helps you stock your inventory with common parts and supplies. Next, you'll learn how to make parts work together to achieve the goals of your project, no matter what type of components you use. The companion website provides a full repository that structures all of the code and scripts, along with links to video tutorials and supplementary content that takes you deeper into your project. The Raspberry Pi's most famous feature is its adaptability. It can be used for thousands of electronic applications, and using the Linux OS expands the functionality even more. This book helps you get the most from your Raspberry Pi, but it also gives you the fundamental engineering skills you need to incorporate any electronics into any project. Develop the Linux and programming skills you need to build basic applications Build your inventory of parts so you can always "make it work" Understand interfacing, controlling, and communicating with almost any component Explore advanced applications with video, audio, real-world interactions, and more Be free to adapt and create with Exploring Raspberry Pi.

Raspberry Pi User Guide

Raspberry Pi User Guide
Author: Eben Upton
Publisher: John Wiley & Sons
Total Pages: 327
Release: 2016-08-29
Genre: Computers
ISBN: 1119264367

Learn the Raspberry Pi 3 from the experts! Raspberry Pi User Guide, 4th Edition is the "unofficial official" guide to everything Raspberry Pi 3. Written by the Pi's creator and a leading Pi guru, this book goes straight to the source to bring you the ultimate Raspberry Pi 3 manual. This new fourth edition has been updated to cover the Raspberry Pi 3 board and software, with detailed discussion on its wide array of configurations, languages, and applications. You'll learn how to take full advantage of the mighty Pi's full capabilities, and then expand those capabilities even more with add-on technologies. You'll write productivity and multimedia programs, and learn flexible programming languages that allow you to shape your Raspberry Pi into whatever you want it to be. If you're ready to jump right in, this book gets you started with clear, step-by-step instruction from software installation to system customization. The Raspberry Pi's tremendous popularity has spawned an entire industry of add-ons, parts, hacks, ideas, and inventions. The movement is growing, and pushing the boundaries of possibility along with it—are you ready to be a part of it? This book is your ideal companion for claiming your piece of the Pi. Get all set up with software, and connect to other devices Understand Linux System Admin nomenclature and conventions Write your own programs using Python and Scratch Extend the Pi's capabilities with add-ons like Wi-Fi dongles, a touch screen, and more The credit-card sized Raspberry Pi has become a global phenomenon. Created by the Raspberry Pi Foundation to get kids interested in programming, this tiny computer kick-started a movement of tinkerers, thinkers, experimenters, and inventors. Where will your Raspberry Pi 3 take you? The Raspberry Pi User Guide, 3rd Edition is your ultimate roadmap to discovery.

Exploring the Raspberry Pi 2 with C++

Exploring the Raspberry Pi 2 with C++
Author: Warren Gay
Publisher: Apress
Total Pages: 198
Release: 2015-11-26
Genre: Computers
ISBN: 148421739X

You have a Pi 2, but what exactly can you do with it? This book takes you on a tour of the Pi 2 hardware and all of the fantastic things that you can do to create innovative and useful projects with your Pi. Start with creating a workstation that does actual work, and move into installing a custom kernel, creating a clock, learning the ins and outs of the GPIO interface, and pick up some useful C++ skills along the way. Warren Gay, author of Mastering the Raspberry Pi, takes you through a set of experiments to show just what the Pi 2 is capable of and how you can use it to make your own fantastic creations. What You Will Learn: How to create an experimenter's workstation for the Pi 2, complete with breadboard and even Arduino All the details of GPIO, including a custom command for working with it Useful projects like a general purpose clock and the PiSpy Quick intro to C++ for the Pi How to make a multi-core webserver Who this book is for:Intermediate electronics enthusiasts and Pi fans, makers, students, teachers, and everyone who wants to know how to make the Pi really work.

Linux Driver Development with Raspberry Pi - Practical Labs

Linux Driver Development with Raspberry Pi - Practical Labs
Author: Alberto de los Ríos
Publisher:
Total Pages: 648
Release: 2021-06-06
Genre:
ISBN:

Linux Driver Development with Raspberry Pi - Practical Labs Embedded systems have become an integral part of our daily life. They are deployed in mobile devices, networking infrastructure, home and consumer devices, digital signage, medical imaging, automotive infotainment and many other industrial applications. The use of embedded systems is growing exponentially. Many of these embedded systems are powered by an inexpensive yet powerful system-on-chip (SoC) that is running a Linux operating system. The BCM2837 from Broadcom is one of these SoCs, running quad ARM Cortex A53 cores at 1.2GHz. This is the SoC used in the popular Raspberry Pi 3 boards. This book follows the learning by doing approach, so you will be playing with your Raspberry Pi since the first chapter. Besides the Raspberry Pi board, you will use several low-cost boards to develop the hands-on examples. In the labs, it is described what each step means in detail so that you can use your own hardware components adapting the content of the book to your needs. You will learn how to develop Linux drivers for the Raspberry Pi boards. You will start with the simplest ones that do not interact with any external hardware, then you will develop Linux drivers that manage different kind of devices: Accelerometer, DAC, ADC, RGB LED, Buttons, Joystick controller, Multi-Display LED controller and I/O expanders controlled via I2C and SPI buses. You will also develop DMA drivers, USB device drivers, drivers that manage interrupts and drivers that write and read on the internal registers of the SoC to control its GPIOs. To ease the development of some of these drivers, you will use different types of Linux kernel subsystems: Miscellaneous, LED, UIO, USB, Input and Industrial I/O. More than 30 kernel modules have been written (besides several user applications), which can be downloaded from the book's GitHub repository. This book uses the Long Term Support (LTS) Linux kernel 5.4, which was released on November 2019 and will be maintained until December 2025. The Linux drivers and applications developed in the labs have been ported to three different Raspberry Pi boards: Raspberry Pi 3 Model B, Raspberry Pi 3 Model B+ and Raspberry Pi 4 Model B. This book is a learning tool to start developing drivers without any previous knowledge about this field, so the intention during its writing has been to develop drivers without a high level of complexity that both serve to reinforce the main driver development concepts and can be a starting point to help you to develop your own drivers. And, remember that the best way to develop a driver is not to write it from scratch. You can reuse free code from similar Linux kernel mainline drivers. All the drivers written throughout this book are GPL licensed, so you can modify and redistribute them under the same license.