Monday, October 23, 2017

Which Programming Language Should I Learn?

ADVERTISEMENT:

Subscribe by Email!
Investing time into learning a first (or new) programming language is a seriously-time-consuming endeavor. For me it wasn't something to take lightly, as I knew I'd be investing thousands of hours into any given single language when I began. When people ask which programming languages they should learn or use, a great way to make recommendations is to consider these 3 things:
  1. Popularity
  2. Is it a scripted (interpreted) or compiled language, and how does that affect what I want to do with it?
  3. Which languages are most used in my industry or application?

1) Consider the popularity of languages. The more popular the language, the higher the priority it should be, within reason, since that's what industry uses and that's where you're going to find the most resources, help and support, compatibility with others, and jobs. The TIOBE index is the place to check:
"TIOBE programming community index is a measure of popularity of programming languages, created and maintained by the TIOBE Company based in Eindhoven, the Netherlands.[1] TIOBE stands for 'The Importance of Being Earnest' which is taken from the name of a comedy play written by Oscar Wilde at the end of the nineteenth century.[2]" (https://en.wikipedia.org/wiki/TIOBE_index).



Here's the index for 2017: https://www.tiobe.com/tiobe-index/. As shown above, the top 6, in this order, are:
  1. Java
  2. C
  3. C++
  4. C#
  5. Python, and 
  6. JavaScript. 
My top 3 recommendations are Java, C++, and Python, but not necessarily in that order. When it comes to you and your personal needs, goals, and desires, however, you need to choose for yourself! Here's some tips to help you make that decision.


***Subscribe by Email!***

Sunday, October 1, 2017

Arduino sine wave siren code using a lookup table in flash memory (PROGMEM)

ADVERTISEMENT:

Subscribe by Email!
By Gabriel Staples
Posted: 30 Sept. 2017
Last Updated: 30 Sept. 2017

Related Articles:
Other Articles:
(*Articles containing or linking to source code are marked with an asterisk)
Demo Video: 



***Subscribe by Email!***

Saturday, August 26, 2017

How to make a Linux Live USB with a 2nd, Windows-readable partition for storage

ADVERTISEMENT:

Subscribe by Email!
This article is a "Notes to Self" article. That means I wrote it for my own personal reference and use, with myself as the target audience during drafting, but decided to post it here because I believe it is useful to others too, and I want to reach as many people as possible, not just me. 

Ever wanted to have a bootable Linux USB flash drive with a separate, Windows-readable partition for general file storage? Here's how.

By Gabriel Staples
Written: 26-27 May 2016
Posted online: 26 Aug 2017
Updated: 26 Aug 2017

The Gist of it/The super short version:
-for the experienced Linux user
  1. Use gparted on a Linux computer to make 2 FAT32 partitions on the thumb drive. The partition created first must be for storage, while the 2nd one must be for the Linux distro you are putting on the Live USB.
  2. Use UNetbootin on a Linux computer to install your iso file for the Live USB onto the 2nd partition you just made above.
  3. Done. You can now boot from the USB thumb drive, from its 2nd partition, while its 1st partition only is readable and usable by Windows still (as well as by Linux or Mac too of course).


***Subscribe by Email!***

Wednesday, April 12, 2017

Computa Pranksta USB Mouse & Keyboard Device User Manual

ADVERTISEMENT:

Subscribe by Email!

Computa Pranksta now available on Amazon
Click link above or image below to go to Amazon and purchase.

Computa Pranksta User Manual
For Device Version: v0.90.0 or later
By Gabriel Staples
Written: 12 Apr 2017
Last Updated: 17 July 2017
Update History (newest on TOP):
-20170717 - added YouTube video: "How to Use & Configure..."
-20170423 - bug section updated w/some info about Caps Lock Response Mode 10
-20170422 - now available for sale on Amazon! Purchase links added.
-20170421 - added images
-20170416 - added bug notes; minor additions
-20170412 - initial version

Congratulations on your purchase of the Computa Pranksta USB Mouse and Keyboard device. Don't have one yet? Click the link above to purchase it on Amazon. This device is great for playing tricks on your friends, or just for keeping your computer awake when giving presentations, watching movies, playing certain video games (like Real Flight RC simulator) or when you don't have admin rights to change screensaver and screen lock settings.

This devices does NOT require any software or special drivers on your PC. It simply tells the computer it is a standard Human Interface Device mouse and keyboard. If your computer tries to detect a new device and install a driver, don't worry about it--even if it says it "fails." The device will work anyway.


Video: How to Use & Configure the Computa Pranksta USB Keyboard & Mouse Prank Device



***Subscribe by Email!***

Friday, March 31, 2017

Arduino (ATmega328) Direct Register Manipulation for Custom PWM Output (ex: 1us HIGH followed by 99us LOW --> 1% Duty Cycle at 10kHz)

ADVERTISEMENT:

Subscribe by Email!
Here's a quick example of how to make a hardware-based 1us HIGH pulse followed by a 99us LOW pulse (ie: 100us period, or 10kHz, PWM with a 1% duty cycle), via direct timer register manipulation. I've left ample comments for you to read and follow. This example below is therefore quite easy to follow and learn from, but just as it took me dozens of hours originally to learn how to do all this stuff from scratch--and to learn about all the different PWM modes possible as described in the datasheet and elsewhere, expect to spend at least a few hours if you are truly going to read the references and dig into it enough to understand it yourself. Good luck and have fun!

References to Study:
  1. Secrets of Arduino PWM, by Ken Shirriff
  2. ATmega328 Datasheet (660 pg version from 11/2015)
  3. ATmega168/328-Arduino Pin Mapping

Here's some oscilloscope screenshots of the output on Pin 3 produced by an Arduino Nano running the code below.

Rising edge to rising edge: Δx = 100us


***Subscribe by Email!***

Tuesday, January 10, 2017

Consulting Work

ADVERTISEMENT:

Subscribe by Email!
Page Written: 10 Jan 2017
Last Updated: 10 Jan 2017

Gabriel Staples
Electric RC Aircraft Guy, LLC

  • Click here if you're looking for my Contact Me page.
  • Click here if you're looking for my About Me page.
  • Read here to be inspired:
  • If you're looking to hire me into your company full-time, see my introduction, resume, and LinkedIn profile on my About Me page, and contact me.

Otherwise, if you're looking for some private consulting and custom engineering work, you've come to the right place.

Bluetooth-enabled touch lamp
I am a custom electronics and embedded systems private consultant and developer. I design and build custom digital circuits, write code, and use micro-controllers to meet custom electronics needs.

If you are using an Arduino for your project, and want your engineers to be able to do the same, I am a perfect fit for the job, as this is my go-to tool of choice.

Projects I have completed are listed below.


***Subscribe by Email!***