Build Smart Applications with Raspberry Pi, Arduino, and ESP32
Discover how easy and exciting mobile app development can be with MIT App Inventor. This hands-on guide takes you from basic concepts to building real-world mobile applications using a simple visual programming approach—no prior coding experience required. You will create IoT and AI-powered apps for Android devices and explore how App Inventor can also be used with iPhones and iPads.
Connect your applications to platforms such as Arduino UNO R4 WiFi, ESP32, Raspberry Pi Pico (2)W and Raspberry Pi 5, enabling you to build smart, connected systems.
Inside the book, you will learn how to:
Build interactive apps using buttons, images, sound, and multimedia
Create text-to-speech and speech-recognition applications
Develop camera-based and location-aware (GPS) apps
Design useful tools such as calculators and educational apps
Work with smartphone sensors like accelerometers and light sensors
Build AI-powered applications, including voice assistants and image-generation features
Send and receive messages, and create communication-based apps
Connect mobile apps to hardware using Wi-Fi and Bluetooth
Control real devices such as LEDs, motors, and sensors
Designed for beginners, students, and hobbyists, this book focuses on learning by doing. By the end, you will have the skills and confidence to create your own innovative applications that interact with both the digital and physical worlds.
Start building and turning your ideas into reality.
Elektor GREEN en GOLD leden kunnen deze uitgave hier downloaden.
Nog geen lid? Klik hier om een lidmaatschap af te sluiten.
OBD2-sensordashboardOude meters vormden het startpunt van een zoektocht naar echte gegevens
OBD2: voeg een toerenteller en schakelindicator toe aan je autoRetro, maar uiterst nuttig
LiDAR- en Visiesensoren voor Robotica
Sensor+Test 2025 en PCIM 2025
Contactloze E-Veldmetingen (1)Een Trillende Membraan voor het Detecteren van Gelijkspanningen of Statische Elektrische Velden
Draadloze brievenbusmeldervan optische sensoren tot radar: enkele mogelijkheden
Elektor Mini-Wheelieeen zelfbalancerende robot
ZonnecellenVreemde onderdelen, de serie
Aan de slag met een moderne radarsensorStaat een nauwkeurige meting op uw radar?
Uit het leven gegrepenpapierfabriek
CybersecurityZware tijden voor hackers
Infographics: IoT en sensoren 2025
Bluetooth 6.0 brengt verbeterde toepassingen voor afstandsbepalingNieuwe versie biedt betere apparaatpositionerings- en -locatieservices
Draadloze communicatie verkennen met BeagleY-AI
Err-lectronicsCorrecties, updates en lezerspost
Alle begin......sluit het thema opamps af
Een krachtige AI-codeerassistentsneller ontwikkelen met Continue en Visual Studio Code
Zonne-laadregelaar met MPPT (2)Het schema
Ultrasone obstakeldetectoreen eenvoudig project om slechtzienden te helpen
2025: Een AI-odysseeHalfjaaroverzicht
Raspberry Pi Standalone MIDI-synthesizer (3)Het slimmer maken en een gebruikersinterface toevoegen
Meshtastic: een demonstratieprojectEen slim netwerk van LoRa-radio's
Analoge audio-frequentiegeneratorHoogwaardige sinusgenerator met instelbare frequentie
Diese Ausgabe steht allen GOLD- und GREEN-Mitgliedern auf der ElektorMagazine-Website zum Download bereit!
Sie sind noch kein Mitglied? Hier klicken!
Digitale Last für HochstromtestsVon der Notwendigkeit zur Innovation
GesangsentfernerInstant-Karaoke-Schaltung
Audio-Eingangswahlschalter mit VerstärkungseinstellungSchaltet von Mikrofon- auf Line-Eingänge um
Ladeschaltung für LIR2032Optimierte Ladung = längere Haltbarkeit
Touch-Sensing leicht gemachtEin DIY-Leitfaden für jeden Mikrocontroller
Universeller Infrarot-FernschalterEin neues Leben für alte Fernbedienungen
Mikrocontroller-gesteuerte MuhdoseBovine Klänge mit einem Mikrocontroller erzeugen
USB-Batterieschnittstelle
Stromversorgung von Low-Power-Geräten mit PowerbanksEine Stay-Alive-Lösung
Kleiner Klasse-A-Audioverstärker mit StromausgangLautsprecher mit Strom statt mit Spannung ansteuern
Pseudosymmetrisches ModulHohes Gleichtaktunterdrückungsverhältnis trotz asymmetrischen Audioverbindungen
Automatisches Ladegerät für Ni-MH-ZellenFüllen Sie alle Ihre Akkupacks in einem Rutsch auf!
Sicherheit durch thyristor-basierte Strombegrenzung
Fingerabdruck-Sensor-SchalterEin nützliches Gerät zum Identitätsnachweis
3-A-GleichspannungswandlerBessere Nutzung Ihrer Festspannungsquellen
Innovationen aus dem Arduino-Project-HubNeue Projekte aus der Community
Fernkontrolle eines BoilersSpannungs- und Stromdetektion für Netzspannungsleitungen
Abschwächer für AudiosignaleTeil 1. Einstellbar über Jumper
Autobatterie-Ladegerät aufgemotztTeil 1. Wiederverwenden statt wegwerfen!
Eine Platine für „The Blue One“Platine für Alps-Motorpotentiometer mit Rückmeldung
50-Hz-Referenz aus 60-Hz-NetzspannungWie man 50-Hz-Elektronik in 60-Hz-Umgebungen verwendet
Digitale IsolatorenGalvanische Trennung einfach realisieren
Kompakter 12-W-Hi-Fi-MonoverstärkerKlein, aber leistungsstark
LM386-Rampengenerator
DrehstromgeneratorMit Raspberry Pi Pico
Türöffner für musikalisch Begabte
Elektor-Klassiker: Surf-SynthesizerMeereswassersporthintergrundgeräuschgenerator (Mwsh3g)
Autobatterie-Ladegerät aufgemotztTeil 2. Ladesteuerung analog und digital
LampenstromüberwachungMit Raspberry Pi Pico
Infrarot-Telegraphie
Fnirsi SWM-10Reparatur von Batteriepacks mit tragbarem intelligentem Punktschweißgerät
Stereo-Audio-Codec für ESP32 und Co.Keine Angst vor Audio-Messtechnik
Die Kunst des LötensLötzinn-Techniken für einwandfreie Verbindungen
Abschwächer für AudiosignaleTeil 2. Umschalten per Relais
USB-C-PowerStrom aus USB-C-Netzteilen beziehen
Drei Schaltungen mit zwei und drei Zähler-ICs4017-ICs im Zusammenspiel
Aktive Bauelemente – Die Diode
Timer für extrem lange VerzögerungenEinstellen und vergessen!
Klinke rein, Klinke rausEine nützlicher Anschluss für Audioschaltungen
ESP32 mit nur einer Lithium-Zelle versorgen
Hexadoku
Aus dem Inhalt
Lieferbarkeit von Röhren
Passive Übeltäter – Einfluss der Kondensatoren auf den Klang
Übertragerwissen
Theorie der Trioden
Der richtige Einsatz von Gleichrichterröhren
Line-Vorverstärker mit Klangsteller
Vollverstärker mit 2 x 50 W oder 2 x 40 W
HiFi-CD-Player mit Playstation 1
CD-Filter
Nachlese
In dem Artikel "Moderne Triodenendstufe mit der legendären 2A3" ab Seite 66 wurden bei den Platinenabbildungen die Maßangaben nicht abgedruckt. Hier die Maße der Originalgrößen:
Netzteilplatine (S. 68) 123 x 80 mm
Stabilisierung (S. 69) 70 x 85 mm
Hauptplatine (S. 71) 295 x 135 mm
The Siglent SSA3015X Plus spectrum analyzer is a powerful and flexible tool for RF signal and network analysis. With a frequency range of 1.5 GHz, the analyzer delivers reliable automatic measurements and multiple modes of operation: spectrum analyzer the base, optional functions include RF power measurement, vector signal modulation analysis, reflection measurement, and EMI test.
Applications include broadcast monitoring/evaluation, site surveying, S-parameter measurement, analog/digital modulation analysis, EMI pre-compliance test, research and development, education, production, and maintenance.
Features
Spectrum Analyzer Frequency Range from 9 kHz to 1.5 GHz
–156 dBm/Hz Displayed Average Noise Level (Typ.)
–99 dBc/Hz. @ 10 kHz Offset Phase Noise (1 GHz, Typ.)
Level Measurement Uncertainty <1.2 dB (Typ.)
1 Hz Minimum Resolution Bandwidth (RBW)
Preamplifier (Std.)
Tracking Generator (incl. free of charge)
Analog and Digital Signal Modulation Analysis Mode (opt.)
Reflection Measurement Kit (opt.)
EMI Filter and Quasi-Peak Detector Kit (opt.)
Advanced Measurement Kit (opt.)
10.1-inch Multi-Touch Screen , Mouse and Keyboard supported
Web Browser Remote Control on PC and Mobile Terminals and File Operation
Specifications
SSA3015X Plus
SSA3021X Plus
SSA3032X Plus
SSA3075X Plus
Frequency Range
9 kHz ~ 1.5 GHz
9 kHz ~ 2.1 GHz
9 kHz ~ 3.2 GHz
9 kHz ~ 7.5 GHz
Resolution Bandwidth
1 Hz ~ 1 MHz
1 Hz ~ 1 MHz
1 Hz ~ 1 MHz
1 Hz ~ 3 MHz
Phase Noise
<–99 dBc/Hz
<–98 dBc/Hz
<–98 dBc/Hz
<–98 dBc/Hz
Total Amplitude Accuracy
<1.2 dB
<0.7 dB
<0.7 dB
<0.7 dB
Display Average Noise Level
–156 dBm/Hz
–161 dBm/Hz
–161 dBm/Hz
–165 dBm/Hz
Included
Siglent SSA3015X Plus spectrum analyzer
USB cable
Power cord
Quick start guide
Downloads
Datasheet
Manual
Documentation
Firmware
Le téléchargement intégral de ce numéro est disponible pour nos membres GOLD et GREEN sur le site Elektor Magazine !
Pas encore membre ? Cliquez ici.
petite alimentation solairelumière du soleil en entrée, 3,3 V en sortie
commutateur audio stéréo statiquesans clics ni pièces mobiles
grand chiffre RGBavec LED traversants de type WS2812
préamplificateur de microphone avec alimentation fantôme 48 Vidéal pour le podcasting et la sonorisation pro
générateurs d'ondes carrées avec commande de rapport cyclique et de fréquencemontages simples avec des CI CMOS et TTL
compresseur Dynamique Simpleavec contrôle doux et un son chaleureux
serrure électronique simple
redresseur actifde 2 à 40 V jusqu'à 3 A avec suppression du courant inverse
commutation marche/arrêt pour enceintes actives
convertisseur symétrique/asymétriqueavec filtre RFI et protection CC
2023 : l'odyssée de l'IAorigine et évolution
régulateur de vitesse pour ventilateur ou aérateuravec modes manuel et thermostat
Plateforme Projets Arduino?: dernières nouvellesnouveaux projets de la communauté
moniteur de surchargesurveillez les lignes électriques pour détecter les courants excessifs
clignotement nocturne sans transistorsun oscillateur ne comportant que des composants à deux fils
générateur de code morseutilisez-le comme balise ou dispositif d'apprentissage !
CNA vidéo programmabletraite tous les formats jusqu'à RGB888
un tout petit pianosans pièces mobiles
double-dé électronique sans microcontrôleurdeux dés sur un seul circuit imprimé ? plus quelques astuces de conception
effaroucheur électronique
circuits qui amusent, inspirent et étonnent
thermomètre LC-LP-HAmesures précises et affichage binaire
générateur de distorsion harmoniquegénérer volontairement de la distorsion
indicateur de surchauffe à thyristorutilisation non conventionnelle des composants électroniques
une bascule CTP
un drôle d'oiseauun classique d'Elektor qui émet des gazouillis
lampe au néon avec microcontrôleur
source de courant stable en températureéliminer la dérive de température des CI sources de courant
correcteur d'aigus d'ordre 2 réglablecorrection auditive pour personnes âgées
Edwin revientaprès 53 ans d?absence
machine à sous à levierun classique d'Elektor simple, amusant, nostalgique et éducatif
résistance variable simple à contrôle numérique
protection contre les fuites d'eauprotection et alarme contre les fuites d'eau
minuterie économique avec arrêt automatiquenécessite 0,0 mW en mode éteint !
ChatGPT fait de l'Arduino
ZD-mètremesure de la tension de coude des diodes Z ? 100 V
testeur de servos
Contrôleur Windows ESP32 avec logiciel gratuit
circuits analogiques et mixtes de Microchipgestion de l'alimentation économe en énergie et traitement de signal
standards d?interfacesfiltrage et protection contre leurtensions pour le bus I²C
moniteur de batterie Li-Ionl'indicateur de charge résiduelle fournit un retour d'information visuel
souris PS/2 comme codeur rotatif (et plus?)
interrupteur crépusculaire simplepour moderniser vos luminaires ou vos installations
commande de pompe à eauprotégez-vous contre la montée des eaux
boule de Noël solaire avec radio FMtout ce que vous voulez pour Noël, c'est cela
capteur de vibrations avec relaistapotez ou secouez pour allumer
testeur de continuitésensible et discret
bouton-poussoir marche/arrêt
Contrôleur pour mini-perceuse 2023révision d'un projet de 1980
détecteur de vibration numériquetransformez les vibrations en impulsions précises
protection contre l'inversion de polarité avec faible chute de tension
étalon de fréquence peu coûteux
petit simulateur DCF77une référence précise pour le Fake-Time
le Lilygo T-PicoC3combine un RP2040 et un ESP32-C3 avec un écran TFT couleur
Hexadoku
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.
Elektor GREEN en GOLD leden kunnen deze uitgave hier downloaden.Nog geen lid? Klik hier om een lidmaatschap af te sluiten.
Super-servotestervoor vier servo’s – stand-alone of in-system
Analoge signalen en microcontrollersADC’s, DAC’s, stroommeting en meer
embedded world 2023
Sub-Nyquist-sampling in de praktijkhogere frequenties betrouwbaar bemonsteren met subsampling
Met Android-smartphone, spreek ik met ESP32?praktisch project met behulp van de Android WiFi-API
Actief 1kHz-filter voor vervormingsmetingmeet beter door het het meetsignaal te optimaliseren
Alle begin......multivibreert verder!
Project 2.0correcties, updates en brieven van lezers
Het nieuwe I3C-protocoleen waardig opvolger van I2C – of gebakken lucht?
BlueRC: IR-afstandsbediening met smartphone en ESP32universeel en aanpasbaar
Microcontroller-documentatie verklaarddeel 2: registers en blokschema’s
Automatisering van testen en metentestapparatuur programmeren om je te dienen
Elektor Infographicstesten en meten
Overspanningsbeveiliging voor veilige werkingtransiëntbescherming voor niet-geïsoleerde DC/DC-voedingsmodules
Meetapparatuur van het merk Wihatesters en meters voor installaties waar u op kunt bouwen
Automatisch testen en samenwerken aan testresultaten
Uit het leven gegrepenelektronica op hoog niveau
Energieloggermeet en registreert het stroomverbruik
Montage van de M.A.R.S. Rover Kit van 4tronix
Parkeerschijf met e-papier displayinnovatief digitaal alternatief
eCO2 Telegram-botmeet de luchtkwaliteit via Telegram
Achter de schermen van DHZ high-end audioTon Giesberts van Elektor over de fijne kneepjes van het analoog ontwerpen
Oost West Lab Bestwerk in uitvoering...
RFID-tag’s lezen, en een RFID-deurslotvoorbeeldprojecten uit de Elektor Arduino Experimenteerbundel
HF-stroomprobe voor oscilloscoopHF-stroommetingen gemakkelijk gemaakt
Niet voor watjes – Makerfabs Robot Arm Kitmet de Raspberry Pi Pico en MicroPython
Generatieve KIwie heeft dit eigenlijk gemaakt?
Hexadokupuzzelen voor elektronici
This kit includes iFixit's widest assortment of bits, complete with every driver head you’ll need to tackle any repair or DIY project. It includes standard bits like Phillips and Flathead in a full range of sizes to handle everything from precision electronics repair to home DIY projects. And it wouldn’t be an iFixit bit set if it didn’t include all the exotic bits from Pentalobes for Apple iPhone and MacBook repair to Gamebits for your vintage Nintendo consoles.
All of the next-gen bit sets have been re-designed in order to maximize convenience and usability. The bit set lid is held in place with magnets to increase product lifespan (no more broken hinges or clasps) and also mounts to the back of the bit set case to keep it out of the way while you do your work. If you need help keeping your screws and parts organized, you can use the lid’s integrated sorting tray. The 4 mm bits have been adjusted and have now a longer neck for a deeper and more precise reach.
Toolkit Includes
Easy-to-Open Magnetized Case
Lid with Built-in Sorting Tray
4 mm Aluminum Bit Driver
1/4' Aluminum Bit Driver
4 mm Screwdriver Bits
Phillips - 000, 00, 0
Flathead - 1, 1.5, 2, 2.5, 3, 3.5 mm
Torx - T2, T3, T4, T5
Torx Security - TR6, TR7, TR8
Pentalobe - P2, P5, P6
JIS - 000, 00, 0, 1
Hex - 0.7, 0.9, 1.3, 1.5 mm
Hex Security - 2, 2.5, 3, 3.5 mm
Tri-point - Y000, Y00, Y0, Y1
Nut driver - 2.5, 3, 3.5, 4, 4.5, 5, 5.5 mm
Gamebit - 3.8, 4.5 mm
Spanner - 4, 6
Triangle - 2, 2.2, 2.6, 3 mm
Oval Bit
iPhone Standoff Bit
Sim Eject Bit
Magnetic Pickup Bit
1/4' Screwdriver Bits
Phillips - 1, 2, 3
Flathead - 4, 5, 6, 7, 8 mm
Hex Security - 4, 5, 6, 7, 8 mm
Hex Security SAE - 1/8, 9/64, 5/32, 3/16, 7/32, 1/4
Pozidriv - PZ0, PZ1, PZ2, PZ3
Torq-set - 6, 8, 10
Spanner - 8, 10, 12
Square - 0, 1, 2, 3
Spline - M5, M6, M8
Torx Security - TR9, TR10, TR15, TR20, TR25, TR27, TR30, TR35, TR40
Tri-wing 1, 2, 3, 4
Clutch 1, 2, 3
Schrader Valve
Hook Drive
1/4' to 4 mm Adapter
1/4' Driver to 1/4' Socket
1/4' Driver to 3/8' Socket
1/4' Socket to 1/4' Driver
Specifications
Bit Metal: 6150 Steel
Driver Material: Anodized Aluminum
Case Material: ABS
Foam: EVA
It is becoming important for microcontroller users to quickly learn and adapt to new technologies and architecture used in high performance 32-bit microcontrollers. Many manufacturers now offer 32-bit microcontrollers as general purpose processors in embedded applications.
ARM provide 32 and 64-bit processors mainly for embedded applications. These days, the majority of mobile devices including mobile phones, tablets, and GPS receivers are based on ARM technology. The low cost, low power consumption, and high performance of ARM processors makes them ideal for use in complex communication and mixed signal applications.
This book makes use of the ARM Cortex-M family of processors in easy-to-follow, practical projects. It gives a detailed introduction to the architecture of the Cortex-M family. Examples of popular hardware and software development kits are described.
The architecture of the highly popular ARM Cortex-M processor STM32F107VCT6 is described at a high level, taking into consideration its clock mechanisms, general input/output ports, interrupt sources, ADC and DAC converters, timer facilities, and more. The information provided here should act as a basis for most readers to start using and programming the STM32F107VCT6 microcontroller together with a development kit.
Furthermore, the use of the mikroC Pro for ARM integrated development environment (IDE) has been described in detail. This IDE includes everything required to create a project; namely an editor, compiler, simulator, debugger, and device programmer.
Although the book is based on the STM32F107VCT6 microcontroller, readers should not find it difficult to follow the projects using other ARM processor family members.
The FNIRSI DPS150 is a high-performance adjustable DC power supply that features a USB-C input interface and multiple power supply modes, allowing precise adjustment of output voltage (0-30 V) and current (0-5 A).
It provides efficient, low-consumption, and stable output, equipped with multiple safety protection functions including overvoltage, overcurrent, overload, overheating, and reverse connection. It can be flexibly applied to serial connection of multiple devices, with rich and user-friendly display and operation, compact and portable design, meeting various application needs.
Features
30 V, 5 A, 150 W variable DC power with 0.01 V, 0.001 A precision, CC/CV modes, and <20 mV ripple to protect sensitive electronics.
Supports PC, QC, and DC inputs with programmable outputs and 6 preset voltage/current settings.
Compatible with 4 mm banana plugs, U-shaped terminals, and copper wires for various equipment.
8 safety mechanisms including overvoltage, current, short circuit, and overheating protection.
2.8-inch HD IPS screen with 90° flip, numerical and curve displays for easy monitoring.
Small, space-saving design for use in labs, repairs, and DIY projects.
Specifications
Input Voltage
5~32 V DC
Input Current
100 mA-5 A
Output Voltage
0-30 V
Output Current
0~5 A
Output Power
0-150 W
Input Way
PD fast charger
QC fast charger
Power bank
DC power adapters
Operating Environment
0-40°C
Load Regulation
0.49%
Full Load Efficiency
96.30%
Display
2.8 inch (320 x 240)
Dimensions
106 x 76 x 28 mm
Weight
178 g
Included
1x DPS150 Power Supply
2x Alligator clip wires (black & red)
1x C2C PD charging cable
1x 100 W PD GaN Adapter (EU)
1x Micro USB cable
1x Manual
Downloads
Manual
Firmware V0.0.1
UNDERSTANDING THE NEURONS IN NEURAL NETWORKS (PART 1)Artificial Neurons
EMC PRE-COMPLIANCE TEST FOR YOUR DC-POWERED PROJECT (PART 1)Dual DC LISN
ELECTRONIC LOAD FOR DC AND ACUp to 400 V and 10 A (Peak)
STARTING OUT IN ELECTRONICSEasier Than Imagined! ...Taking on the Choke!
IMAGE PROCESSING WITH THE NVIDIA JETSON NANO (PART 1)The Hardware and Software
AN IN-DEPTH LOOK AT MAINS TRANSFORMERSHow Do They Behave When They Are Switched On and Off?
YES WE CAN WITH PICAN 3A CAN Bus HAT for the Raspberry Pi 4
BALCONY POWER PLANTDIY Solar Balcony = Speedy Payback!
IMAGING AND VIDEO-STREAMING WITH A RASPBERRY PI 4The Raspberry Pi High-Quality Camera in Practice
USING DISPLAYS IN RASPBERRY PI PROJECTSSample Chapter: Organic Light Emitting Diode Displays (OLED)
HANDS ON THE PARALLAX PROPELLER 2 (PART 4)Sending Strings
ELEKTOR @ 60A Look Back at Previous Septembers
HOMELAB TOURSIn the Friesian Countryside, Where the Tubes Bloom ...
HYBRIDSPeculiar Parts, the series
A COMPASS ROSE USING THE GY-271Or Why We Move in Figures of Eight to Calibrate a Sensor
FINDING YOUR FOOTPRINTCalculate the Carbon Footprint of Your Electronics
ESP32-CONNECTED THERMOSTATKeep Your Wine at the Right Temperature!
MAGNETIC LEVITATION THE DIGITAL WAYESP32 Pico Replaces the Analog Comparator
ULTIMATE ARDUINO UNO HARDWARE MANUALSample Chapter: Main Microcontroller Bootloader
MICROPYTHON FOR THE ESP32 AND FRIENDS (PART 2)Control Matrix Displays Easily
MADMACHINE SWIFTIO BOARDModern Language Meets Modern Hardware
FROM LIFE’S EXPERIENCEOn-Again, Off-Again Relationship
HEXADOKUThe Original Elektorized Sudoku