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
Easy and Affordable Digital Signal Processing
The aim of this book is to teach the basic principles of Digital Signal Processing (DSP) and to introduce it from a practical point of view using the bare minimum of mathematics. Only the basic level of discrete-time systems theory is given, sufficient to implement DSP applications in real time. The practical implementations are described in real time using the highly popular ESP32 DevKitC microcontroller development board. With the low cost and extremely popular ESP32 microcontroller, you should be able to design elementary DSP projects with sampling frequencies within the audio range. All programming is done using the popular Arduino IDE in conjunction with the C language compiler.
After laying a solid foundation of DSP theory and pertinent discussions on the main DSP software tools on the market, the book presents the following audio-based sound and DSP projects:
Using an I²S-based digital microphone to capture audio sound
Using an I²S-based class-D audio amplifier and speaker
Playing MP3 music stored on an SD card through an I²S-based amplifier and speaker
Playing MP3 music files stored in ESP32 flash memory through an I²S-based amplifier and speaker
Mono and stereo Internet radio with I²S-based amplifiers and speakers
Text-to-speech output with an I²S-based amplifier and speaker
Using the volume control in I²S-based amplifier and speaker systems
A speaking event counter with an I²S-based amplifier and speaker
An adjustable sinewave generator with I²S-based amplifier and speaker
Using the Pmod I²S2 24-bit fast ADC/DAC module
Digital low-pass and band-pass real-time FIR filter design with external and internal A/D and D/A conversion
Digital low-pass and band-pass real-time IIR filter design with external and internal A/D and D/A conversion
Fast Fourier Transforms (FFT)
De Argon NEO 5 is speciaal opnieuw ontworpen om aan de hoge eisen van de Raspberry Pi 5 te voldoen. Hij biedt een indrukwekkende oplossing voor warmteafvoer met zowel passieve als actieve koeling.
Aluminium behuizing met passieve koelribben die fungeren als koellichaam
Ventilatie openingen zorgen ervoor dat koele lucht in de behuizing kan komen
De 30 mm PWM-ventilator regelt deze luchtstroom en verwijdert tevens warme lucht via de ventilatie openingen
Eenvoudig en mooi vormgegeven
Gemaakt van een aluminiumlegering en gepolijst met een zwart-rode afwerking voor een verbluffend mooie vormgeving.
Eenvoudige montage van de Raspberry Pi 5 in de 3-delige behuizing.
De kleine afmeting maakt het mogelijk om hem overal mee naartoe te nemen, of eenvoudig te monteren op een gewenst apparaat met behulp van ingebouwde bevestigingspunten.
Volledige toegang tot alle aansluitpoorten vanwege de verwijderbare cover.
Superieure bescherming en veiligheid
Hoge kwaliteit aluminium helpt het Raspberry Pi 5 bordje te beschermen tegen fysieke schade.
De behuizing heeft schroeven op de cover om zo de aansluitpoorten veilig af te schermen wanneer ze niet in gebruik zijn.
Optioneel is er nog een SD-kaart beschermhoesje om uw data nog beter te beschermen.
Ondersteuning op maat van de Raspberry Pi 5
Geïntegreerde aan/uit-knop
LED-licht display
Easy and Affordable Digital Signal ProcessingThe aim of this book is to teach the basic principles of Digital Signal Processing (DSP) and to introduce it from a practical point of view using the bare minimum of mathematics. Only the basic level of discrete-time systems theory is given, sufficient to implement DSP applications in real time. The practical implementations are described in real time using the highly popular ESP32 DevKitC microcontroller development board. With the low cost and extremely popular ESP32 microcontroller, you should be able to design elementary DSP projects with sampling frequencies within the audio range. All programming is done using the popular Arduino IDE in conjunction with the C language compiler.After laying a solid foundation of DSP theory and pertinent discussions on the main DSP software tools on the market, the book presents the following audio-based sound and DSP projects:
Using an I²S-based digital microphone to capture audio sound
Using an I²S-based class-D audio amplifier and speaker
Playing MP3 music stored on an SD card through an I²S-based amplifier and speaker
Playing MP3 music files stored in ESP32 flash memory through an I²S-based amplifier and speaker
Mono and stereo Internet radio with I²S-based amplifiers and speakers
Text-to-speech output with an I²S-based amplifier and speaker
Using the volume control in I²S-based amplifier and speaker systems
A speaking event counter with an I²S-based amplifier and speaker
An adjustable sinewave generator with I²S-based amplifier and speaker
Using the Pmod I²S2 24-bit fast ADC/DAC module
Digital low-pass and band-pass real-time FIR filter design with external and internal A/D and D/A conversion
Digital low-pass and band-pass real-time IIR filter design with external and internal A/D and D/A conversion
Fast Fourier Transforms (FFT)
Kick off with the MAX1000 and VHDPlus
Ready to Master FPGA Programming? In this guide, we’re diving into the world of Field Programmable Gate Arrays (FPGAs) – a configurable integrated circuit that can be programmed after manufacturing. Imagine bringing your ideas to life, from simple projects to complete microcontroller systems!
Meet the MAX1000: a compact and budget-friendly FPGA development board packed with features like memory, user LEDs, push-buttons, and flexible I/O ports. It’s the ideal starting point for anyone wanting to learn about FPGAs and Hardware Description Languages (HDLs).
In this book, you’ll get hands-on with the VHDPlus programming language – a simpler version of VHDL. We’ll work on practical projects using the MAX1000, helping you gain the skills and confidence to unleash your creativity.
Get ready for an exciting journey! You’ll explore a variety of projects that highlight the true power of FPGAs. Let’s turn your ideas into reality and embark on your FPGA adventure – your journey starts now!
Exciting Projects You’ll Find in This Book
Arduino-Driven BCD to 7-Segment Display Decoder
Use an Arduino Uno R4 to supply BCD data to the decoder, counting from 0 to 9 with a one-second delay
Multiplexed 4-Digit Event Counter
Create an event counter that displays the total count on a 4-digit display, incrementing with each button press
PWM Waveform with Fixed Duty Cycle
Generate a PWM waveform at 1 kHz with a fixed duty cycle of 50%
Ultrasonic Distance Measurement
Measure distances using an ultrasonic sensor, displaying the results on a 4-digit 7-segment LED
Electronic Lock
Build a simple electronic lock using combinational logic gates with push buttons and an LED output
Temperature Sensor
Monitor ambient temperature with a TMP36 sensor and display the readings on a 7-segment LED
Downloads
Software
Kick off with the MAX1000 and VHDPlus
Ready to Master FPGA Programming? In this guide, we’re diving into the world of Field Programmable Gate Arrays (FPGAs) – a configurable integrated circuit that can be programmed after manufacturing. Imagine bringing your ideas to life, from simple projects to complete microcontroller systems!
Meet the MAX1000: a compact and budget-friendly FPGA development board packed with features like memory, user LEDs, push-buttons, and flexible I/O ports. It’s the ideal starting point for anyone wanting to learn about FPGAs and Hardware Description Languages (HDLs).
In this book, you’ll get hands-on with the VHDPlus programming language – a simpler version of VHDL. We’ll work on practical projects using the MAX1000, helping you gain the skills and confidence to unleash your creativity.
Get ready for an exciting journey! You’ll explore a variety of projects that highlight the true power of FPGAs. Let’s turn your ideas into reality and embark on your FPGA adventure – your journey starts now!
Exciting Projects You’ll Find in This Book
Arduino-Driven BCD to 7-Segment Display Decoder
Use an Arduino Uno R4 to supply BCD data to the decoder, counting from 0 to 9 with a one-second delay
Multiplexed 4-Digit Event Counter
Create an event counter that displays the total count on a 4-digit display, incrementing with each button press
PWM Waveform with Fixed Duty Cycle
Generate a PWM waveform at 1 kHz with a fixed duty cycle of 50%
Ultrasonic Distance Measurement
Measure distances using an ultrasonic sensor, displaying the results on a 4-digit 7-segment LED
Electronic Lock
Build a simple electronic lock using combinational logic gates with push buttons and an LED output
Temperature Sensor
Monitor ambient temperature with a TMP36 sensor and display the readings on a 7-segment LED
Downloads
Software
Multitasking and multiprocessing have become a very important topic in microcontroller-based systems, namely in complex commercial, domestic, and industrial automation applications. As the complexity of projects grows, more functionalities are demanded from the projects. Such projects require the use of multiple inter-related tasks running on the same system and sharing the available resources, such as the CPU, memory, and input-output ports. As a result of this, the importance of multitasking operations in microcontroller-based applications has grown steadily over the last few years. Many complex automation projects now make use of some form of a multitasking kernel.
This book is project-based and its main aim is to teach the basic features of multitasking using the Python 3 programming language on Raspberry Pi. Many fully tested projects are provided in the book using the multitasking modules of Python. Each project is described fully and in detail. Complete program listings are given for each project. Readers should be able to use the projects as they are, or modify them to suit their own needs.
The following Python multitasking modules have been described and used in the projects:
Fork
Thread
Threading
Subprocess
Multiprocessing
The book includes simple multitasking projects such as independently controlling multiple LEDs, to more complex multitasking projects such as on/off temperature control, traffic lights control, 2-digit, and 4-digit 7-segment LED event counter, reaction timer, stepper motor control, keypad based projects, car park controller, and many more. The fundamental multitasking concepts such as process synchronization, process communication, and memory sharing techniques have been described in projects concerning event flags, queues, semaphores, values, and so on.
Features
324x324 pixels camerasensor: gebruik een van de kernen in Portenta om beeldherkenningsalgoritmes uit te voeren met de OpenMV for Arduino editor
100 Mbps Ethernet connector: verbind uw Portenta H7 met het bekabelde Internet
2 onboard microfoons voor richtingsgevoelige geluidsdetectie: vang en analyseer geluid in real-time
JTAG connector: voer low-level debugging uit van uw Portenta bord of speciale firmware updates met behulp van een externe programmer
SD-Card aansluiting: sla uw vastgelegde gegevens op de kaart op, of lees configuratiebestanden
Het Vision Shield is ontworpen om bovenop de Arduino Portenta familie te passen. De Portenta boards zijn voorzien van multicore 32-bit ARM® Cortex™ processoren die draaien op honderden megahertz, met megabytes aan programmageheugen en RAM. Portenta boards worden geleverd met WiFi en Bluetooth.Embedded computer vision gemakkelijk gemaaktArduino heeft samengewerkt met OpenMV om u een gratis licentie voor de OpenMV IDE aan te bieden, een eenvoudige manier om computervisie te gebruiken met MicroPython als programmeerparadigma. Download de OpenMV voor Arduino Editor van onze professionele tutorials site en blader door de voorbeelden die we voor u hebben voorbereid in de OpenMV IDE. Bedrijven over de hele wereld bouwen al hun commerciële producten op basis van deze eenvoudig-maar-krachtige benadering voor het detecteren, filteren en classificeren van afbeeldingen, QR-codes, en anderen. Debugging met professioneel gereedschapSluit uw Portenta H7 aan op een professionele debugger via de JTAG connector. Gebruik professionele software tools zoals die van Lauterbach of Segger bovenop uw board om uw code stap voor stap te debuggen. Het Vision Shield maakt de benodigde pinnen vrij voor het aansluiten van uw externe JTAG.
Camera
Himax HM-01B0 cameramodule
Resolutie
320 x 320 actieve pixel resolutie met ondersteuning voor QVGA
beeldsensor
Hoge gevoeligheid 3.6? BrightSense™ pixel technologie
Microfoon
2 x MP34DT05
Lengte
66 mm
Breedte
25 mm
Gewicht
11 gr
Voor meer informatie, bekijk de tutorials die door Arduino hier.
The short-wave technique has a very particular appeal: It can easily bridge long distances. By reflecting short-wave signals off the conductive layers of the ionosphere, they can be received in places beyond the horizon and therefore can reach anywhere on earth. Although technology is striving for ever higher frequencies, and radio is usually listened to on FM, DAB+, satellite or the Internet, modern means of transmission require extensive infrastructure and are extremely vulnerable. In the event of a global power outage, there is nothing more important than the short-wave. Amateur radio is not only a hobby, it’s also an emergency radio system!
Elektor’s SDR-Shield is a versatile shortwave receiver up to 30 MHz. Using an Arduino and the appropriate software, radio stations, morse signals, SSB stations, and digital signals can be received.
In this book, successful author and enthusiastic radio amateur, Burkhard Kainka describes the modern practice of software defined radio using the Elektor SDR Shield. He not only imparts a theoretical background but also explains numerous open source software tools.
Space, the final frontier, will become more and more popular. The space industry is continually growing and new products and services will be required. Innovation is needed for the development of this industry. Today it is no longer possible to follow all the events in field of space. The space market is growing and activities are increasing, especially the market for small-satellites.
This book wants to help close the gap and encourage electronic engineers to enter into the fascinating field of space electronics. One of the main difficulties is finding people with knowledge of space electronics design. Nowadays companies have to invest a lot of time and resources to instruct electronic engineers with no experience of space. Only a brief and basic introduction of this topic is typically achieved at university in space engineering lectures. Professionals with practical experience and the necessary theoretical knowledge are scarce. Companies from the space sector are searching for staff with knowledge of space electronics.
This book will bring space closer aspiring to the space electronic hobbyists.
A Handbook on DIY
Nowadays, security problems are rarely properly solved or correctly addressed. Electronic security is only part of the chain in making a system secure. Electronic security is usually addressed as network or software security, neglecting other aspects, but the chain is only as strong as its weakest link.
This book is about electronic hardware security, with an emphasis on problems that you can solve on a shoestring DIY budget. It deals mostly with secure communications, cryptosystems, and espionage. You will quickly appreciate that you can’t simply buy a trustworthy and reliable cryptosystem off the shelf. You will then realise that this applies equally to individuals, corporations, and governments.
If you want to increase your electronic security awareness in a world already overcrowded with networks of microphones and cameras, this is a book for you. Furthermore, if you want to do something DIY by designing and expanding upon simple electronic systems, please continue reading. Some of the devices described are already published as projects in the Elektor magazine. Some are still ideas yet to be worked out.
Complexity is the main enemy of security, so we'll try to keep to simple systems. Every chapter will analyse real-life espionage events or at least several hypothetical scenarios that will hopefully spark your imagination. The final goal is to build a security-conscious mindset (or “to get into a head of a spy”) which is necessary to recognise possible threats beforehand, to design a truly secure system.
Don’t bother reading if:
you think you and your secrets are 100% safe and secure
you think somebody else can effectively handle your security
you think conspiracy theories only exist in theory – Telefunken’s masterpiece the “FS-5000 Harpoon” was built on one!
The Siglent SDS814X HD digital storage oscilloscope is based on 2 GSa/s, 12-bit Analog-Digital Converters and front ends with excellent noise floor performance. With a 100 MHz bandwidth, and a maximum record length of 50 Mpts, and the capability to analyze 4 analog channels alongside 16 digital channels, the SDS814X HD is perfectly suited for mixed signal analysis.
Kenmerken
12-bit High Resolution
12-bit Analog-Digital Convertors with sample rate up to 2 GSa/s
Front ends with 70 μVrms noise floor @ 100 MHz bandwidth
2/4 analog channels, up to 700 MHz bandwidth
SPO technology
Waveform capture rate up to 80,000 wfm/s (normal mode), and 500,000 wfm/s (sequence mode)
Supports 256-level intensity grading and color temperature display modes.
Up to 50 Mpts record length
Digital trigger system
Intelligent trigger: Edge, Slope, Pulse width, Window, Runt, Interval, Dropout, Pattern, Video (HDTV supported), Qualified, Nth edge, Delay, Setup/Hold time.
Serial bus triggering and decoder, supports protocols I²C, SPI, UART, CAN, LIN.
Segmented acquisition (Sequence) mode, dividing the maximum record length into multiple segments (up to 80,000), according to trigger conditions set by the user, with a very small dead time between segments to capture the qualifying event.
History waveform record (History) function, the maximum recorded waveform length is 80,000 frames.
Automatic measurements on 50+ parameters, supports statistics with histogram, track, trend, Gating measurement, and measurements on Math, History and Ref.
4 Math traces (2 Mpts FFT, addition, subtraction, multiplication, division, integration, differential, square root, etc.), supports formula editor.
Abundant data analysis functions such as Search, Navigate, Counter, Bode plot and Power Analysis
High Speed hardware-based Mask Test function, with Mask Editor tool for creating user-defined masks
16 digital channels (optional)
25 MHz waveform generator (optional)
7" TFT-LCD display with 1024 x 600 resolution; Capacitive touch screen supports multi-touch gestures.
Interfaces include: USB Hosts, USB Device (USBTMC), LAN (VXI-11/Telnet/Socket), Pass/Fail, Trigger Out
Built-in web server supports remote control over the LAN port using a web browser. Supports SCPI remote control commands. Supports external mouse and keyboard. Supports NTP.
Specificaties
Analog Channels
4
Bandwidth
100 MHz
Vertical resolution
12-bit
Sample rate (Max.)
One channel mode: 2 GSa/sTwo channel mode: 1 GSa/sFour channel mode: 500 MSa/s
Memory depth (Max.)
One channel mode: 50 Mpts/chTwo channel mode: 25 Mpts/chFour channel mode: 10Mpts/ch
Waveform capture rate (Max.)
Normal mode: 80,000 wfm/sSequence mode: 500,000 wfm/s
Trigger type
Edge, Slope, Pulse width, Window, Runt, Interval, Dropout, Pattern, Video, Qualified, Nth edge, Delay, Setup/Hold time, Serial
Serial trigger and decode (Standard)
I²C, SPI, UART, CAN, LIN
Measurement
50+ parameters, statistics, histogram, trend, and track supported
Math
4 traces 2 Mpts FFT, Filter, +, -, x, ÷, ∫dt, d/dt, √, Identity, Negation, Absolute, Sign, ex, 10x, ln, lg, Interpolation, MaxHold, MinHold, ERES, Average. Supports formula editor
Data analysis
Search, Navigate, History, Mask Test, Counter, Bode plot, and Power Analysis
Digital channel (optional)
16-channel; maximum sample rate up to 1 GSa/s; record length up to 10 Mpts
USB AWG module (option)
One channel, 25 MHz, sample rate of 125 MHz, wave length of 16 kpts, isolated output
I/O
2x USB 2.0 Host, USB 2.0 Device, 10/100 M LAN, Auxiliary output (TRIG OUT, PASS/FAIL), SBUS (Siglent MSO)
Probe (Standard)
Passive probe PB470 for each channel
Display
7 TFT-LCD with capacitive touch screen (1024x600)
Inbegrepen
1x Siglent SDS814X Oscilloscope
4x Passive probe (100 MHz) PP510
1x Power cord (EU)
1x USB cable
1x Certificate of calibration
1x Quick start
Downloads
Datasheet
Manual
Programming guide