Lulu's blog
Home
(current)
Donate
Contact
Français
Lulu's blog
Actuators
Brushless Hall sensor frequency calculator
Commutation sequence for BLDC motors
Inside a Maxon EC45 BLDC motor
How to size a motor?
Motor sizing for an autonomous mower
Online motor sizing calculator
Algorithmic
Algorithmic
Arduino
Arduino based accurate distance measurement for Sharp GP2Y0A02YK
Arduino based accurate distance measurement for sharp GP2Y0A21YK
Arduino 1.0.5 and Atmel templates for Qt Creator 3.0.1 and Ubuntu 14.04
Arduino serial echo
Arduino: serial terminal on TFT display
OV7670 camera and arduino
How to install Arduino IDE 2.0 on Ubuntu 20.04
How to install Arduino IDE on Ubuntu 18.04
Radino RF233 in Arduino IDE
Un Arduino or une Arduino ?
Bibliography
RFID mobile robot localization
Learn C programming
Learn C programming
Lesson 1.1. History of C programming language
Lesson 1.2. First program
Lesson 1.3. Compilation
Lesson 1.4. Preprocessor directives
Lesson 1.5. Which compiler to choose?
Lesson 1.6. Flowchart
Lesson 2.1. Types and variables
Lesson 2.2. Integers
Lesson 2.3. Floating point numbers
Lesson 2.4. Characters
Lesson 2.5. Variables initialization
Lesson 2.6. Ariane flight 501
Lesson 3.1. Arithmetic operators
Lesson 3.2. modulo
Lesson 3.3. Operators and types
Lesson 3.4. Type casting
Lesson 3.5. Bitwise operators
Lesson 3.6. Bitwise operators details
Lesson 3.7. Shifting operators
Lesson 3.8. Assignment operators
Lesson 3.9. Increment and decrement operators
Lesson 3.10. Comparison operators
Lesson 3.11. Logical operators
Lesson 3.12. Operator precedence
Lesson 4.1. printf
Lesson 4.2. scanf
Lesson 4.3. putchar
Lesson 5.1. Conditional branching (if...else)
Lesson 5.2. Nested if and indentation
Lesson 5.3. Checking intervals
Lesson 5.4. Ternary Operator ?:
Lesson 5.5. switch..case statement
Lesson 5.6. Break keyword in switch..case
Lesson 6.1. do..while loop in C
Lesson 6.2. While loop in C
Lesson 6.3. For loop in C
Lesson 6.4. How to choose the right loop in C ?
Lesson 6.5. Exercices on loops in C
Lesson 7.1. Bit masking
Lesson 7.2. Bit masking, how to clear a bit in C?
Lesson 7.3. Bit masking, how to set a bit in C?
Lesson 7.4. Bit masking, how to toggle a bit in C?
Lesson 7.5. Bit masking, how to check a single bit in C?
Lesson 7.6. Overview of bit masking
Lesson 8.1. Basic syntax of C functions
Lesson 8.2. Calling C functions
Lesson 8.3. Void keyword
Lesson 8.4. Return keyword
Lesson 8.5. Variable scope
Lesson 8.6. Global variables
Lesson 8.7. Static variables
Lesson 8.8. Random numbers in C
Lesson 8.9. Mathematical functions in C
Lesson 9.1. Syntax of C arrays
Lesson 9.2. Array initialization
Lesson 9.3. Multidimensional arrays
Lesson 9.4. How C arrays are stored in memory?
Lesson 9.5. Arrays and functions
Lesson 9.6. Exercises on C arrays
Lesson 10.1. Strings in C
Lesson 10.2. Null terminated string
Lesson 10.3. The string.h library
Lesson 10.4. String and functions
Lesson 11.1. Introduction to pointers in C
Lesson 11.2. Syntax of C pointers
Lesson 11.3. Dynamic memory allocation
Lesson 11.4. Incrementing pointers
Lesson 11.5. Pointers as function argument in C
Lesson 12.1. Introduction to structures in C
Lesson 12.2. Properties of structures in C
Lesson 12.3. Structures and pointers
Lesson 12.4. Structures and functions
Lesson 13.1. Recursive functions in C
Lesson 13.2. Depth of recursive functions
Lesson 13.2. Mutual recursion
Lesson 14.1. Additional exercises
Chess
Best chess opening according to Stockfish
How to use Stockfish in command line
CodeIgniter 3.1.9
How to change default language in CodeIgniter?
How to create a contact form with CodeIgniter?
How to create a custom 404 error page with CodeIgniter?
How to perform basic DataBase operations with CodeIgniter?
How to remove index.php from URL with CodeIgniter?
How to slugify a string in CodeIgniter?
How to install CodeIgniter on Ubuntu?
Control theory
Ball and beam model
Dynamic model of an inverted pendulum (part 1)
Dynamic model of an inverted pendulum (part 2)
Dynamic model of an inverted pendulum (part 3)
Dynamic model of an inverted pendulum (part 4)
Dynamic model of an inverted pendulum (part 5)
Dynamic model of an inverted pendulum (part 6)
Modelling of a simple pendulum
Equation of closed and open loop systems
PI-based first-order controller
COVID-19
Prediction of the evolution of the COVID-19
Prediction of the evolution of the COVID-19 deaths in some countries
Prediction of the evolution of the COVID-19 in some countries
Modelization of COVID-19 for Mainland China
D3.js
D3.js tutorial
D3.js tutorial - Part 1 - Start with D3.js
D3.js tutorial - Part 2 - Selectors
D3.js tutorial - Part 3 - Basic methods
D3.js tutorial - Part 4 - Method chaining
D3.js tutorial - Part 5 - Create SVG and draw a circle
D3.js tutorial - Part 6 - Basic shapes
D3.js tutorial - Part 7 - Data binding
D3.js tutorial - Part 8 - Bar chart
D3.js tutorial - Part 9 - Resize chart
D3.js tutorial - Part 10 - Scale chart
D3.js tutorial - Part 11 - Responsive chart
D3.js tutorial - Part 12 - Axes
Data
List of 200 english irregular verbs
List of 200 english irregular verbs in JSON format
List of 200 english irregular verbs in text or .tsv format
C / C++
How to compile C/C++ files with an external library
How to install Qt Creator on Ubuntu 16.04?
How to install Qt Creator on Ubuntu 18.04
How to install Visual Studio Code on Ubuntu 18.04
How to resize shared memory limit on Ubuntu 14.04
How to swap variables in C or C++
How to read XML files with Qt ?
C++ std::vector
Docker
How to install Docker on Ubuntu 22.04?
How to install and run Portainer on Ubuntu 22.04?
How to reset Portainer password?
Run MySQL and phpMyAdmin with Docker Compose
EAGLE
Adding copper pour in EAGLE
Adding mounting holes to a PCB with EAGLE PCB software
Create Solidworks 3D model from EAGLE
EAGLE Tutorial - Part 1 - Control panel
EAGLE Tutorial - Part 2 - Schematic editor
EAGLE Tutorial - Part 3 - Board editor
EAGLE Tutorial
Install EAGLE 6.6 on Ubuntu 16.04
Understanding layers in EAGLE PCB Software
Usefull EAGLE ULP scripts
Electronics
Datasheet for the AZDelivery Display SSD1306
Farad to watt.hour capacity converter
Online resistance calculator
ESP32
Built-in RGB led on an ESP32 FireBeetle DFR0654
How to install ESP32 boards in the Aduino IDE?
Linearity of the ESP32 ADC
ESP32-DevKitC V4 real current consumption in deep sleep mode
ESP32 FireBeetle DFR0478 real current consumption in deep sleep mode
ESP32 FireBeetle DFR0654 real current consumption in deep sleep mode
ESP32-S3-DevKitM-1 real current consumption in deep sleep mode
ESP32 real current consumption in deep sleep mode
Eurobot
Finals of the French cup of Robotics 2018
Firebase
Hosting Node.js Express website on Firebase wth ES modules
Hosting a dynamic website on Firebase
Hosting a static website on Firebase
Gridfinity
Gridfinity, magnet polarity
Gridfinity Super Light Baseplate
Home automation
Inside a Xiaomi Aqara Relay
Customer tele-information on French electric meter Linky
Inertial measurement unit
Xsens MTi-3 (9-Axis IMU + AHRS)
MPU-9250 and Arduino (9-Axis IMU)
IP cameras
D-Link DCS-5222L
Foscam C2M IP camera
Hikvision DS-2CD2742FWD-IS IP Camera
Reolink RLC-520 IP Camera
IP cameras for home automation
JavaScript modules
Simple and lightweight JavaScript Ajax module
Kalman filters
Kalman filter example
Keyboards
Cherry MX switches
How to use logkeys (keyboard sniffer) on Ubuntu?
How to install logkeys (keyboard sniffer) on Ubuntu?
Review of the Nuphy Air75 keyboard
Review of the WEIKAV Sugar65 keyboard
What are the best websites to practice typing?
Keycaps for French AZERTY keyboards
Markdown
Markdown blockquotes
Markdown code and syntax highlighting
Markdown emphasys
Markdown headings
Markdown horizontal lines
Markdown images
Markdown links
Markdown lists
Mathematics
Calculating the transformation between two set of points
Catmull-Rom splines
Check if a number is prime online
Check if a point belongs on a line segment
Cross product
Common derivatives rules
Common derivatives
Dot product
How to calculate the intersection points of two circles
How to check if four points are coplanar?
Common integrals (primitive functions)
Least square approximation with a second degree polynomial
Least-squares fitting of circles
Least-squares fitting of sphere
The mathematics behind PCA
Online quadratic equation solver
Online square root simplifyer
Sines, cosines and tangeantes of common angles
Singular value decomposition (SVD) of a 2×2 matrix
Tangent line segments to circles
Understanding covariance matrices
Weighted PCA
Matlab
How to calculate intersection points between two circles in Matlab?
Load MNIST database in Matlab
Matlab optimization, example of function optimization
The right way to make animations with Matlab
Mechanics
Angular and linear velocity, cross product
Configurable gear for solidwork
Elastic collision - Part 1 - Hypotheses
Elastic collision - Part 2 - Velocity decomposition
Elastic collision - Part 3 - Velocity calculation
Elastic collision - Part 4 - Synthesis and reminder
Elastic collision - Part 5 - Source code
Elastic collision - Equations and simulation
Enable Add-Ins in Solidworks
Newton's Second Law of motion
Geometric model for differential wheeled mobile robot
How to insert gears in a Solidwoks assembly
Mathematical model of a mechanical differential
Model of a rotary joint driven by a linear motor [Part 2]
Model of a rotary joint driven by a linear motor [Part 3]
Model of a rotary joint driven by a linear motor [Part 4]
Model of a rotary joint driven by a linear motor
Mice
MX Master 3: world best mouse
PC monitors
Monitor most popular dimensions
Viewsonic monitors
Networks
Matlab TCP/IP socket sender and receiver
Neural networks
Neural networks curve fitting
Datasets for deep learning
Gradient descent example
How popular are neural networks over the years?
Install TensorFlow and Keras for Linux
Learning rule demonstration
Linear regression example
Most popular activation functions for deep learning
Most relevant deep learning research papers
Neural Network Perceptron
Simplest neural network with TensorFlow
Simplest perceptron
Single layer training algorithm
Single layer classification example
Gradient descent for neural networks
Single layer limitations
Neural networks
Node.js
Add authentication of users with their Google account in Node.js / Auth0
Install Atom on Ubuntu
Install node.js on Ubuntu
MySQL queries in Node.js
Simple http web server with Node.js
Simple web server with Express in Node.js
Length to angle converter
Convert degrees [°] to meters [m] and vice-versa
Convert radians [rad] to meters [m] and vice-versa
Convert radians [rad] to millimeters [m] and vice-versa
Length unit converter
Convert inches [in] to centimeters [cm] and vice-versa
Convert meters [m] to kilometers [km] and vice-versa
Convert meters [m] to millimeters [mm] and vice-versa
ownCloud
How to install ownCloud server on Ubuntu 20.04
PCB
CAN bus motor controller for DC or BLDC motors
CAN bus pressure sensor
CAN bus shield for Raspberry Pi 3
CAN bus ultrasonic distance sensor
CAN bus time of flight distance sensor
Low-cost PCB manufacturers
Projects
B2P2 variable geometry single tracked vehicle
2023 Student Projects
Python
How to compute all the factors of a given number in Python
Copy lists in Python
Count list elements in Python
Create lists in Python
DataFrames in Pandas/Python
Delete lists in Python
Get list elements in Python
How to get and parse HTML pages in Python?
Insert, append, extend and concatanate lists in Python
Install Visual Studio Code on Ubuntu for Python
Iterate over lists in Python
Matplotlib and Visual Studio Code
Remove an element from a list in Python
Reverse lists in Python
Find elements in lists in Python
Slice lists in Python
Quaternion
Quaternions and gyroscope
Quaternion conjugate
Quaternion normalization
Quaternion product
Quaternion to rotation matrix
Quaternions and rotations
Rich content editor
Flatten HTML
How to get HTML content from Quill editor?
WYSIWYG rich content editor. Part 1. The basics
WYSIWYG rich content editor. Part 2. Check if bold
List of WYSIWYG rich content editors
How to insert MathJax formulas in Quill editor?
Non editable span in contenteditable
Security
List of the 100 most common passwords
List of the 1,000 most common passwords
List of the 10,000 most common passwords
List of the 100,000 most common passwords
List of the 1,000,000 most common passwords
Load the most popular passwords in C / C++
Load the most popular passwords in Node.js
Load the most popular passwords in Python
SEO
How many characters in search engine queries?
PageRank Google iterative algorithm
PageRank Random Surfer
Serial library
Convert bauds to bits per second
Convert bauds to bytes per second
C++ cross-platform RS232 serial communication library
Most common baud rates table
How to read and write arrays of bytes on serial port in C/C++
How to read and write strings on serial port in C/C++
How to list serial ports in C?
What are the most used baud rates?
SFML
SFML - Part 1 - Installation and first program with Qt Creator
SFML - Part 10 - Text and font
SFML - Part 2 - Get available screen resolutions
SFML - Part 3 - Display a sprite
SFML - Part 4 - Moving a sprite with the keyboard
SFML - Part 5 - Shaders
SFML - Part 6 - Sprites and shaders
SFML - Part 7 - Heat effect shader
SFML - Part 8 - Water effect shader
SFML - Part 9 - Sound and music
SFML tutorial
Unit converter
Convert binary, decimal and hexadecimal
Convert cubic meters of topsoil to tonnes
Convert from binary to decimal and vice-versa
Convert newton-metre [N.m] to kilogramme-centimeter [Kg.cm] and vice-versa
Convert newton-metre [N.m] to millinewton-metre [mN.m] and vice-versa
Convert meters per second [m/s] to kilometers per hour [km/h] and vice-versa
Convert miles per hour [mph] to kilometers per hour [km/h] and vice-versa
Convert newton-meter [N.m] to newton [N] and vice-versa
Convert kilometers per hour [km/h] to radians per second [rad/s] and vice-versa
Convert radians per second [rad/s] to meters per second [m/s] and vice-versa
Convert radians per second [rad/s] to miles per hour [mph] and vice-versa
Convert revolutions per minute [rpm] to radians per second [rad/s] and vice-versa
Convert revolutions per second [rps] to radians per second [rad/s] and vice-versa
Convert radians [rad] to degrees [°] and vice-versa
Convert revolution per minute [rpm] to miles per hour [mph] and vice-versa
Convert revolutions per minute [rpm] to kilometers per hour [km/h] with gear ratio and vice-versa
Convert revolutions per minute [rpm] to kilometers per hour [km/h] and vice-versa
Convert revolutions per minute [rpm] to meters per second [m/s] and vice-versa
Convert revolutions per second [rps] to meters per second [m/s] and vice-versa
Universal Robot
How to access to a Linux terminal on Universal Robots
Pedestral base for Universal Robot UR5
Web development ( advanced )
Add icons on your web pages
3D image carousel in pure JavaScript and CSS
Draw a circle in a square in pure CSS with ::before
CSS color table
CSS styles for Rainbow code highlighter
How to detect ad blockers on web sites?
HTML drop-down list of citizenships.
HTML five stars ranking
How Bézier curves are described in SVG paths
How to check if a number is prime in JavaScript
How to get list of subdirectories in PHP
How to automatically scroll to the bottom of the page in Google Chrome
How to send dynamic data using Ajax?
How to slugify a string in JavaScript?
How to slugify a string in PHP?
How to sort a multidimensional array in PHP?
In PHP, how to convert a date in French?
Levenshtein distance in mySQL
List of supported languages by Prism syntax highlighter
Nice HTML checkbox
PHP array of countries and citizenships.
Pure CSS loader
Replace HTML checkbox with images
Simple SSE in PHP
Sessions or cookies?
Web development
Web development class
Lesson 1.1. History of the Internet
Lesson 1.2 Introduction to HTML
Lesson 1.3. Special characters in HTML
Lesson 1.4. Comments in HTML
Lesson 1.5. Global structure of HTML pages
Lesson 1.6. Hyperlinks in HTML
Lesson 1.7. ID attribute in HTML tags
Lesson 1.8. HTML anchors
Lesson 1.9. Images in HTML pages
Lesson 1.10. HTML tables
Lesson 1.11. Most used HTML tags
Lesson 1.12. Some advice
Lesson 1.13. Ressources
Lesson 2.1. Introduction to CSS
Lesson 2.2. Inline CSS
Lesson 2.3. Internal CSS
Lesson 2.4. External CSS
Lesson 2.5. CSS selectors
Lesson 2.6. CSS colors
Lesson 2.7. Margin and padding
Lesson 2.8. CSS units
Lesson 2.9. Most used CSS properties
Lesson 3.1. History of JavaScript
Lesson 3.2. JavaScript Hello World
Lesson 3.3. Console.log
Lesson 3.4. Comments in JavaScript
Lesson 3.5. Variables in JavaScript
Lesson 3.6. JavaScript events
Lesson 3.7. Document Object Model (DOM)
Lesson 3.8. Changing HTML
Lesson 3.8. JavaScript frameworks
Lesson 4.1. Introduction to PHP
Lesson 4.2. PHP tags
Lesson 4.3. PHP variables
Lesson 4.4. isset vs empty vs is_null
Lesson 4.5. PHP operators
Lesson 4.6. PHP quotes
Lesson 4.7. Tests in PHP: if .. else
Lesson 4.8. PHP arrays
Lesson 4.9. PHP loops
Lesson 4.10. PHP sessions
Lesson 5.1. HTML forms
Lesson 5.2. HTML forms, POST or GET?
Lesson 5.3. Input fields
Lesson 5.4. HTML form fields
Lesson 6.1. Introduction to MySQL
Lesson 6.2. phpMyAdmin
Lesson 6.3. SQL queries
Lesson 6.4. Connect to MySQL in PHP
Lesson 6.5. SQL queries in PHP
Lesson 6.6. Getting data from MySQL in PHP
Lesson 6.7. Get last ID
Web servers
How to configure php.ini on AWS EC2 Cloud9?
How to create a fresh AWS Cloud9 environment?
How to install a virtual XAMPP web server on Lubuntu
How to install a web server on Debian 11 with VirtualBox
How to install and configure Xdebug on Ubuntu?
How to install CodeIgniter 4 on Amazon AWS Cloud9 server
How to install phpMyAdmin on Ubuntu?
How to configure and run Apache server on AWS EC2 Cloud9?
How to upgrade PHP to 7.2 on ubuntu?
How to upgrade PHP to 7.3 on ubuntu?
How to upgrade phpMyAdmin on Linux?
How to install MySQL and phpMyAdmin on AWS EC2 Cloud9?
Part 1. How to create new machine with VirtualBox?
Part 2. How to install Debian 11 with VirtualBox?
Part 3. How to configure Apache on Debian 11?
Part 4. How to install PHP on Debian 11?
Part 5. How to install MariaDB on Debian 11?
Part 6. How to install phpMyAdmin on Debian 11?
Part 7. How to install an FTP server on Debian 11?
ZigBee
ZigBee shield for Arduino
Autopsy of a ZigBee frame
OM15020 JN5169 NXP USB Dongle
IEEE 802.15.4 ZigBee chips
ZigBee frame encryption with AES-128-CCM*
ZigBee sniffer
Legal notice
Contact
© Philippe Lucidarme