Embedded Digital Control with Microcontrollers

Cem Unsalan, Duygun E. Barkana, H. Deniz Gurhan Embedded Digital Control with Microcontrollers: Implementation with C and Python (Wiley – IEEE)

About the Author

Cem Ünsalan, PhD, has over 20 years of experience working on signal processing and embedded systems. He received his doctorate from Ohio State University in 2003. He has published 23 papers in scientific journals and eight international books. 

Duygun E. Barkana, PhD, has over 16 years of experience working on control and robotic systems. She received her doctorate from Vanderbilt University in 2007. She has published 22 papers in scientific journals and six international book chapters. 

H. Deniz Gürhan is pursuing a PhD at Yeditepe University, where he received his BSc degree. He has over six years of experience working with guided microprocessors and digital signal processing. 

Table of Contents:

1. Introduction
2. Hardware to be Used in the Book
3. Software to be Used in the Book
4. Fundamentals of Digital Control
5. Conversion Between Analog and Digital Forms
6. Constructing Transfer Function of a System
7. Transfer Function Based Control System Analysis
8. Transfer Function Based Controller Design
9. State Space Based Control System Analysis
10. State Space Based Controller Design
11. Adaptive Control
12. Advanced Applications

 

Installing CUDA driver for NVIDIA GPU in Ubuntu 20.04

First download CUDA driver from here: https://developer.nvidia.com/cuda-downloads

Choose operating system (Linux), architecture (x86_64), distribution (Ubuntu), Version (20.04), Installer type (deb (local)).

https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=2004&target_type=deblocal

Then follow the instruction:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda-repo-ubuntu2004-11-2-local_11.2.2-460.32.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-2-local_11.2.2-460.32.03-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-2-local/7fa2af80.pub
sudo apt-get updatesudo apt-get -y install cuda

Redmine Installation Problems in Ubuntu 18.04.03

Problems encountered while installing Redmine 3.4.4 in Ubuntu 18.04.03

PROBLEM #1 Cannot Build SQLite3

# gem update
Updating installed gems
Updating sqlite3
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.

current directory: /var/lib/gems/2.5.0/gems/sqlite3-1.4.1/ext/sqlite3
/usr/bin/ruby2.5 -r ./siteconf20190813-10918-113tafq.rb extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'brew install sqlite3',
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/$(RUBY_BASE_NAME)2.5
--with-sqlcipher
--without-sqlcipher
--with-sqlite3-config
--without-sqlite3-config
--with-pkg-config
--without-pkg-config
--with-sqlcipher
--without-sqlcipher
--with-sqlite3-dir
--without-sqlite3-dir
--with-sqlite3-include
--without-sqlite3-include=${sqlite3-dir}/include
--with-sqlite3-lib
--without-sqlite3-lib=${sqlite3-dir}/lib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

/var/lib/gems/2.5.0/extensions/x86_64-linux/2.5.0/sqlite3-1.4.1/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /var/lib/gems/2.5.0/gems/sqlite3-1.4.1 for inspection.
Results logged to /var/lib/gems/2.5.0/extensions/x86_64-linux/2.5.0/sqlite3-1.4.1/gem_make.out
Updating web-console
ERROR: Error installing web-console:
Unresolved dependency found during sorting - activesupport (>= 4.2.0) (requested by rails-dom-testing-2.0.3)
Gems updated: sqlite3

SOLUTION: as suggested in the error message, just install libsqlite3-dev:

apt-get install libsqlite3-dev

PROBLEM #2: cannot update webconsole

# gem update
Updating installed gems
Updating web-console
ERROR: Error installing web-console:
Unresolved dependency found during sorting - activesupport (>= 4.2.0) (requested by rails-dom-testing-2.0.3)
Nothing to update

SOLUTION:
as in https://stackoverflow.com/questions/56084457/getting-error-when-installing-web-console

‘gem install -f web-console’

PROBLEM #3: Cannot bundle install

bundle install is needed to upgrade all gems to latest versions.

Problem:
> bundle install --without development test
Traceback (most recent call last):
1: from /usr/local/bin/bundle:23:in `<main>'
/usr/local/bin/bundle:23:in `load': cannot load such file -- /usr/share/rubygems-integration/all/gems/bundler-1.16.1/exe/bundle (LoadError)

Solution:

SOLUTION #1:

Ref: https://github.com/bundler/bundler/issues/6227
Just run:

gem update --system
gem uninstall bundler
gem install bundler
bundle install

this solution doesn’t not always work

SOLUTION #2: Use old bundler

https://www.redmine.org/issues/30353

gem install bundler -v 1.17.3 # Currently the latest bundler version < 2.0
bundle _1.17.3_ install