skip to navigation
skip to content

Not Logged In

nanpy 0.9

Use your Arduino board with Python.

Description
-----------
The main purpose of Nanpy is making programmers' life easier, giving them something to create
prototypes faster and use Arduino in a simpler way,
thanks to a simple and powerful language like Python.
Also Nanpy can run on RaspberryPi (tested with Raspbian http://www.raspbian.org/)
so you can use it for communicating with Arduino :)

Let's start with a classic example, turn on a led placed in the 13th pin..

        from nanpy import (ArduinoApi, SerialManager)

        connection = SerialManager()
        a = ArduinoApi(connection=connection)
        a.pinMode(13, a.OUTPUT)
        a.digitalWrite(13, a.HIGH)

NOTE: you can also use the old serial_manager global object

There are a lot of projects able to do that. Nanpy can do more!

Nanpy is easily extensible and can theoretically use every library,
allowing you to create how many objects you want.
We started supporting OneWire, Lcd, Stepper and Servo library and they're still incomplete.

Let's try to connect our 16x2 lcd screen on pins 7, 8, 9, 10, 11, 12 and print something!

        connection = SerialManager()
        lcd = Lcd([7, 8, 9, 10, 11, 12], [16, 2], connection=connection)
        lcd.printString("Hello World!")

really straightforward now, isn't it? :)

Multithreading
--------------
What happens if you call methods in an async context? Nothing bad, all works! every call is mutually exclusive..

For example, suppose that two threads need to write on the same Lcd and in different positions at the same time...
well, just call printString on the Lcd object specifying the position (row and column)

        #Thread_1
        ...
        lcd.printString("Hello First Row!", 0, 0)
        ...

        #Thread_2
        ....
        lcd.printString("Hello Second Row!", 0, 1)
        ...

How to build and install
------------------------
You need to build the firmware for your Arduino first, just clone the firmware repository at https://github.com/nanpy/firmware
and follow the README to configure and build it.

To install Nanpy Python library just type (as root):

        python setup.py install

How to use
----------
### Serial communication

Nanpy autodetects the serial port for you, anyway you can specify another serial port manually:

        from nanpy import SerialManager
        connection = SerialManager(device='/dev/ttyACM1')

### Import modules

Import all the modules you need :)

        from nanpy import Arduino
        from nanpy import (OneWire, Lcd)
        ...

How to contribute
-----------------
Nanpy needs a lot of work to be a great tool.
You can contribute with patches (bugfixing, writing improvements, creating support for a new library not included in Nanpy yet,
writing examples and so on), writing documentation, reporting bugs,
creating packages or simply spreading Nanpy through the web if you like it :)

If you have any doubt or problem, please contact me at <stagi.andrea@gmail.com>

Donate
------
Do you want to support us with a coffee? We need it to code all night long!
if you like this project and you want to support it with some cents, please donate :)

https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=TDTPP5JHVJK8J
 
File Type Py Version Uploaded on Size
nanpy-firmware-v0.9.tar.gz (md5) Source 2014-04-22 42KB
nanpy-v0.9.tar.gz (md5) Source 2014-04-22 26KB
  • Downloads (All Versions):
  • 76 downloads in the last day
  • 611 downloads in the last week
  • 1097 downloads in the last month
  • Author: Andrea Stagi
  • Maintainer: Andrea Stagi
  • Home Page: https://github.com/nanpy/nanpy
  • Bug Tracker: https://github.com/nanpy/nanpy/issues
  • Download URL: https://github.com/nanpy/nanpy/tags
  • Keywords: arduino library prototype raspberry
  • License:
    MIT License
    
    Copyright (c) 2012-2013 Andrea Stagi <stagi.andrea@gmail.com>
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    The above copyright notice and this permission notice shall be included in
    all copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    THE SOFTWARE.
  • Package Index Owner: astagi
  • DOAP record: nanpy-0.9.xml