The XIAO ESP32-C3 board combines the ultra-compact form factor of the XIAO series with the full capabilities of the ESP32-C3 chip, including integrated Wi-Fi and Bluetooth 5.0. This book is a comprehensive, hands-on guide to getting the most out of this powerful yet affordable development board.
The author takes readers from the fundamentals to advanced projects. Starting with LED blinking and dimming, the book progresses to ADC and PWM for precise sensor interfacing and PWM-controlled lighting effects before moving on to building practical, real-world applications, including:
A Wi-Fi weather station with an OLED display and real-time online weather data
An ultrasonic parking assistant with audible feedback
A refrigerator monitoring probe with climate sensing and Deep Sleep for years of battery operation
A retro Pong game controlled by a touch-free sensor
A microphone-based party app that responds to claps
And much more: lighting control, reaction-time measurement, mains frequency analysis, soil moisture sensing, ambient LED lighting, and 7-segment displays
Learn to interface and program hardware devices in a wide range of useful applications, using ARM7 microcontrollers and the C programming language. Examples covered in full detail include a simple LED to a multi-megabyte SD card running the FAT file system.
Features of this book
Build prototype circuits on breadboard or Veroboard and interface to ARM microcontrollers.
A 32-bit ARM7 microcontroller is used in interfacing and software examples.
Interfacing principles apply to other ARM microcontrollers and other non-ARM microcontrollers as well.
Example programs are written in the C programming language.
Use only free or open source software.
Download and install all programming tools from the Internet.
Template project files are provided for easy project creation.
Hardware
Interface to LEDs, transistors, optocouplers, relays, solenoids, switches, keypads, LCD displays, seven segment displays, DC motors, stepper motors, external analogue signals using the ADC, RS232, RS-485, TWI, USB, SPI and SD memory cards.
Software
Once hardware has been interfaced to a microcontroller, software must be written to control the hardware. You will learn how to write programs to operate externally interfaced hardware devices, use timers and interrupts. Also learn how to port FAT file system code for use with an SD memory card, program the PWM to produce an audio sine wave, program the PWM to speed control a DC motor and more.
A chapter on more advanced ARM microcontrollers is included with an overview of some of the newest ARM microcontrollers and their features.
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
Concrétisez vos rêves, réalisez les projets les plus fous : un odomètre pour la roue de votre hamster, la surveillance complètement automatisée de votre fourmilière avec interface web, ou le Sandwich-O-Mat – une machine qui grille les sandwichs de votre choix.Avec les cartes Arduino et le mouvement DIY (« fais-le toi-même ») ou maker, se mettre à programmer des microcontrôleurs est devenu un jeu d'enfant. Une deuxième révolution a eu lieu : des développeurs ingénieux ont mis sur le marché de petites cartes – appelées « shields » ou modules – qui simplifient considérablement l'utilisation d'autres dispositifs. Ces petits modules contiennent tous les composants électroniques nécessaires pour la connexion au microcontrôleur ; quelques fils avec des fiches suffisent pour le raccordement, ce qui évite d'avoir à câbler et fait gagner du temps. En outre, il est également possible de manipuler de minuscules composants dépourvus de pattes de connexion (ceux de type CMS).ProjetsArduino et le monde extérieurCapteur BMP180, introduction aux bibliothèques et à l'I²CInitiation aux entrées/sorties avec un shield polyvalentAdaptateur I²C pour LCD et afficheurs à matrice de pointsShield clavier & LCDConvertisseur de niveauW5100 : connexion à internetShields d'extension des entrées/sortiesRelais et relais statiquesShield multifonction : unité de commande universelleConnexion d'un lecteur de carte SD par SPITouches et afficheurs à 7 segmentsConvertisseur analogique/numérique à 16 bitsConvertisseur numérique/analogique MCP4725Pilote de servomoteurs à 16 voies PWMLecteur MP3Enregistreur de données GPS avec stockage sur carte SDCapteur tactileJoystickSHT31 : température et humiditéCapteur d'UV-A VEML6070Temps de vol VL53L0XMesure de distance à ultrasonsAfficheur matriciel à LED à base de MAX7219Horloge en temps réel DS3231Circuit d'extension de port MCP23017Communication radio à 433 MHzGyroscope MPU-6050Accéléromètre ADXL345LED RVB WS2812Cartes d'alimentationCapteurs de gaz MQ-xxCapteur de dioxyde de carbone (CO2)Capteur de courant ACS712Capteur de courant INA219Pilote de moteur L298Kit RFID MFRC522Moteur pas à pas 28BYJ-48Carte avec pilote de moteur ultra-silencieux TMC2209Potentiomètre numérique X9C10xÉcran couleur TFT avec contrôleur/pilote ST7735Écran à encre électroniqueModule BluetoothCompteur GeigerModule GSM SIM800LMultiplexeur I²CModule CAN (Controller Area Network)
Elektor GREEN and GOLD members can download their digital edition here.
Not a member yet? Click here.
The Raspberry Pi 5A Huge Improvement From Its Predecessor
AI in the Electronics LabGoogle Bard and Flux Copilot Put to the Test
Arduino Nano Waveform GeneratorNano + Code = Function Generator
Solar-Powered Christmas GarlandAn Eco-Friendly Solution for Garnishing Your Balcony
USB Killer DetectorBetter Safe Than Sorry
A Simple CNCed EnclosureWith Autodesk Fusion 360 for Personal Use
Low-Volume Board ProductionWith and without Assembly
IoT Simulation Simplified with WokwiDeveloper Uri Shaked on Design, Software, and More
A Bare-Metal Programming Guide (Part 3)CMSIS Headers, Automatic Testing, and a Web Server
LoRa, a Swiss Army Knife (2)The Hardware and Software
MEMS Microphone Design and Construction
Tools to Try Before You SolderSimulation and 3D Modeling Tools That Can Be Used for Free
New Tools From Microchip!PICkit 5 and MPLAB ICD 5 Available Now!
Rapid Prototyping of Flexible, Stretchable ElectronicsHow the Voltera NOVA Speeds Up Innovation in Wearable Electronic Systems
Galvanic IsolationUsing Phototransistor Optocouplers Successfully
The Complex Solution or the Anybus Solution?Embedded Industrial Ethernet in 2 Days Rather Than Many Months
Your Essential DFM ChecklistHow to Start Designing for Manufacture
3D Printing FilamentsTypes, Features and Use in Prototyping
Specialists for Effective Signal Analysis from ELF to EHF BandAaronia’s latest real-time SPECTRAN® V6 series spectrum analyzers
Challenges of DFM Analysis for Flex and Rigid-Flex Design
Setting Up an SMT Line
The Right Combination for a Reliable Assembly
Revolutionizing IndustriesThe Rise of Autonomous Mobile Robots (AMRs)
Evolved for More ChallengesRohde & Schwarz Adds Eight-Channel R&S MXO 5 to Next-Generation Oscilloscopes
Starting Out in Electronics……Amplifying Differences
Mini Reflow PlateFor Assembling or Repairing Small SMD Circuits
Don’t Start with a Prototype – Start with a Pretotype!Check That a Market Exists for Your Product Before Warming Your Soldering Iron
2023: An AI OdysseyGetting Help Designing a Physical Project
Brussels Is InnovatingSupport for Deep Tech
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
Elektor GREEN and GOLD members can download their digital edition here.
Not a member yet? Click here.
Digital Load for High-Current TestingFrom Necessity to Innovation
Vocal RemoverInstant Karaoke Circuit
Audio A/B Selector With Gain ControlSwitches from Microphone to Line Inputs
Better Charging for the LIR2032Be Kind to Your Coin Cells
Touch Sensing Made SimpleA DIY Guide for Any Microcontroller
Universal Infrared Remote SwitchA New Life for Old Remotes
Microcontroller-Powered Moo BoxMaking Playful Sounds With a Microcontroller
USB Battery Interface
Powering Low-Draw Devices With Power BanksA “Stay Alive” Solution
Small Class-A Audio Amplifier With Current OutputDrive Speakers with Current Instead of Voltage
Pseudo-Balanced ModuleHigh CMRR with Unbalanced Audio Links
Ni-MH Cells Automatic ChargerRefill All Your Battery Packs in One Go!
Thyristor-Based Power Supply Protection
Fingerprint Sensor SwitchA Useful Proof-of-Identity Device
DC-DC 3-A Power ConverterUpgrade Your Fixed-Voltage Sources
Remote Water Heater MonitorVoltage and Current Detection for AC Lines
Attenuators for Audio Signals (1)Adjustable Via Jumpers
Pimp My Car Battery Charger (Part 1)Don’t Throw It Away, Mod It!
A Board for the Blue OnePCB for Alps Motorized Potentiometer with Feedback
50-Hz Reference from 60-Hz Mains VoltageHow to Use 50-Hz Electronics in 60-Hz Environments
Digital IsolatorsRealizing Galvanic Isolation Easily
Compact 12-W Hi-Fi Mono AmplifierSmall But Powerful
LM386 Ramp Generator
Three-Phase GeneratorWith Raspberry Pi Pico
Door Opener for the Musically Talented
Elektor Classic: Surf SynthesizerOcean Watersports Background Sound Generator (OWBSG)
Pimp my Car Battery Charger (Part 2)Don’t Throw It Away, Mod It!
Lamp Current MonitorWith a Raspberry Pi Pico
Infrared Telegraphy
Fnirsi SWM-10Repair Battery Packs With This Portable Intelligent Spot Welding Machine
Stereo Audio Codec for the ESP32 and Co.No Need to Be Afraid of Audio Measurement Technology
Tin Soldering TechniquesMake Them Well Right Away!
Attenuators for Audio Signals (2)Switching Via Relays
USB-C PowerDrawing Power from USB-C Power Adapters
Three Circuits with Two and Three Counter ICs4017 ICs Working Together
Active Components – The Diode
A Timer For Ultra-Long DelaysSet It, and Forget It!
Jack In and Jack OutA Useful Insert Option for Audio Circuits
Power an ESP32 from a Single Li-ion Cell
Hexadoku
Open-Source-Code mit Arduino IDE und PlatformIO
Autonomes Fahren: GPS, Accelerometer, Gyroskop
PS3-Controller
Mikrocontroller wie der Arduino und Einplatinenrechner wie der Raspberry Pi haben sich zu beliebten Komponenten entwickelt. Dritter im Bunde ist der ESP32 der Firma Espressif. Mikrocontroller dieser Baureihe zeichnen sich durch eine Vielzahl implementierter Funktionen aus, die bei einem Arduino konventioneller Prägung mit einem Atmel-AVR-Mikrocontroller erst mit weiterer Hardware möglich sind. Prominentes Beispiel sind hier die WiFi- und Bluetooth-Funktionalitäten. Gegenüber einem Raspberry Pi zeichnen sie sich durch einen deutlich geringeren Preis aus.
Allgemeine Informationen für die Realisierung eines Roboterauto-Projekts mit dem ESP32 sind leicht zu finden. Dabei handelt es sich aber oft nur um Ausführungen zu einem Teilaspekt, ohne inhaltliche oder funktionale Abstimmung. So ist nicht nur die Beschaffung der benötigten Informationen mühselig und zeitaufwändig, sie kann auch außerordentlich fehlerträchtig sein.
Ansatzpunkt dieses Buches ist, diese Lücke zu schließen. Es geht auf verschiedene Möglichkeiten eines Chassis ein, vermittelt nötige Kenntnisse und führt schrittweise von einer einfachen Motorsteuerung zu einem komplexen sensor- und sprachgesteuerten Roboterauto. Hacks rund um GPS und eine PlayStation 3 runden die Sache ab.
Inhalt
Bei der Reihenfolge der Kapitel wurde versucht – beginnend bei der Darstellung von grundlegenden Informationen – über die Lösung einfacher Aufgaben zu etwas anspruchsvolleren Techniken zu führen.
Der Mikrocontroller ESP32
Die Software erstellen
Die Stromversorgung
Rund um die Hardware
Das Chassis
Der Gleichstrommotor
Kabellose Steuerung über WiFi
Mit Sensoren Hindernisse erkennen
Eine eigene Roboterauto-App
Servo und Lichtsensor
GPS
Accelerometer / Gyroskop
PS3-Controller
Roboterauto-App
Hinweis zur Software
Die Dateien haben das Suffix (.cpp). Grund ist die Entwicklung mit PlatformIO. Mit Copy & Paste sollten sie auch in der Arduino-IDE verwendet werden können.
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.
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
Elektor GREEN en GOLD leden kunnen deze uitgave hier downloaden.Nog geen lid? Klik hier om een lidmaatschap af te sluiten.
Kiesschijftelefoon als afstandsbedieningvoor licht kies 1; voor koffie kies 2
GPS-gebaseerde snelheidsmeternooit meer bekeuringen
RGB-stroboscoop met Arduinokleurige toepassing van een nuttig instrument
Draadloze nooddrukknopmeer veiligheid met LoRa
Alle begin......volgt de emitter
Vrij te kiezen onafhankelijke hystereseniveaus voor comparatorenmet simulaties, spreadsheets en algebra
Impedantie-analyzer op basis van een ESP32simpel, weinig onderdelen en goedkoop!
Oost West Lab Bestzelfbouw moet gestimuleerd!
Het MCCAB Arduino Nano Training Boardalle hardware voor de “Microcontrollers Hands-On Course”
Uit het leven gegrepenmodern luddisme
Sensor-ABC: de DS18B20 temperatuursensoraansluiting op de 1-Wire bus
Gaan Matter en Thread het Smart Home redden?nieuwe standaarden om het slimme huis te vereenvoudigen
Een kwestie van samenwerkingontwikkelen met het Thing Plus Matter Board en Simplicity Studio
Elektor IIIIinfographicIoT en sensoren
Matter, ExpressLink, Rainmaker – waar hebben we het over?vraaggesprek met Amey Inamdar van Espressif
De juiste keuze van microcontroller-ontwikkelkitsvoor IoT- en IIoT-toepassingen
Condensatoren gedragen zich niet altijd capacitief!
Een NTP-klok met CircuitPythonwaarom zou je deze programmeertaal gebruiken?
Bouw een cool IoT-display'met de Phambili Newt
De doppler-bewegingssensor HB100theorie en praktijk
Een gids voor puristisch programmeren (deel 1)voor STM32 en andere controllers
Siglent SDM3045X-multimeter
Microprocessoren voor embedded systemenvreemde onderdelen
Microcontroller-documentatie verklaarddeel 3: blokschema’s en meer
Low-power LoRa-weerstationbouw zelf een weerstation met een groot bereik
Transverter voor de 70cm-band
Klimaat aan ingenieurssnelheid is geboden!
Hexadoku