Firmata: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 10: Line 10:
Select Examples -> Firmata -> StandardFirmata from the menu and hit the Upload button.
Select Examples -> Firmata -> StandardFirmata from the menu and hit the Upload button.


==Setting up Ubuntu box==
==Classic Python 3.4==
 
Install PyMata:
 
  git clone https://github.com/MrYsLab/PyMata
  cd PyMata
  sudo python3 setup.py install
 
Code example for test.py:
 
  import signal
  import sys
  from PyMata.pymata import PyMata
 
  def signal_handler(sig, frame):
      print('You pressed Ctrl+C!!!!')
      if board is not None:
          board.reset()
      sys.exit(0)
 
 
  signal.signal(signal.SIGINT, signal_handler)
  board = PyMata("/dev/ttyACM0")
  board.set_pin_mode(5, board.PWM, board.DIGITAL)
 
  while 1:
      for i in range(0, 255):
          board.analog_write(5, i)
      for i in range(255, 0, -1):
          board.analog_write(5, i)
 
Run the example:
 
  python3 test.py
 
 
==Asynchronous Python 3.5==


For Ubuntu 14.04 first add Python 3.5 repository:
For Ubuntu 14.04 first add Python 3.5 repository:

Revision as of 21:30, 20 February 2016


Setting up Arduino

Clone Arduino library to your machine:

 git clone http://github.com/firmata/arduino ~/Documents/Arduino/libraries/Firmata

Select Examples -> Firmata -> StandardFirmata from the menu and hit the Upload button.

Classic Python 3.4

Install PyMata:

 git clone https://github.com/MrYsLab/PyMata
 cd PyMata
 sudo python3 setup.py install

Code example for test.py:

 import signal
 import sys
 from PyMata.pymata import PyMata
 def signal_handler(sig, frame):
     print('You pressed Ctrl+C!!!!')
     if board is not None:
         board.reset()
     sys.exit(0)


 signal.signal(signal.SIGINT, signal_handler)
 board = PyMata("/dev/ttyACM0")
 board.set_pin_mode(5, board.PWM, board.DIGITAL)
 while 1:
     for i in range(0, 255):
         board.analog_write(5, i)
     for i in range(255, 0, -1):
         board.analog_write(5, i)

Run the example:

 python3 test.py


Asynchronous Python 3.5

For Ubuntu 14.04 first add Python 3.5 repository:

 sudo add-apt-repository ppa:fkrull/deadsnakes
 sudo apt-get update
 sudo apt-get install python3.5 python3-serial

Ubuntu 15.10 already has Python 3.5 available, simply install it:

 sudo apt-get install python3.5 python3-serial

Ubuntu 16.04 will ship Python 3.5 by default just add serial module:

 sudo apt-get install python3-serial

Install PyMata for Python 3.5:

 git clone https://github.com/MrYsLab/pymata-aio
 cd pymata-aio
 sudo python3.5 setup.py install

Create test.py with following code:

 from pymata_aio.pymata3 import PyMata3
 from pymata_aio.constants import Constants
 
 # instantiate the pymata_core API
 board = PyMata3()
 
 # set the pin mode
 board.set_pin_mode(13, Constants.PWM)
 
 for j in range(0, 10):
     for i in range(0, 255):
         board.analog_write(13, i)
     for i in range(255, 0, -1):
         board.analog_write(13, i)
 
 # reset the board and exit
 board.shutdown()

Plug the Arduino to your machine via USB cable and run the code:

 python3.5 test.py