This book details the use of the ARM Cortex-M family of processors and the Arduino Uno in practical CAN bus based projects. Inside, it gives a detailed introduction to the architecture of the Cortex-M family whilst providing examples of popular hardware and software development kits. Using these kits helps to simplify the embedded design cycle considerably and makes it easier to develop, debug, and test a CAN bus based project. The architecture of the highly popular ARM Cortex-M processor STM32F407VGT6 is described at a high level by considering its various modules. In addition, the use of the mikroC Pro for ARM and Arduino Uno CAN bus library of functions are described in detail.
This book is written for students, for practising engineers, for hobbyists, and for everyone else who may need to learn more about the CAN bus and its applications. The book assumes that the reader has some knowledge of basic electronics. Knowledge of the C programming language will be useful in later chapters of the book, and familiarity with at least one microcontroller will be an advantage, especially if the reader intends to develop microcontroller based projects using CAN bus.
The book should be useful source of reference to anyone interested in finding an answer to one or more of the following questions:
What bus systems are available for the automotive industry?
What are the principles of the CAN bus?
What types of frames (or data packets) are available in a CAN bus system?
How can errors be detected in a CAN bus system and how reliable is a CAN bus system?
What types of CAN bus controllers are there?
What are the advantages of the ARM Cortex-M microcontrollers?
How can one create a CAN bus project using an ARM microcontroller?
How can one create a CAN bus project using an Arduino microcontroller?
How can one monitor data on the CAN bus?
Program, build, and master 60+ projects with the Wireless RP2040
The Raspberry Pi Pico and Pico W are based on the fast, efficient, and low-cost dual-core ARM Cortex M0+ RP2040 microcontroller chip running at up to 133 MHz and sporting 264 KB of SRAM and 2 MB of Flash memory. Besides spacious memory, the Pico and Pico W offer many GPIO pins, and popular peripheral interface modules like ADC, SPI, I²C, UART, PWM, timing modules, a hardware debug interface, and an internal temperature sensor.
The Raspberry Pi Pico W additionally includes an on-board Infineon CYW43439 Bluetooth and Wi-Fi chipset. At the time of writing this book, the Bluetooth firmware was not yet available. Wi-Fi is however fully supported at 2.4 GHz using the 802.11b/g/n protocols.
This book is an introduction to using the Raspberry Pi Pico W in conjunction with the MicroPython programming language. The Thonny development environment (IDE) is used in all of the 60+ working and tested projects covering the following topics:
Installing the MicroPython on Raspberry Pi Pico using a Raspberry Pi or a PC
Timer interrupts and external interrupts
Analogue-to-digital converter (ADC) projects
Using the internal temperature sensor and external sensor chips
Using the internal temperature sensor and external temperature sensor chips
Datalogging projects
PWM, UART, I²C, and SPI projects
Using Bluetooth, WiFi, and apps to communicate with smartphones
Digital-to-analogue converter (DAC) projects
All projects are tried & tested. They can be implemented on both the Raspberry Pi Pico and Raspberry Pi Pico W, although the Wi-Fi-based subjects will run on the Pico W only. Basic programming and electronics experience are required to follow the projects. Brief descriptions, block diagrams, detailed circuit diagrams, and full MicroPython program listings are given for all projects.
Mit diesem Buch erweitert der Leser seine Mikrocontroller-Kenntnisse auf Grund eigener Erfahrungen und Erfolgserlebnisse und wird dazu noch ganz nebenbei in die Welt des Arduino und seiner Entwicklungsumgebung eingeführt. Am Ende dieses vergnüglichen und fast spielerischen Lehrgangs stellen Begriffe wie I/O, Speicherplatz, Interrupts, Kommunikationsstandards, A/D-Konverter (und vieles mehr) keine Geheimnisse mehr dar und der Leser ist in der Lage, auch andere Mikrocontroller zu programmieren. Mit anderen Worten: ein erstes Mikrocontroller-Buch mit Happy End.
Dieses Buch ist für Sie geeignet, wenn Sie Anfänger auf dem Gebiet der Mikrocontroller sind, als Arduino-User bzw. -Enthusiast Ihre Kenntnisse vertiefen möchten, Elektronik studieren oder als Lehrer inspiriert werden möchten.
Neues Konzept:
Dieses Buch überrascht mit einem völlig neuen Konzept an Schaltungsbeispielen: Mit speziellen Arduino-Anwendungen vertreiben Sie störende Freunde und Familienmitglieder sicher und zuverlässig aus Ihrer Umgebung und machen so Schluss mit lästigen gesellschaftlichen Verpflichtungen, so dass Sie in Zukunft Ihre komplette Freizeit nur noch der Programmierung von Mikrocontrollern widmen können.
Originelle Anwendungsbeispiele
Geringe Hardware-Kosten
Freie und offene Software (Open Source)
Projects with Thonny-IDE, uPyCraft-IDE, and ESP32
The 'Python' programming language has enjoyed an enormous upswing in recent years. Not least, various single-board systems such as the Raspberry Pi have contributed to its popularity. But Python has also found widespread use in other fields, such as artificial intelligence (AI) or machine learning (ML). It is obvious, therefore, to use Python or the 'MicroPython' variant for use in SoCs (Systems on Chip) as well.
Powerful controllers such as the ESP32 from Espressif Systems offer excellent performance as well as Wi-Fi and Bluetooth functionality at an affordable price. With these features, the Maker scene has been taken by storm. Compared to other controllers, the ESP32 has a significantly larger flash and SRAM memory, as well as a much higher CPU speed. Due to these characteristics, the chip is not only suitable for classic C applications, but also for programming with MicroPython.
This book introduces the application of modern one-chip systems. In addition to the technical background, the focus is on MicroPython itself. After the introduction to the language, the programming skills learned are immediately put into practice. The individual projects are suitable for use in the laboratory as well as for everyday applications. So, in addition to the actual learning effect, the focus is also on the joy of building complete and useful devices. By using laboratory breadboards, circuits of all kinds can be realized with little effort, turning the testing and debugging of the 100% homebrew projects into an instructive pleasure.
The various applications, such as weather stations, digital voltmeters, ultrasound range finders, RFID card readers or function generators, make the projects presented ideally suited for practical courses or subject and study work in the natural sciences, or in science and technology classes.
Projects with Arduino Uno & Raspberry Pi with Examples for the MCP2515 CAN Bus Interface Module
This book details the use of the Arduino Uno and the Raspberry Pi 4 in practical CAN bus based projects. Using either the Arduino Uno or the Raspberry Pi with off-the-shelf CAN bus interface modules considerably ease developing, debugging, and testing CAN bus based projects.
This book is written for students, practicing engineers, enthusiasts, and for everyone else wanting to learn more about the CAN bus and its applications. The book assumes that the reader has some knowledge of basic electronics. Knowledge of the C and Python programming languages and programming the Arduino Uno using its IDE and Raspberry Pi will be useful, especially if the reader intends to develop microcontroller-based projects using the CAN bus.
The book should be a useful source of reference material for anyone interested in finding answers to questions such as:
What bus systems are available for the automotive industry?
What are the principles of the CAN bus?
How can I create a physical CAN bus?
What types of frames (or data packets) are available in a CAN bus system?
How can errors be detected in a CAN bus system and how dependable is a CAN bus system?
What types of CAN bus controllers exist?
How do I use the MCP2515 CAN bus controller?
How do I create 2-node Arduino Uno-based CAN bus projects?
How do I create 3-node Arduino Uno-based CAN bus projects?
How do I set the acceptance masks and acceptance filters?
How do I analyze data on the CAN bus?
How do I create 2-node Raspberry Pi-based CAN bus projects?
How do I create 3-node Raspberry Pi-based CAN bus projects?
PIC und AVR verstehen
In diesem Buch werden wir uns ausschließlich mit 8-Bit-Mikrocontrollern beschäftigen, und zwar mit Mikrocontrollern der 8-Bit-PIC- und der 8-Bit-AVR-Mikrocontroller-Linien. Bei der PIC-Familie handelt es sich dabei um PIC10, PIC12, PIC16 und PIC18; bei der AVR-Familie um ATtiny, ATmega und ATxmega. Die vorgestellten 8-Bit-Chips sind für sehr viele Anwendungen vollkommen ausreichend und preislich auch attraktiv.
Durch die Lektüre des Buches erhalten Sie ein fundiertes Wissen über die genannten 8-Bit-Mikrocontroller, über ihre Architektur, ihre Pinbelegungen und über ihre Programmierung.
Weil wir uns in diesem Buch mit den Grundlagen der Architektur der PICs und AVRs vertraut machen möchten, werden wir auch für alle PIC- und AVR-Anwendungen Assembler einsetzen, denn die Assembler-Sprache erlaubt es, die Technik im Detail kennenzulernen. Wenn man wirklich wissen möchte, was sich im Mikrocontroller abspielt, greift man zu Assembler. Damit hat man die beste Gelegenheit, sehr nah an den Kern zu kommen. Und wenn man schon einen Mikrocontroller-Typ kennengelernt und verstanden hat, ist es bei dem nächsten deutlich einfacher, auch wenn er von einem anderen Hersteller kommt. Bei anderen Programmiersprachen bleibt die Technik immer ziemlich tief versteckt.
Die Assembler-Beispiele sind so einfach gestaltet, dass sie jeder mit den im Buch aufgezeigten Programmiertechniken erstellen kann. Weil es sich um einfache Beispiele handelt, werden wir sie alle auf einer universellen Lochrasterplatine realisieren. Manche sind auch auf einem Experimentier-Breadboard umsetzbar.
A Beginner's Guide to AI and Edge Computing
Artificial Intelligence (AI) is now part of our daily lives. With companies developing low-cost AI-powered hardware into their products, it is now becoming a reality to purchase AI accelerator hardware at comparatively very low costs. One such hardware accelerator is the Hailo module which is fully compatible with the Raspberry Pi 5. The Raspberry Pi AI Kit is a cleverly designed hardware as it bundles an M.2-based Hailo-8L accelerator with the Raspberry Pi M.2 HAT+ to offer high speed inferencing on the Raspberry Pi 5. Using the Raspberry Pi AI Kit, you can build complex AI-based vision applications, running in real-time, such as object detection, pose estimation, instance segmentation, home automation, security, robotics, and many more neural network-based applications.
This book is an introduction to the Raspberry Pi AI Kit, and it is aimed to provide some help to readers who are new to the kit and wanting to run some simple AI-based visual models on their Raspberry Pi 5 computers. The book is not meant to cover the detailed process of model creation and compilation, which is done on an Ubuntu computer with massive disk space and 32 GB memory. Examples of pre-trained and custom object detection are given in the book.
Two fully tested and working projects are given in the book. The first project explains how a person can be detected and how an LED can be activated after the detection, and how the detection can be acknowledged by pressing an external button. The second project illustrates how a person can be detected, and how this information can be passed to a smart phone over a Wi-Fi link, as well as how the detection can be acknowledged by sending a message from the smartphone to your Raspberry Pi 5.
Hands-on in more than 50 projects
STM32 Nucleo family of processors are manufactured by STMicroelectronics. These are low-cost ARM microcontroller development boards. This book is about developing projects using the popular STM32CubeIDE software with the Nucleo-L476RG development board. In the early Chapters of the book the architecture of the Nucleo family is briefly described.
The book covers many projects using most features of the Nucleo-L476RG development board where the full software listings for the STM32CubeIDE are given for each project together with extensive descriptions. The projects range from simple flashing LEDs to more complex projects using modules, devices, and libraries such as GPIO, ADC, DAC, I²C, SPI, LCD, DMA, analogue inputs, power management, X-CUBE-MEMS1 library, DEBUGGING, and others. In addition, several projects are given using the popular Nucleo Expansion Boards. These Expansion Boards plug on top of the Nucleo development boards and provide sensors, relays, accelerometers, gyroscopes, Wi-Fi, and many others. Using an expansion board together with the X-CUBE-MEMS1 library simplifies the task of project development considerably.
All the projects in the book have been tested and are working. The following sub-headings are given for each project: Project Title, Description, Aim, Block Diagram, Circuit Diagram, and Program Listing for the STM32CubeIDE.
In this book you will learn about
STM32 microcontroller architecture;
the Nucleo-L476RG development board in projects using the STM32CubeIDE integrated software development tool;
external and internal interrupts and DMA;
DEBUG, a program developed using the STM32CubeIDE;
the MCU in Sleep, Stop, and in Standby modes;
Nucleo Expansion Boards with the Nucleo development boards.
What you need
a PC with Internet connection and a USB port;
STM32CubeIDE software (available at STMicroelectronics website free of charge)
the project source files, available from the book’s webpage hosted by Elektor;
Nucleo-L476RG development board;
simple electronic devices such as LEDs, temperature sensor, I²C and SPI chips, and a few more;
Nucleo Expansion Boards (optional).
Program and build Arduino-based ham station utilities, tools, and instruments
In addition to a detailed introduction to the exciting world of the Arduino microcontroller and its many variants, this book introduces you to the shields, modules, and components you can connect to the Arduino. Many of these components are discussed in detail and used in the projects included in this book to help you understand how these components can be incorporated into your own Arduino projects. Emphasis has been placed on designing and creating a wide range of amateur radio-related projects that can easily be built in just a few days.
This book is written for ham radio operators and Arduino enthusiasts of all skill levels, and includes discussions about the tools, construction methods, and troubleshooting techniques used in creating amateur radio-related Arduino projects. The book teaches you how to create feature-rich Arduino-based projects, with the goal of helping you to advance beyond this book, and design and build your own ham radio Arduino projects.
In addition, this book describes in detail the design, construction, programming, and operation of the following projects:
CW Beacon and Foxhunt Keyer
Mini Weather Station
RF Probe with LED Bar Graph
DTMF Tone Encoder
DTMF Tone Decoder
Waveform Generator
Auto Power On/Off
Bluetooth CW Keyer
Station Power Monitor
AC Current Monitor
This book assumes a basic knowledge of electronics and circuit construction. Basic knowledge of how to program the Arduino using its IDE will also be beneficial.
in 10 captivating lessons
Using the lessons in this book you learn how to program a microcontroller. You’ll be using JAL, a free but extremely powerful programming language for PIC microcontrollers, which enjoys great popularity in the hobby world. Starting out from scratch virtually, you slowly build up the knowledge. No previous knowledge is needed: anyone can get started with this book. Assuming you have absorbed all lessons – meaning you have actually completed all the exercises – you should be confident to write PIC microcontroller programs, as well as read and understand programs written by other people.
JAL commands
You learn the function of JAL commands such as include, pin, delay, forever loop, while loop, case, exit loop, repeat until, if then, as well as the use of functions, procedures and timer- and port interrupts.
JAL programs
You make an LED blink, build a time switch, measure a potentiometer’s wiper position, produce sounds, suppress contact bounce, and control the brightness of an LED. And of course you learn to debug, meaning: how to spot and fix errors in your programs.
Hardware
You learn to recognize various components including the PIC microcontroller, potentiometer and quartz crystal, and how to wire up a PIC microcontroller and effectively link it to your PC. A breadboard is used for the purpose, allowing you to easily modify the component arrangement for further experimenting.
The companion software with this book can be downloaded free of charge, including the JAL programming language. In addition, you may order a kit of parts so you don’t have to go shopping for the required components. Especially for a beginner, this is the easiest way to start with this unique pastime.
Having finished this book does not mean you are through with your pastime. You can get your hands dirty again, and if desired use other books packed with fun projects using the JAL programming language. More information may be found at the end of the lessons in the chapter "Done! What’s next?""
This book is all about building your own DIY home control system. It presents two innovative ways to assemble such a system: By recycling old PC hardware – possibly extending the life of an old PC, or by using Raspberry Pi. In both cases, the main system outlined in this book will consist of a computer platform, a wireless mains outlet, a controller and a USB webcam – All linked together by Linux.
By using the Raspberry Pi in conjunction with Arduino (used as an advanced I/O system board), it is possible to construct a small, compact, embedded control system offering enhanced capacity for USB integration, webcams, thermal monitoring and communication with the outside world.
The experience required to undertake the projects within this book are minimal exposure to PC hardware and software, the ability to surf the internet, burn a CD-ROM and assemble a small PCB.
This bundle contains the popular Elektor Sand Clock for Raspberry Pi Pico and the new Elektor Laser Head Upgrade, offering even more options for displaying the time. Not only can you "engrave" the current time in sand, you can now alternatively write it on a glow-in-the-dark foil or create green drawings.
Contents of the bundle
Elektor Sand Clock for Raspberry Pi Pico (normal price: €50)
Elektor Laser Head Upgrade for Sand Clock (normal price: €35)
Elektor Sand Clock for Raspberry Pi (Raspberry Pi-based Eye Catcher)
A standard sand clock just shows how time passes. In contrast, this Raspberry Pi Pico-controlled sand clock shows the exact time by "engraving" the four digits for hour and minute into the layer of sand. After an adjustable time the sand is flattened out by two vibration motors and everything begins all over again.
At the heart of the sand clock are two servo motors driving a writing pen through a pantograph mechanism. A third servo motor lifts the pen up and down. The sand container is equipped with two vibration motors to flatten the sand. The electronic part of the sand clock consists of a Raspberry Pi Pico and an RTC/driver board with a real-time clock, plus driver circuits for the servo motors.
A detailed construction manual is available for downloading.
Features
Dimensions: 135 x 110 x 80 mm
Build time: approx. 1.5 to 2 hours
Included
3x Precut acrylic sheets with all mechanical parts
3x Mini servo motors
2x Vibration motors
1x Raspberry Pi Pico
1x RTC/driver board with assembled parts
Nuts, bolts, spacers, and wires for the assembly
Fine-grained white sand
Elektor Laser Head Upgrade for Sand Clock
The new Elektor Laser Head transforms the Sand Clock into a clock that writes the time on glow-in-the-dark film instead of sand. In addition to displaying the time, it can also be used to create ephemeral drawings. The 5 mW laser pointer, with a wavelength of 405 nm, produces bright green drawings on the glow-in-the-dark film. For best results, use the kit in a dimly lit room. Warning: Never look directly into the laser beam!
The kit includes all the necessary components, but soldering three wires is required.
Note: This kit is also compatible with the original Arduino-based Sand Clock from 2017. For more details, see Elektor Magazine 1-2/2017 and Elektor Magazine 1-2/2018.