Category Archives: Open Source Software

Python intro

First of all python is free! Then, I think of python as a super cool programming language that is also a super calculator. It allows you to do higher level math calculations but it can also help find cheaper airplane tickets in the Internet (ask me if you’re interested). Here is a short tutorial to get you started with python after you have installed canopy.

Quick start:

  1. Install Enthought Canopy Express from https://www.enthought.com/downloads/.
  2. Open the Canopy editor and create a new file.
  3. Read the following mini tutorial and try some commands in the prompt.
  4. Type in the given equations from 1 to 6 and check the results with print statements. Don’t forget to hit run (Ctr + R or Cmd + R).

mini tutorial continued …

variables in python

you can basically use any typical variable name in python such as ‘perigee’ or ‘radius_earth’. Try to give descriptive variable names so your code is easily readable by others.

assign numerical values to variables

it’s as easy as you’d expect

perigee = 418.0

important note: in python 2 an integer number (such as ’18’) is treated differently than a floating number (such as ‘18.0’). To do math with floating numbers in python 2 you can’t have integers in the mix. So that’s why I usually initialize my integer variables with a ‘.0’ at the end so I won’t get strange results. You should try to see what I mean.

math calculations in python

To do math in python is also very simple and as expected

Examples:

Rp = perigee + radius_earth
R = a*(1-e**2)/(1+e*cos(nu))

important note: in python the exponent operator is ‘**’ instead of ‘^’ as in other programming languages. Here is a short list of the operators you  can use in python:

http://www.tutorialspoint.com/python/python_basic_operators.htm

print your results

The way you print in python 2 is different from python 3. This example is for python 2:

print 'Period = ',P,' min'

last but not the least: numpy

numpy is a python library that helps you do math. You can read more about it here: http://wiki.scipy.org/Tentative_NumPy_Tutorial

For now you just need to import this python library and use it blindly. On the first line of your script type:

from numpy import *

this will import all the functionality of numpy into your python script. For this tutorial it’s specially useful to be able to use the constant ‘pi’ and also for the function ‘cos’. Otherwise you would have to make your own ‘pi’ and ‘cos’.

Here is the source code to make the magic happen:

#iss orbital speed and period
from numpy import *

perigee = 418.0 #km
apogee  = 426.0 #km
radius_earth = 6371.0 #km
mu_earth = 3.986e5 # km^3/s^2

Rp = perigee + radius_earth
Ra = apogee  + radius_earth

print 'Radius Perigee: ', Rp, 'km'
print 'Radius Apogee : ', Ra, 'km'

# 1) eccentricity
e = (Ra - Rp)/(Ra + Rp)
print 'eccentricity: ', e

# 2) semimajor axis
a = (Ra+Rp)/2.0
print 'a =', a, ' km'

# 3) mechanical energy
epsilon = -mu_earth/(2*a)

# 4) altitude at nu=90deg
nu = 90*pi/180
R = a*(1-e**2)/(1+e*cos(nu))

print 'R =', R, 'km'

# 5) orbital speed
V = sqrt(2*(mu_earth/R + epsilon))
print("V = {:2f} km/s".format(V))

# 6) orbital period
P  = 2*pi*sqrt(a**3/mu_earth)
print("P = {:.2f} sec = {:.2f} min = {:.2f} hr".format(P, P/60, P/60/60))

Starting with Python

python logo
Python logo

For about a year I have been programming in Python as a Matlab alternative. I love Matlab but I can’t afford being tied to a licence. Python is free, open source, and so far I have been able to do everything I did with Matlab. I am fairly impressed!

Python is becoming, or it may be already, a main stream programming language, specially for open source software. Since it’s a scripting language a lot of programs use it for scripting in that app. A few examples are Blender for 3D modeling and animation, FreeCad for 3D mechanical modeling, Fenics for solving differential equations by finite element methods, etc. Many universities have adopted Python in their class work, MIT, Georgia Tech, UC Davis, etc.

If you want to start with Python let me recommend the following:

  1. Use Enthought! Yes, I know … there is also a licence attached if you really want full support and all the packages. But it’s free if you have a .edu email and even if you don’t have one there is a totally free version of Enhtought: Canopy Express! By the way, the Enthought distro works on Mac, Linux and Windows. It’s perfect!
  2. If you really… really don’t want to be attached to a licence (I made my peace with Enthought since they have a free version) you can use Spyderlib. It’s also an Integrated Development Environment (IDE) like Enthought but has a few less python libraries… but you can install them separately with a bit of pain.

If you want to lear more about Python and how to get started check these references:

Starting with EAGLE

The FREE version of  CadSoft EAGLE PCB Design Software is great to do PCB design for simple boards, up to 10×8 cm area, up to 2 layers. Here are some steps to get started:

1. Download the free version of Eagle (Mac, Linux, Win) just go to: http://www.cadsoftusa.com/download-eagle/

2. Go through the 3 tutorials made available on the Sparkfun website:

as an extra it’s good to go through this article as well:

3. Check these videos

If you don’t want to deal with size or layer limits then try KiCad: http://www.kicad-pcb.org/