Arquivo da Categoria: Sem categoria
Modules e Packages no Eclipse
Um módulo é um ficheiro .py enquanto que uma package é uma pasta que contem um módulo __init__.py, tal como é explicado aqui.
Variáveis, funções e classes definidas num módulo xpto.py podem ser acedidos de outros módulos se forem importados:
import xpto
Esses elementos podem ser usados fazendo: xpto.elemento
Para se usar diretamente um elemento temos antes que importar assim:
from xpto import elemento
PyDev no Ubuntu
Comecei por verificar num terminal que o Python já está instalado (versão 2.7.6):
helio@Thor:~$ python Python 2.7.6 (default, Mar 22 2014, 22:59:56)
Eclipse
Comecei por instalar o Eclipse IDE for C/C++ Developers Linux 64 bit (eclipse-cpp-luna-SR1-linux-gtk-x86_64.tar.gz).
Uma vez descarregado o ficheiro .gz seguir este tutorial.
Depois no Eclipse Marketplace, instalei os plugins:
- PyDev – Python IDE for Eclipse 3.8.0
- HTML Editor (WTP) Luna
Não esquecer de ir a Window>Preferences e em PyDev>Interpreters>Python Interpreter clicar no botão New… e escolher o executável do Python que está em /usr/bin/python (como se pode confirmar pelo comando which python).
Ir também a Window>Open Perpective>Other… e escolher PyDev.
Eclipse como root
Ás vezes é necessário executar aplicações no Eclipse como root (por exemplo no acesso ao porto série). Nesse caso há que fazer o que é indicado aqui.
Virtualenv
Instalar as ferramentas de desenvolvimento do Python:
sudo apt-get install python-dev
sudo apt-get install python-setuptools
Instalar o pip:
sudo easy_install pip
Instalar o virtualenv:
sudo pip install virtualenv
Criar um ambiente virtual “venv” dentro da pasta python do workspace do eclipse:
cd ~/workspace/python
virtualenv venv
Segue-se a ativação:
source venv/bin/activate
Instalar o Flask:
pip install flask
pip install flask-socketio
pip install pyserial
No fim, desativar o virtualenv:
deactivate
Servidor
Aqui.
Matplotlib tutorial
Interrupções no Raspberry Pi
http://raspi.tv/2013/how-to-use-interrupts-with-python-on-the-raspberry-pi-and-rpi-gpio
http://www.thebox.myzen.co.uk/Raspberry/Magic_Wand.html
http://makezine.com/projects/tutorial-raspberry-pi-gpio-pins-and-python/
http://blog.oscarliang.net/use-gpio-pins-on-raspberry-pi/
http://www.raspberrypi-spy.co.uk/2012/06/simple-guide-to-the-rpi-gpio-header-and-pins/
https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code
class Adafruit_I2C(object):
def __init__(self, address, busnum=-1, debug=False):
# By default, the correct I2C bus is auto-detected using /proc/cpuinfo
# Alternatively, you can hard-code the bus version below:
# self.bus = smbus.SMBus(0); # Force I2C0 (early 256MB Pi’s)
# self.bus = smbus.SMBus(1); # Force I2C1 (512MB Pi’s)
def write8(self, reg, value):
“Writes an 8-bit value to the specified register/address”
def write16(self, reg, value):
“Writes a 16-bit value to the specified register/address pair”
def writeRaw8(self, value):
“Writes an 8-bit value on the bus”
def writeList(self, reg, list):
“Writes an array of bytes using I2C format”
def readList(self, reg, length):
“Read a list of bytes from the I2C device”
def readU8(self, reg):
“Read an unsigned byte from the I2C device”
def readS8(self, reg):
“Reads a signed byte from the I2C device”
def readU16(self, reg, little_endian=True):
“Reads an unsigned 16-bit value from the I2C device”
def readS16(self, reg, little_endian=True):
“Reads a signed 16-bit value from the I2C device”
http://wiki.erazor-zone.de/wiki:linux:python:smbus:doc
self.bus = smbus.SMBus(busnum if busnum >= 0 else Adafruit_I2C.getPiI2CBusNumber())
self.bus.write_byte_data(self.address, reg, value)
self.bus.write_word_data(self.address, reg, value)
self.bus.write_byte(self.address, value)
self.bus.write_i2c_block_data(self.address, reg, list)
results = self.bus.read_i2c_block_data(self.address, reg, length)
result = self.bus.read_byte_data(self.address, reg)
result = self.bus.read_word_data(self.address,reg)
Wave player WT588D-16p
Trata-se dum módulo baseado no chip WT588D da companhia Waytronic Electronics Co Ltd, e na memória 25Q32BVSIG (Flash SPI de 32Mb, i.e. 4 MBytes).
Este módulo pode ser controlado de várias formas, teclas, sinais digitais (1 ou 3), etc. O problema é contudo a alteração do conteúdo da memória Flash onde residem os ficheiros de som. Existe um programa para o efeito mas parece necessitar dum programador próprio, embora presumo que também se possa fazer por nós acedendo diretamente à memória que tem interface SPI colocando o ficheiro .bin gerado pelo software (embora me dê um erro quando da sua criação).
Instalar o Arduino no Ubuntu
Caso o JAVA não esteja ainda instalado, é preciso fazê-lo pois o Arduino IDE corre em JAVA.
- sudo add-apt-repository ppa:webupd8team/java
- sudo apt-get update
- sudo apt-get install oracle-java8-installer
- java -version
- sudo apt-get install oracle-java8-set-default
Descarregar o Arduino, sendo que optei pela versão de 64bits (v1.0.5)
Descompactar o ficheiro tgz descarregado.
Executar em modo administrador (sudo ./arduino) caso contrário a ligação à placa não é devidamente estabelecida.
Como criar um icon que faça a chamada em modo administrador?
sudo add-apt-repository ppa:noobslab/apps
sudo apt-get update
sudo apt-get install open-as-administrator
nautilus -q
Simular o Arduino no Proteus
Instalar a biblioteca e integrá-la no Proteus como está aqui descrito.
Para importar a biblioteca para o formato da versão 8 do Proteus proceder assim.
Também se pode fazer debug.
Outros links:
10 pecados mortais cometidos nos laboratórios de Eletrónica 1
- Não usar os acoplamentos AC/DC adequados no osciloscópio
- Não garantir que os sinais gerados tem o valor médio requerido (em geral zero, algo que o gerador nem sempre garante)
- Confundir a amplitude (valor de pico) com valor pico-a-pico
- Esquecer que em certas breadboards os barramentos estão interrompidos a meio
- Ler cegamente os valores fornecidos pelo osciloscópio em lugar de os estimar com base nas escalas e número de divisões
- Usar o modo autoset
- Visualizar um número excessivo de períodos do sinal no osciloscópio
- Não ler o guião com atenção
- Não ligar a fonte de tensão
- Julgar que os valores dos componentes não apresentam tolerâncias
- Ligar mal os potenciometros
- Enfiar mais do que 4/5mm de fio dentro da Breadboard
- Deixar demasiado cobre visível nos fios fora da Breadboard
Circuitos com FPGAs
Para dar alguns passos no uso de FPGAs encontrei o módulo Cmod S6 da Digilent.
O seu custo fica abaixo dos 60 euros!