Skip to main content

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..

Arduino.pinMode(13, Arduino.OUTPUT)

Arduino.digitalWrite(13, Arduino.HIGH)

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 basic Arduino’s functions and OneWire, Lcd, Tone, Stepper and Servo libraries 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!

lcd = Lcd([7, 8, 9, 10, 11, 12], [16, 2])

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)

Dependencies

Python (2.2 or later)

python-setuptools

python-serial

How to build and install

Nanpy is composed by a Python part, that provides a library to use Arduino via Python and a server firmware. You can install Nanpy on a Raspberry too :)

To install Nanpy just type (as root, requires python-setuptools):

python setup.py install

To build the firmware type:

cd firmware

export BOARD=uno (in case you use UNO board. Type ‘make boards’ for a complete list)

make

and then upload it on your board:

make upload

Optionally you can also set the baud rate:

export BAUDRATE=115200 (default value is 9600)

How to use

Serial communication

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

from nanpy import serial_manager

serial_manager.connect(‘/dev/ttyACM1’, 9600)

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 and stable instrument. 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 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 buy us 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

License

This software is released under MIT License. Copyright (c) 2012 Andrea Stagi <stagi.andrea@gmail.com>

Metadata

Release files for nanpy 0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nanpy 0.5
File Size Uploaded
nanpy-v0.5.tar.gz 39.9 kB Details

Release files / nanpy-v0.5.tar.gz

Download URL nanpy-v0.5.tar.gz
Size 39.9 kB
Tags Source
SHA-256 checksum
How to use checksums
4fafaba00c0c341c630fbb54e0c207de2244e98dec1d9cdd9fe08b52ee2778f6
BLAKE2b-256 checksum
How to use checksums
1ed556947fcc1c0f8217f090869fa26abbf8191af1184be04df91a7fec7160ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9

2 release files

0.8

1 release file

0.7

1 release file

0.6

1 release file

This release

0.5 This release

1 release file

0.4

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page