Dit is een ideaal boek voor hobbyisten, studenten en ingenieurs die op een leuke manier C en het gebruik van een mbed ARM microcontroller willen leren, rechtstreeks op internet zonder ingewikkelde software-installatie.
De projecten in dit boek zijn bedoeld voor gevorderden op het gebied van ARM microcontrollers of de programmeertaal C. Dat wil zeggen dat de kennis uit deel 1 van deze serie bekend verondersteld wordt.
Cloud technologie
De in dit boek gebruikte mbed NXP LPC1768 maakt gebruik van cloud-technologie, een revolutionair concept voor software-ontwikkeling. Dit houdt in dat u geen software hoeft te installeren om de mbed te kunnen programmeren!
Het enige dat u nodig heeft, is een internet-browser zoals Microsoft Internet Explorer, en een USB-poort op uw PC. U kunt vanaf elke willekeurige PC waar dan ook ter wereld toegang krijgen tot uw project en er aan verder werken. Wanneer u klaar bent, kunt u met een paar eenvoudige klikjes met uw muis het programma overzetten naar uw mbed-hardware. Uiteraard kunt u de projecten ook downloaden en op uw eigen PC opslaan wanneer u dat liever heeft.
In een deel van de projecten wordt Visual Basic gebruikt; dit gratis pakket is nog niet in de cloud beschikbaar en moet wel op uw PC geïnstalleerd worden.
Onderwerpen die aan de orde komen
Leer het programmeren van een ARM microcontroller via cloud-technologie. Geen ARM ontwikkelsoftware-installatie op uw eigen PC.
Leer hoe u een ARM microcontroller met internet kunt verbinden, hoe u via internet uw ARM kunt bedienen en hoe u vanaf de ARM microcontroller tweets kunt versturen.
Leer hoe u een CMUcam camera kunt aansturen en toepassen in uw applicaties, bijvoorbeeld als alarm.
Leer hoe u met behulp van de gratis PC programmeertaal Visual Basic met uw ARM microcontroller kunt communiceren met gebruik van multi-threading.
Voorbeelden van projecten in dit boek: internet-server, automatisch twitteren, digitaal naar analoog conversie, USB HID, automatisch metingen in een spreadsheet plaatsen, met een camera bewegingen waarnemen, seriële communicatie met een zelfgeschreven PC-programma, gebruik van een LCD en SPI en I²C communicatie.
Vom Messwert zur stabilen Entscheidung
Wie wird aus einem einfachen Mikrocontroller ein intelligentes System, das Sensorwerte erfasst, verarbeitet und sinnvoll darauf reagiert? Dieses Buch zeigt es Ihnen Schritt für Schritt – verständlich, praxisnah und ohne unnötige Vorkenntnisse.
Sie beginnen mit den Grundlagen der digitalen und analogen Ein- und Ausgänge. Anschließend lernen Sie, wie Sensorwerte gelesen, geglättet und zuverlässig bewertet werden. Anschauliche Beispiele erklären, warum einzelne Messwerte oft täuschen können und wie Mittelwertbildung, Hysterese und einfache Entscheidungsregeln für stabile Ergebnisse sorgen. Nach und nach erweitern Sie Ihre Projekte um Displays, I²C-Kommunikation und mehrere vernetzte Mikrocontroller. So entstehen verteilte Systeme, in denen Raspberry Pi Pico und ATtiny-Controller Daten austauschen und gemeinsam Aufgaben übernehmen.
Im fortgeschrittenen Teil erhalten Sie einen leicht verständlichen Einstieg in Merkmalsbildung, Datenvorverarbeitung, hybride Entscheidungsmodelle und TinyML-nahe Anwendungen. Dabei verbinden Sie klassische Regelungstechnik mit modernen datenbasierten Methoden.
Alle Projekte werden von ausführlich kommentierten Programmen in C und MicroPython begleitet. Das Buch richtet sich an Einsteiger, Maker, Studierende und alle, die Embedded-Systeme von Grund auf verstehen möchten.
Am Ende können Sie eigene Systeme entwickeln, die nicht nur messen, sondern Informationen auswerten, zuverlässige Entscheidungen treffen und gezielt reagieren.
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
Dit boek bevat 50 leuke en spannende projecten met PIC microcontrollers zoals een laser alarm, USB plaagmuis, eierwekker, jongerenverjager, geluidsschakelaar, capacitieve vloeistofniveau meting, 'vinger in het water' sensor, bewaking van een ruimte met een camera, 220 volt lichtdimmer, pratende microcontroller en nog veel meer. Er komen talloze technieken aan de orde zoals relais, wisselstroomregeling (ook 220 volt), I2C, SPI, RS232, USB, puls breedte modulatie, rotary encoder, interrupts, infrarood, analoog-digitaal conversie (en andersom), 7-segment display en zelfs CAN bus.
U kunt dit boek gebruiken om de verschillende projecten na te bouwen en daarna in de praktijk te brengen. Door de duidelijke uitleg, schema's en zelfs foto's van de opstelling is het nabouwen een leuke bezigheid. Bij ieder project wordt uitgelegd waarom het juist op die manier is uitgevoerd, en wordt kort de theorie behandeld. U kunt dit boek dus gebruiken als studieboek, of als basis voor grotere en ingewikkeldere projecten. Alle schakelingen zijn op een steekbord uitgevoerd zodat uitbreiden en aanpassen gemakkelijk is.
De drie PIC microcontrollers die in dit boek gebruikt worden, zijn de 16f877A, 18f4455 en 18f4685. Daarnaast komt aan de orde hoe u de programma's van de ene naar de andere microcontroller kunt overzetten (er worden 15 types ondersteund) inclusief twee praktijkvoorbeelden.
Alle benodigde software kunt u gratis downloaden. Dat geldt ook voor de open source programmeertaal JAL. Deze krachtige maar toch eenvoudig te leren taal wordt zowel door hobbyisten als professionals gebruikt.
Dit boek is ook goed te gebruiken als naslagwerk. U kunt er de uitleg van alle opdrachten van de programmeertaal JAL in terugvinden, en tevens van de gebruikte uitbreidingsbibliotheken. Via de index vindt u gemakkelijk projecten die als voorbeeld kunnen dienen voor de belangrijkste JAL opdrachten. Zelfs wanneer u alle projecten een keer gemaakt hebt, zal dit boek nog lang een plekje naast uw PC behouden.
Het Elektor Arduino Nano MCCAB Training Board bevat alle componenten (incl. Arduino Nano) die nodig zijn voor de oefeningen, zoals LED’s, schakelaars, drukknoppen, buzzer enz. Ook externe sensoren, motoren of modules kunnen worden gecheckt of bestuurd met dit microcontroller-trainingssysteem.
Specificaties (Arduino Nano Training Board MCCAB)
Voeding
Via de USB-aansluiting van de aangesloten pc of een externe voeding (niet inbegrepen)
Spanning
+5 Vcc
Ingangsspanning
Alle ingangen
0 V tot +5 V
VX1 en VX2
+8 V tot +12 V (alleen bij gebruik van een externe voeding)
Hardware
LCD
2x16 karakters
Potentiometer P1 & P2
JP3: Selectie van de werkspanning van P1 & P2
Verdelers
SV4: Verdeler voor de werkspanningenSV5, SV6: Verdelers voor de in-/uitgangen van de microcontroller
Schakelaars en knoppen
RESET knop op de Arduino Nano module; 6x drukknop schakelaars K1 ... K6; 6x Schuifschakelaars S1 ... S6; JP2: Jumper van de schakelaars met de ingangen van de microcontroller
Buzzer
Piezo buzzer ‘Buzzer1’ met jumper op JP6
Indicator LED’s
11 x LED: Status indicator voor de ingangen/uitgangen LED L op de Arduino Nano module, aangesloten op GPIO D13 JP6; Aansluiting van LED's LD10 ... LD20 met GPIO's D2 ... D12
Seriële interfacesSPI & I²C
JP4: Selectie van het signaal op pin X van de SPI-connector SV12 SV9 naar SV12: SPI-interface (3,3 V/5 V) of I²C-interface
Uitgangen voor externe apparaten
SV1, SV7: Geschakelde uitgang (maximaal +24 V/160 mA, extern aangesloten) SV2: 2x13 pinnen voor aansluiting van externe modules
3x3 LED matrix(9 rode LED's)
SV3: Kolommen van de 3x3 LED matrix (uitgangen D6 ... D8) JP1: Verbinding van de rijen met de GPIO's D3 ... D5
Software
MCCABLib library
Controle van hardware componenten (schakelaars, knoppen, LED's, 3x3 LED matrix, buzzer) op het MCCAB Training Board
Werktemperatuur
Tot +40 °C
Afmetingen
100 x 100 x 20 mm
Specificaties (Arduino Nano)
Microcontroller
ATmega328P
Architectuur
AVR
Spanning
5 V
Flash memory
32 KB, waarvan 2 KB gebruikt door de bootloader
SRAM
2 KB
Kloksnelheid
16 MHz
Analoge IN Pinnen
8
EEPROM
1 KB
DC stroom per I/O-pin
40 mA op één I/O-pin, totaal maximaal 200 mA op alle pinnen samen
Ingangsspanning
7-12 V
Digitale I/O-pinnen
22 (waarvan 6 PWM)
PWM Uitgangen
6
Stroomverbruik
19 mA
Afmetingen
18 x 45 mm
Gewicht
7 g
Inbegrepen
1x Elektor Arduino Nano Training Board MCCAB
1x Arduino Nano
Praxisnahe Projekte, Profi-Tricks und eigene Anwendungen
Dieses Buch führt Sie Schritt für Schritt in die faszinierende Welt der State Machines ein und zeigt, wie Sie Hardware direkt und effizient ansteuern können – jenseits klassischer CPU-gesteuerter Ansätze.
In diesem Buch lernen Sie:
LEDs und NeoPixel kreativ steuern: Blinken, Dimmen, Farbwechsel und komplexe Animationen
Taster und Encoder zuverlässig auslesen und in Echtzeit in Ihre Projekte integrieren
Analoge Eingänge (ADC) nutzen und Signale digital steuern
Servos präzise ansteuern und Bewegungsabläufe automatisieren
SPI mit PIO umsetzen, um Displays, Sensoren und Module anzusteuern
Menüsysteme und Submenüs auf SPI-Displays realisieren, inklusive Navigation über mehrere Taster
PWM, Signalgenerierung und Frequenzsteuerung für akustische oder visuelle Effekte
Debugging-Strategien und Tipps, um Ihre PIO-Programme effizient zu entwickeln
Alle Beispiele sind praxisnah, sofort umsetzbar und zuverlässig. Mit klaren Anleitungen, Hintergrundwissen und fertigen Codebeispielen lernen Sie, die PIO-Fähigkeiten des Pico maximal zu nutzen – egal ob für Maker-Projekte, Prototypen oder professionelle Anwendungen.
Erleben Sie, wie Sie komplexe Hardwaresteuerung elegant mit dem Pico realisieren können – schneller, flexibler und leistungsfähiger als je zuvor.
Mehr als 50 Grundlagenprojekte mit MicroPython und dem RP2040-Mikrocontroller
Der Raspberry Pi Pico ist eine leistungsstarke Mikrocontroller-Platine, die speziell für das Physical Computing – also hardwarenahe Anwendungen – entwickelt wurde. Der Raspberry Pi Pico kann so programmiert werden, dass er eine einzelne Aufgabe sehr effizient ausführt und ermöglicht so schnelle Steuerungs- und Überwachungsanwendungen in Echtzeit. Der 'Pico', wie wir ihn nennen, basiert auf dem schnellen, effizienten und kostengünstigen Dual-Core ARM Cortex-M0+ RP2040 Mikrocontroller-Chip, der mit bis zu 133 MHz läuft und über 264 KB SRAM und 2 MB Flash-Speicher verfügt. Neben dem großen Speicher hat der Pico noch weitere attraktive Eigenschaften, darunter eine große Anzahl von GPIO-Pins sowie gängige Schnittstellen wie ADC, SPI, I²C, UART und PWM. Als Krönung bietet der Chip schnelle und genaue Timer, eine Hardware-Debug-Schnittstelle und einen internen Temperatursensor.
Zur Programmierung lassen sich leicht die gängigen Hochsprachen wie MicroPython oder C/C++ verwenden. Dieses Buch ist eine Einführung in die Verwendung des Pico mit der Programmiersprache MicroPython. In allen Projekten wird die Thonny-Entwicklungsumgebung (IDE) eingesetzt. Über 50 Projekte decken folgende Themen ab:
Installation von MicroPython auf dem Raspberry Pi Pico
Timer-Interrupts und externe Interrupts
Projekte mit Analog-Digital-Wandler (ADC)
Verwendung des internen sowie externer Temperatursensoren
Datenlogger
Projekte zur PWM, UART, I²C-Bus und SPI-Bus
Wi-Fi und Bluetooth für die Kommunikation mit Smartphones
Projekte mit dem Digital-Analog-Wandler (DAC)
Alle in diesem Buch vorgestellten Projekte wurden vollständig getestet und sind funktionsfähig. Es werden keine Programmier- oder Elektronikkenntnisse vorausgesetzt, um sie nachzuvollziehen. Für alle beschriebenen Projekte gibt es kurze Beschreibungen, Blockdiagramme, detaillierte Schaltpläne und vollständige MicroPython-Programmlistings. Die Listings sind auch auf der zum Buch gehörenden Elektor-Webseite zu finden.
In ESP32 programmeren voor beginners bekijken we de ESP32 en zijn voorganger, de ESP8266. Deze kleine, maar zeer krachtige Chinese chips bestaan uit een processor, geheugen, input- en outputaansluitingen en hebben draadloze netwerktoegang via WiFi.
Met dit boek tonen we hoe de programmeeromgeving Arduino werkt en hoe die kan gebruikt worden met ESP-hardware. Aan de hand van voorbeelden en projecten verduidelijken we hoe de ESP-hardware kan worden toegepast.
In vogelvlucht:
We beschrijven de opbouw van ESP-experimenten.
We tonen hoe displays worden aangesloten.
Eeprom_24c16 demonstreert hoe een externe geheugenchip wordt gebruikt om getallen en tekst op te slaan en weer uit te lezen.
Project Klok is de eenvoudige implementatie van een digitale klok.
We geven een handleiding voor het gebruik van temperatuur- en luchtvochtigheidsensoren.
Webclient laat zien hoe de ESP32 gegevens van het internet kan halen.
Met Webserver kunnen we op afstand met een pc of smartphone gegevens halen uit een ESP32, sensoren uitlezen en toestellen aan- en uitschakelen.
Een NTP-klok haalt tijdinformatie van Tijdserver. Die geeft zowel de tijd als het aantal seconden sinds 1 januari 1900. Het boek beschrijft hoe hieruit de tijd kan worden berekend.
In het laatste hoofdstuk gebruiken we het internet om nauwkeurige weerinformatie en voorspellingen op te vragen.
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.
In dit boek gebruiken we JAL (Just Another Language) om de PIC-microcontroller te programmeren in 60 oefeningen. JAL is makkelijk in gebruik en is een goede basis om programmeren in andere talen snel te leren. Na het lezen en toepassen van de voorbeelden in dit boek kan iedereen die zich hierin serieus heeft verdiept met behulp van JAL zelf de microcontroller aansturen. Je leert onder meer het programmeren van timers, analoog/digitaal omzetters, comparators, pulsbreedte regeling voor motoren en geluid, LED- en LCD-scherm aansturing, USB-connectie en communicatiemogelijkheden met computers of andere microcontrollers.
Ook weet je aan het eind van het boek wat je moet doen om nu nog onbekende mogelijkheden te gaan toepassen. Met deze kennis kan iedereen van beginner tot meer gevorderde zijn creativiteit vorm geven in projecten met microcontrollers.
Wil je verder met leren programmeren dan legt dit boek ook een zeer goede basis. Wie goed met JAL overweg kan en zich de gestructureerde wijze van denken heeft aangeleerd, zal de stap naar andere programmeertalen zoals Python, C++ enz. kunnen maken. Ook het programmeren van minicomputers zoals de Raspberry Pi en Arduino zijn mogelijkheden.
Om te starten is geen kennis van elektronica nodig. Wie niets weet van elektronica, krijgt overal in het boek de noodzakelijke kennis aangereikt. Alle belangrijke en benodigde informatie staat in de tekst.