For Raspberry Pi, ESP32 and nRF52 with Python, Arduino and Zephyr
Bluetooth Low Energy (BLE) radio chips are ubiquitous from Raspberry Pi to light bulbs. BLE is an elaborate technology with a comprehensive specification, but the basics are quite accessible.
A progressive and systematic approach will lead you far in mastering this wireless communication technique, which is essential for working in low power scenarios.
In this book, you’ll learn how to:
Discover BLE devices in the neighborhood by listening to their advertisements.
Create your own BLE devices advertising data.
Connect to BLE devices such as heart rate monitors and proximity reporters.
Create secure connections to BLE devices with encryption and authentication.
Understand BLE service and profile specifications and implement them.
Reverse engineer a BLE device with a proprietary implementation and control it with your own software.
Make your BLE devices use as little power as possible.
This book shows you the ropes of BLE programming with Python and the Bleak library on a Raspberry Pi or PC, with C++ and NimBLE-Arduino on Espressif’s ESP32 development boards, and with C on one of the development boards supported by the Zephyr real-time operating system, such as Nordic Semiconductor's nRF52 boards.
Starting with a very little amount of theory, you’ll develop code right from the beginning. After you’ve completed this book, you’ll know enough to create your own BLE applications.
With the availability of free and open source C/C++ compilers today, you might wonder why someone would be interested in assembler language. What is so compelling about the RISC-V Instruction Set Architecture (ISA)? How does RISC-V differ from existing architectures? And most importantly, how do we gain experience with the RISC-V without a major investment? Is there affordable hardware available?
The availability of the Espressif ESP32-C3 chip provides a way to get hands-on experience with RISC-V. The open sourced QEMU emulator adds a 64-bit experience in RISC-V under Linux. These are just two ways for the student and enthusiast alike to explore RISC-V in this book.
The projects in this book are boiled down to the barest essentials to keep the assembly language concepts clear and simple. In this manner you will have “aha!” moments rather than puzzling about something difficult. The focus in this book is about learning how to write RISC-V assembly language code without getting bogged down. As you work your way through this tutorial, you’ll build up small demonstration programs to be run and tested. Often the result is some simple printed messages to prove a concept. Once you’ve mastered these basic concepts, you will be well equipped to apply assembly language in larger projects.
Develop innovative hardware-based projects in C
The Raspberry Pi has traditionally been programmed using Python. Although this is a very powerful language, many programmers may not be familiar with it. C on the other hand is perhaps the most commonly used programming language and all embedded microcontrollers can be programmed using it.
The C language is taught in most technical colleges and universities and almost all engineering students are familiar with using it with their projects. This book is about using the Raspberry Pi with C to develop a range of hardware-based projects. Two of the most popular C libraries, wiringPi and pigpio are used.
The book starts with an introduction to C and most students and newcomers will find this chapter invaluable. Many projects are provided in the book, including using Wi-Fi and Bluetooth to establish communication with smartphones.
Many sensor and hardware-based projects are included. Both wiringPi and pigpio libraries are used in all projects. Complete program listings are given with full explanations. All projects have been fully tested and work.
The following hardware-based projects are provided in the book:
Using sensors
Using LCDs
I²C and SPI buses
Serial communication
Multitasking
External and timer interrupts
Using Wi-Fi
Webservers
Communicating with smartphones
Using Bluetooth
Sending data to the cloud
Program listings of all Raspberry Pi projects developed in this book are available on the Elektor website. Readers can download and use these programs in their projects. Alternatively, they can customize them to suit their applications.
An Introduction to Circuit Simulation
LTspice, developed by Analog Devices, is a powerful, fast, and free SPICE simulator, schematic capture, and waveform viewer with a large database of components supported by SPICE models from all over the world. Drawing a schematic in LTspice is easy and fast. Thanks to its powerful graphing features, you can visualize the voltages and currents in a circuit, and also the power consumption of its components and much more.
This book is about learning to design and simulate electronic circuits using LTspice. Among others, the following topics are treated:
DC and AC circuits
Signal diodes and Zener diodes
Transistor circuits including oscillators
Thyristor/SCR, diac, and triac circuits
Operational amplifier circuits including oscillators
The 555 timer IC
Filters
Voltage regulators
Optocouplers
Waveform generation
Digital logic simulation including the 74HC family
SPICE modeling LTspice is a powerful electronic circuit simulation tool with many features and possibilities. Covering them all in detail is not possible in a book of this size. Therefore, this book presents the most common topics like DC and AC circuit analysis, parameter sweeping, transfer functions, oscillators, graphing, etc. Although this book is an introduction to LTspice, it covers most topics of interest to people engaged in electronic circuit simulation.
The book is aimed at electronic/electrical engineers, students, teachers, and hobbyists. Many tested simulation examples are given in the book. Readers do not need to have any computer programming skills, but it will help if they are familiar with basic electronic circuit design and operation principles. Readers who want to dive deeper can find many detailed tutorials, articles, videos, design files, and SPICE circuit models on the Internet.
All the simulation examples used in the book are available as files at the webpage of this book. Readers can use these example circuits for learning or modify them for their own applications.
This bundle includes both volumes of "KiCad Like a Pro" (4th edition 2024). In Fundamentals and Projects (normal price: €49.95), you'll learn how to use KiCad through a practical approach, helping you quickly become productive and start designing your own boards. Advanced Projects and Recipes (normal price: €44.95) allows you to practice your new KiCad skills by challenging yourself with a series of real-world projects.
The latest iteration of KiCad, the world’s best free-to-use Printed Circuit Board tool, is packed with features usually found only in expensive commercial CAD tools. This modern, cross-platform application suite built around schematic and design editors, with auxiliary applications is a stable and mature PCB tool. KiCad 8 is a perfect fit for electronic engineers and makers.
Here are the most significant improvements and features in KiCad 8, both over and under the hood:
Modern user interface, completely redesigned from earlier versions
Improved and customizable electrical and design rule checkers
Theme editor allowing you to customize KiCad on your screen
Ability to import projects from Eagle, CADSTART, and more
Python scripting API
Improved integrated SPICE circuit simulator
Multi-sheet schematics
Filters define selectable elements
Enhanced interactive router helps you draw single tracks and differential pairs with precision
New or enhanced tools to draw tracks, measure distances, tune track lengths, etc.
Advanced interactive router
Built-in bill of materials generator
Realistic ray-tracing capable 3D viewer
Customizable teardrops
Plug-in manager for quick installation of themes, libraries and functionalities such as autorouters and BOM generators
The first book KiCad Like A Pro – Fundamentals and Projects will teach you to use KiCad through a practical approach. It will help you become productive quickly and start designing your own boards. Example projects illustrate the basic features of KiCad, even if you have no prior knowledge of PCB design. The author describes the entire workflow from schematic entry to the intricacies of finalizing the files for PCB production and offers sound guidance on the process.
The second book KiCad Like A Pro – Advanced Projects and Recipes will help you to practice your new KiCad skills by challenging you in a series of real-world projects. The projects are supported by a comprehensive set of recipes with detailed instructions on how to achieve a variety of simple and complex tasks. Design the PCBs for a solar power supply, an LED matrix array, an Arduino-powered datalogger, and a custom ESP32 board. Understand the finer details of the interactive router, how to manage KiCad project teams with Git, how to use an autorouter on 2 and 4-layer PCBs, and much more.
ModbusRTU and ModbusTCP examples with the Arduino Uno and ESP8266 Introduction to PLC programming with OpenPLC, the first fully open source Programmable Logic Controller on the Raspberry Pi, and Modbus examples with Arduino Uno and ESP8266 PLC programming is very common in industry and home automation. This book describes how the Raspberry Pi 4 can be used as a Programmable Logic Controller. Before taking you into the programming, the author starts with the software installation on the Raspberry Pi and the PLC editor on the PC, followed by a description of the hardware. You'll then find interesting examples in the different programming languages complying with the IEC 61131-3 standard. This manual also explains in detail how to use the PLC editor and how to load and execute the programs on the Raspberry Pi. All IEC languages are explained with examples, starting with LD (Ladder Diagram) over ST (Structured Control Language) to SFC (Special Function Chart). All examples can be downloaded from the author's website. Networking gets thorough attention too. The Arduino Uno and the ESP8266 are programmed as ModbusRTU or ModbusTCP modules to get access to external peripherals, reading sensors and switching electrical loads. I/O circuits complying with the 24 V industry standard may also be of interest for the reader. The book ends with an overview of commands for ST and LD. After reading the book, the reader will be able to create his own controllers with the Raspberry Pi.
Projects with Thonny-IDE, uPyCraft-IDE, and ESP32The '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.
This is the second edition of a book aimed at engineers, scientists and hobbyists who want to interface PCs with hardware projects using graphical user interfaces. Desktop and web based applications are covered. The programming language used is Python 3 which is one of the most popular languages around: speed of programming being a key feature.
The book has been revised and updated with emphasis on getting the user to produce practical designs with ease – a text editor is all that is required to produce Python programs.
Hardware interfacing is achieved using an Arduino Uno as a remote slave. A full description and source code of the communication interface is given in the book. The slave provides digital and analogue input and outputs. Multiple Unos can be included in one project with all control code written in Python and running on a PC
One project involves a PIC microcontroller with code provided that can be loaded into the PIC using the Uno. The web applications and server are all implemented in Python allowing you to access your electronic hardware over the Internet. The Raspberry Pi computer can be used as your web server.
An introductory chapter is provided to get you started with using Linux. The book is written for use with Debian or variations including Mint or Ubuntu. All of the programs in the book are freely available, ready to use and experiment with by way of a download from Elektor.
AVR Architecture and Programming An in-depth look at the 8-bit AVR architecture found in ATtiny and ATmega microcontrollers, mainly from a software and programming point of view. Explore the AVR architecture using C and assembly language in Microchip Studio (formerly Atmel Studio) with ATtiny microcontrollers. Learn the details of how AVR microcontrollers work internally, including the internal registers and memory map of ATtiny devices. Program ATtiny microcontrollers using an Atmel-ICE programmer/debugger, or use a cheap hobby programmer, or even an Arduino Uno as a programmer. Most code examples can be run using the Microchip Studio AVR simulator. Learn to write programs for ATtiny microcontrollers in assembly language. See how assembly language is converted to machine code instructions by the assembler program. Find out how programs written in the C programming language end up as assembly language and finally as machine code instructions. Use the Microchip Studio debugger in combination with a hardware USB programmer/debugger to test assembly and C language programs, or use the Microchip Studio AVR simulator. DIP packaged ATtiny microcontrollers are used in this volume for easy use on electronic breadboards, targeting mainly the ATtiny13(A) and ATtiny25/45/85. Learn about instruction timing and clocks in AVR microcontrollers using ATtiny devices. Be on your way to becoming an AVR expert with advanced debugging and programming skills.
From basics to flows for sensors, automation, motors, MQTT, and cloud services
This book is a learning guide and a reference. Use it to learn Node-RED, Raspberry Pi Pico W, and MicroPython, and add these state-of-the-art tools to your technology toolkit. It will introduce you to virtual machines, Docker, and MySQL in support of IoT projects based on Node-RED and the Raspberry Pi Pico W.
This book combines several elements into a platform that powers the development of modern Internet of Things applications. These elements are a flow-based server, a WiFi-enabled microcontroller, a high-level programming language, and a deployment technology. Combining these elements gives you the tools you need to create automation systems at any scale. From home automation to industrial automation, this book will help you get started.
Node-RED is an open-source flow-based development tool that makes it easy to wire together devices, APIs, and online services. Drag and drop nodes to create a flowchart that turns on your lights at sunset or sends you an email when a sensor detects movement. Raspberry Pi Pico W is a version of the Raspberry Pi Pico with added 802.11n Wi-Fi capability. It is an ideal device for physical computing tasks and an excellent match to the Node-RED.
Quick book facts
Project-based learning approach.
Assumes no prior knowledge of flow-based programming tools.
Learn to use essential infrastructure tools in your projects, such as virtual machines, Docker, MySQL and useful web APIs such as Google Sheets and OpenWeatherMap.
Dozens of mini-projects supported by photographs, wiring schematics, and source code. Get these from the book GitHub repository.
Step-by-step instructions on everything.
All experiments are based on the Raspberry Pi Pico W. A Wi-Fi network is required for all projects.
Hardware (including the Raspberry Pi Pico W) is available as a kit.
Downloads
GitHub
Practical Multitasking Fundamentals
Programming embedded systems is difficult because of resource constraints and limited debugging facilities. Why develop your own Real-Time Operating System (RTOS) as well as your application when the proven FreeRTOS software is freely available? Why not start with a validated foundation?
Every software developer knows that you must divide a difficult problem into smaller ones to conquer it. Using separate preemptive tasks and FreeRTOS communication mechanisms, a clean separation of functions is achieved within the entire application. This results in safe and maintainable designs.
Practicing engineers and students alike can use this book and the ESP32 Arduino environment to wade into FreeRTOS concepts at a comfortable pace. The well-organized text enables you to master each concept before starting the next chapter. Practical breadboard experiments and schematics are included to bring the lessons home. Experience is the best teacher.
Each chapter includes exercises to test your knowledge. The coverage of the FreeRTOS Application Programming Interface (API) is complete for the ESP32 Arduino environment. You can apply what you learn to other FreeRTOS environments, including Espressif’s ESP-IDF. The source code is available from GitHub. All of these resources put you in the driver’s seat when it is time to develop your next uber-cool ESP32 project.
What you will learn:
How preemptive scheduling works within FreeRTOS
The Arduino startup “loopTask”
Message queues
FreeRTOS timers and the IDLE task
The semaphore, mutex, and their differences
The mailbox and its application
Real-time task priorities and its effect
Interrupt interaction and use with FreeRTOS
Queue sets
Notifying tasks with events
Event groups
Critical sections
Task local storage
The gatekeeper task
An Ultra-Rapid Programming Course
This book serves as the very first step to for novices to learn Python programming. The book is divided into ten chapters. In the first chapter, readers are introduced to the basics of Python. It has the detailed instructions for installation on various platforms such as macOS, Windows, FreeBSD, and Linux. It also covers the other aspects of Python programming such as IDEs and Package Manager. The second chapter is where the readers get an opportunity to have a detailed hands-on with Python programming. It covers a group of built-in data structures popularly known as Python Collections. The third chapter covers the important concepts of strings, functions, and recursion.
The fourth chapter focuses on the Object-Oriented Programming with Python. The fifth chapter discusses most commonly used custom data structures such as stack and queue. The sixth chapter spurs the creativity of the readers with Python’s Turtle graphics library. The seventh chapter explores animations and game development using the Pygame library. The eighth chapter covers handling data stored in a variety of file formats. The ninth chapter covers the area of Image processing with Wand library in Python. The tenth and the final chapter presents an array of assorted handy topics in Python.
The entire book follows a step-by-step approach. The explanation of the topic is always followed by a detailed code example. The code examples are also explained in suitable detail and they are followed by the output in the form of text or screenshot wherever possible. Readers will become comfortable with Python programming language by closely following the concepts and the code examples in this book. The book also has references to external resources for readers to explore further.
A download of the software code, and links to tutorial videos can be found on the Elektor website.
Practical Introduction to 3D Modeling from Enclosure to Front PanelEmbedding a vintage component, creating a professional looking home for a circuit board, or even designing a complex apparatus complete with a chassis – these and many other challenges turn into a stimulating pleasure with FreeCAD. Once you have internalized the basic processes, there are virtually no limits to your imagination.Starting to use a new software is never straightforward – especially with a tool as versatile as FreeCAD. Manageable, but at the same time easily usable individual components provide the starting point in this book. Putting these components together later results in assemblies.In the FreeCAD universe, a workable trajectory is demonstrated. The described procedure is illustrative so the examples are easily applied to custom tasks. The devices were made by the author and illustrated with photos.Creating a 3D design is requiring some effort but the initial investment pays off soon. Besides the impressive spatial representation of the projects, the extracted drawings yield a solid base for documentation and production. Extended FreeCAD capabilities like the unfolding of sheet metal parts enormously add to efficiency and pushes models forward into practical assembly.Soon you will definitely not want to do without FreeCAD!
Technology is constantly changing. New microcontrollers become available every year. The one thing that has stayed the same is the C programming language used to program these microcontrollers. If you would like to learn this standard language to program microcontrollers, then this book is for you!
Arduino is the hardware platform used to teach the C programming language as Arduino boards are available worldwide and contain the popular AVR microcontrollers from Atmel.
Atmel Studio is used as the development environment for writing C programs for AVR microcontrollers. It is a full-featured integrated development environment (IDE) that uses the GCC C software tools for AVR microcontrollers and is free to download.
At a glance:
Start learning to program from the very first chapter
No programming experience is necessary
Learn by doing – type and run the example programs
A fun way to learn the C programming language
Ideal for electronic hobbyists, students and engineers wanting to learn the C programming language in an embedded environment on AVR microcontrollers
Use the free full-featured Atmel Studio IDE software for Windows
Write C programs for 8-bit AVR microcontrollers as found on the Arduino Uno and MEGA boards
Example code runs on Arduino Uno and Arduino MEGA 2560 boards and can be adapted to run on other AVR microcontrollers or boards
Use the AVR Dragon programmer/debugger in conjunction with Atmel Studio to debug C programs
Develop your own custom home automation devices
Espressif's ESP8266 and ESP32 microcontrollers have brought DIY home automation to the masses. However, not everyone is fluent in programming these microcontrollers with Espressif's C/C++ SDK, the Arduino core, or MicroPython. This is where ESPHome comes into its own: with this project, you don’t program your microcontroller but configure it.
This book demonstrates how to create your own home automation devices with ESPHome on an ESP32 microcontroller board. You’ll learn how to combine all kinds of electronic components and automate complex behaviours. Your devices can work completely autonomously, and connect over Wi-Fi to your home automation gateways such as Home Assistant or MQTT broker.
By the end of this book, you will be able to create your own custom home automation devices the way you want. Thanks to ESPHome and the ESP32, this is within everyone’s grasp.
Set up an ESPHome development environment and create maintainable configurations
Use buttons and LEDs
Sound a buzzer and play melodies
Read measurements from various types of sensors
Communicate over a short distance with NFC, infrared light, and Bluetooth Low Energy
Show information on various types of displays
Downloads
Software
Ready-to-use devices and self-built Arduino nodes in the 'The Things Network' LoRaWAN has developed excellently as a communication solution in the IoT. The Things Network (TTN) has contributed to this. The Things Network was upgraded to The Things Stack Community Edition (TTS (CE)). The TTN V2 clusters were closed towards the end of 2021. This book shows you the necessary steps to operate LoRaWAN nodes using TTS (CE) and maybe extend the network of gateways with an own gateway. Meanwhile, there are even LoRaWAN gateways suitable for mobile use with which you can connect to the TTN server via your cell phone. The author presents several commercial LoRaWAN nodes and new, low-cost and battery-powered hardware for building autonomous LoRaWAN nodes. Registering LoRaWAN nodes and gateways in the TTS (CE), providing the collected data via MQTT and visualization via Node-RED, Cayenne, Thingspeak, and Datacake enable complex IoT projects and completely new applications at very low cost. This book will enable you to provide and visualize data collected with battery-powered sensors (LoRaWAN nodes) wirelessly on the Internet. You will learn the basics for smart city and IoT applications that enable, for example, the measurement of air quality, water levels, snow depths, the determination of free parking spaces (smart parking), and the intelligent control of street lighting (smart lighting), among others.
TINA Design Suite is a professional, powerful and affordable circuit simulator. It is a circuit designer and PCB design software package for analysing, designing, and real-time testing of analogue, digital, IBIS, VHDL, Verilog, Verilog AMS, SystemC, MCU, and mixed electronic circuits and their PCB layouts.
In this book, top-selling Elektor author, Prof. Dr. Dogan Ibrahim aims to teach the design and analysis of electrical and electronic circuits and develop PCB boards using both TINA and TINACloud. The book is aimed at electrical/electronic engineers, undergraduate electronic/electrical engineering students at technical colleges and universities, postgraduate and research students, teachers, and hobbyists. Many tested and working simulation examples are provided covering most fields of analogue and digital electrical/electronic engineering. These include AC and DC circuits, diodes, zener diodes, transistor circuits, operational amplifiers, ladder diagrams, 3-phase circuits, mutual inductance, rectifier circuits, oscillators, active and passive filter circuits, digital logic, VHDL, MCUs, switch-mode power supplies, PCB design, Fourier series, and spectrum. Readers do not need to have any programming experience unless they wish to simulate complex MCU circuits.
Including one-year license of TINACloud Basic Edition (valued at €29)
This book comes with a free licence of TINACloud Basic Edition (valued at €29) for 1 years including all example files in this book. Your personal license code will be automatically sent to you in a separate email immediately after successful payment.
TINACloud is a powerful, cloud-based multi-language online circuit simulator tool that runs in your browser without any installation. TINACloud allows you to analyze & design analog, digital, VHDL, Verilog, Verilog A & AMS, MCU, and mixed electronic circuits including also SMPS, RF, communication, and optoelectronic circuits and test microcontroller applications in a mixed circuit environment.
Learn to use Python productively in real-life scenarios at work and in everyday life
If you have mastered the basics of Python and are wanting to explore the language in more depth, this book is for you. By means of concrete examples used in different applications, the book illustrates many aspects of programming (e.g. algorithms, recursion, data structures) and helps problem-solving strategies. Including general ideas and solutions, the specifics of Python and how these can be practically applied are discussed.
Python 3 for Science and Engineering Applications includes:
practical and goal-oriented learning
basic Python techniques
modern Python 3.6+ including comprehensions, decorators and generators
complete code available online
more than 40 exercises, solutions documented online
no additional packages or installation required, 100% pure
Python Topics cover:
identifying large prime numbers and computing Pi
writing and understanding recursive functions with memorisation
computing in parallel and utilising all system cores
processing text data and encrypting messages
comprehending backtracking and solving Sudokus
analysing and simulating games of chance to develop optimal winning strategies
handling genetic code and generating extremely long palindromes
Downloads
Software
Example projects with Node-RED, MQTT, WinCC SCADA, Blynk, and ThingSpeak
This comprehensive guide unlocks the power of Modbus TCP/IP communication with Arduino. From the basics of the Modbus protocol right up to full implementation in Arduino projects, the book walks you through the complete process with lucid explanations and practical examples.
Learn how to set up Modbus TCP/IP communication with Arduino for seamless data exchange between devices over a network. Explore different Modbus functions and master reading and writing registers to control your devices remotely. Create Modbus client and server applications to integrate into your Arduino projects, boosting their connectivity and automation level.
With detailed code snippets and illustrations, this guide is perfect for beginners and experienced Arduino enthusiasts alike. Whether you‘re a hobbyist looking to expand your skills or a professional seeking to implement Modbus TCP/IP communication in your projects, this book provides all the knowledge you need to harness the full potential of Modbus with Arduino.
Projects covered in the book:
TCP/IP communication between two Arduino Uno boards
Modbus TCP/IP communication within the Node-RED environment
Combining Arduino, Node-RED, and Blynk IoT cloud
Interfacing Modbus TCP/IP with WinCC SCADA to control sensors
Using MQTT protocol with Ethernet/ESP8266
Connecting to ThingSpeak IoT cloud using Ethernet/ESP8266
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).
Create Models for 3D Printing, CNC Milling, Process Communication and DocumentationEngineers dread designing 3D models using traditional modeling software. OpenSCAD takes a refreshing and completely different approach. Create your models by arranging geometric solids in a JavaScript-like language, and use them with your 3D printer, CNC mill, or process communication.OpenSCAD differs from other design systems in that it uses programmatical modeling. Your model is made up of primitives that are invoked using a C-, Java- or Python-like language. This approach to model design is close to the “mechanical work” done in the real world and appeals to engineers and others who are not a member of the traditional creative class.OpenSCAD also provides a wide variety of comfort functions that break the 1:1 relationship between code and geometry. This book demonstrates the various features of the programming language using practical examples such as a replacement knob for a LeCroy oscilloscope, a wardrobe hanger, a container for soap dispensers, and various other real-life examples.Written by an engineer with over 15 years of experience, this book is intended for Linux and Windows users alike. If you have programming experience in any language, this book will have you producing practical three-dimensional objects in short order!
Programming the Finite State Machine with 8-Bit PICs in Assembly and C
Andrew Pratt provides a detailed introduction to programming PIC microcontrollers, as well as a thorough overview of the Finite State Machine (FSM) approach to programming. Most of the book uses assembly programming, but do not be deterred. The FSM gives a structure to a program, making it easy to plan, write, and modify. The last two chapters introduce programming in C, so you can make a direct comparison between the two techniques. The book references the relevant parts of the Microchip datasheet as familiarity with it is the best way to discover detailed information.
This book is aimed at Microsoft Windows and Linux users. To keep your costs to a minimum and to simplify the toolchain, specific applications are provided as a free download to enable you to use an FTDI serial lead as the programmer. The assembler used is the open-source "gpasm". All programming can be done in a text editor. There are detailed instructions on how to perform the necessary installations on Windows, Linux Debian, and derivatives such as Ubuntu and Fedora. For programming in C, Microchip's XC8 compiler is used from the command line. In addition to the programming applications, two serial read and serial write applications can be used for communicating with the PICs from a computer.
A voltmeter project including practical instructions on building a circuit board from scratch is included. All theory is covered beforehand, including how to do integer arithmetic in assembly.
Two PICs are covered: the PIC12F1822 and the PIC16F1823. Both can run at 32 MHz with an internal oscillator. You do not need to buy a factory-made development board and programmer. With relatively inexpensive parts including a serial lead, microcontroller, a few resistors, and LEDs, you can get started exploring embedded programming.
Links
Updated Programmer
Getting started with the world’s best open-source PCB tool
The latest iteration of KiCad, the world’s best free-to-use Printed Circuit Board tool, is packed with features usually found only in expensive commercial CAD tools. This modern, cross-platform application suite built around schematic and design editors, with auxiliary applications is a stable and mature PCB tool. KiCad 8 is a perfect fit for electronic engineers and makers.
Here are the most significant improvements and features in KiCad 8, both over and under the hood:
Modern user interface, completely redesigned from earlier versions
Improved and customizable electrical and design rule checkers
Theme editor allowing you to customize KiCad on your screen
Ability to import projects from Eagle, CADSTART, and more
Python scripting API
Improved integrated SPICE circuit simulator
Multi-sheet schematics
Filters define selectable elements
Enhanced interactive router helps you draw single tracks and differential pairs with precision
New or enhanced tools to draw tracks, measure distances, tune track lengths, etc.
Advanced interactive router
Built-in bill of materials generator
Realistic ray-tracing capable 3D viewer
Customizable teardrops
Plug-in manager for quick installation of themes, libraries and functionalities such as autorouters and BOM generators
This book will teach you to use KiCad through a practical approach. It will help you become productive quickly and start designing your own boards. Example projects illustrate the basic features of KiCad, even if you have no prior knowledge of PCB design.
The author describes the entire workflow from schematic entry to the intricacies of finalizing the files for PCB production and offers sound guidance on the process. Further full-fledged projects, of incremental difficulty, will be presented in a second book, together with a variety of advanced recipes.
This book is about teaching the Python programming language using the Raspberry Pi 4 computer. The book makes an introduction to Raspberry Pi 4 and then teaches Python with the topics: variables, strings, arrays, matrices, tuples, lists, dictionaries, user functions, flow of control, printing, keyboard input, graphics, GUI, object oriented programming and many more topics.
The book is aimed for beginners, students, practising engineers, hobbyists, and for anyone else who may want to learn to program in Python.
The book includes many example programs and case studies. All the example programs and case studies have been tested fully by the author and are all working. The example programs aim to teach the various programming concepts of Python. The case studies cover the use of Python in the analysis and design of electronic circuits. Some of the case study topics are:
Resistor colour code identification
Resistive potential divider circuits
Resistive attenuator design
Zener diode voltage regulator design
RC and RLC transient circuits
Circuit frequency response
Saving data on external memory stick
Mesh and node circuit analysis using matrices
Resonance in RLC circuits
Transistor Biasing analysis
Transistor amplifier design
Design of active filters
Interfacing hardware with GPIO, I²C and SPI
Using Wi-Fi with Python and TCP/IP and UDP programs
Using Bluetooth from Python
Full program listings of all the programs used in the book are available at the Elektor website of the book. Readers should be able just to copy and use these programs in their Raspberry Pi projects without any modifications.