Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Se trata de un módulo GPS actualizado que puede utilizarse con mega-v2 ArduPilot. Este
módulo GPS utiliza la última tecnología para dar la mejor información de posición posible,
permitiendo un mejor rendimiento con el ArduPilot u otra plataforma de control Multirotor.
Es posible que necesite configurar este módulo para su uso con el controlador de vuelo (tarjeta
MultiWii Copter I2C GPS requiere 115.200 baudios). Usted necesitará un USB a la tarjeta del
adaptador FTDI para hacer esto. Tenga en cuenta que este módulo se entrega con la configuración
defualt
Diagrama de Conexión
Sistemas Embebidos
Hernández Hernández Jorge Alan Isaí
338760
Código en Python
import gps
while True:
try:
report = session.next()
# Wait for a 'TPV' report and display the current time
# To see all report data, uncomment the line below
# print report
if report['class'] == 'TPV':
if hasattr(report, 'time'):
print report.time
except KeyError:
pass
except KeyboardInterrupt:
quit()
except StopIteration:
session = None
print "GPSD has terminated"
Los sensores digitales de temperatura y humedad de la serie Sensirion SHT2x de DFN digital están
basados en CMOSens®. Son sensores de humedad y temperatura estándares del sector y
ampliamente utilizados. La humedad se mide mediante un sensor capacitivo mientras que la
temperatura se mide con un sensor de brecha energética. Los sensores SHT2x también contienen
un chip de silicio de la versión 4 con un amplificador, convertidor A/D, memoria OTP y una interfaz
digital. Se suministran en un encapsulado de plástico que deja la zona del sensor abierta, para
proteger los dispositivos de impactos externos y proporcionar estabilidad a largo plazo.
Diagrama de Conexión
#!/usr/bin/python
import struct, array, time, io, fcntl
I2C_SLAVE=0x0703
HTU21D_ADDR = 0x40
CMD_READ_TEMP_HOLD = "\xE3"
CMD_READ_HUM_HOLD = "\xE5"
CMD_READ_TEMP_NOHOLD = "\xF3"
CMD_READ_HUM_NOHOLD = "\xF5"
CMD_WRITE_USER_REG = "\xE6"
CMD_READ_USER_REG = "\xE7"
CMD_SOFT_RESET= "\xFE"
class i2c(object):
def __init__(self, device, bus):
class HTU21D(object):
def __init__(self):
self.dev = i2c(HTU21D_ADDR, 1) #HTU21D 0x40, bus 1
self.dev.write(CMD_SOFT_RESET) #soft reset
time.sleep(.1)
if remainder == 0:
return True
else:
return False
def read_tmperature(self):
self.dev.write(CMD_READ_TEMP_NOHOLD) #measure temp
time.sleep(.1)
data = self.dev.read(3)
buf = array.array('B', data)
if self.crc8check(buf):
temp = (buf[0] << 8 | buf [1]) & 0xFFFC
return self.ctemp(temp)
else:
return -255
Sistemas Embebidos
Hernández Hernández Jorge Alan Isaí
338760
def read_humidity(self):
self.dev.write(CMD_READ_HUM_NOHOLD) #measure humidity
time.sleep(.1)
data = self.dev.read(3)
buf = array.array('B', data)
if self.crc8check(buf):
humid = (buf[0] << 8 | buf [1]) & 0xFFFC
return self.chumid(humid)
else:
return -255
if __name__ == "__main__":
obj = HTU21D()
print "Temp:", obj.read_tmperature(), "C"
print "Humid:", obj.read_humidity(), "% rH"
El ADXL345 es un acelerómetro de 3 ejes de alta resolución (13 bit) que puede medir hasta
± 16 g. Es pequeño y delgado, y tiene bajo consumo de energía. El formato de los datos de salida
es de complemento a dos de 16 bit. Los datos se pueden obtener a través de interfaz SPI de 3 o 4
alambre, o I2C.
Diagrama de Conexión
Sistemas Embebidos
Hernández Hernández Jorge Alan Isaí
338760
Código en Python
Sistemas Embebidos
Hernández Hernández Jorge Alan Isaí
338760
LECTURA DE SEÑALES ANALÓGICAS CON MCP3008 Y SPI
En muchas ocasiones cuando quieres convertir una señal analógica a digital para capturar
su valor, el microcontrolador que se utiliza no tiene suficientes entradas. PAra estos casos el
MCP3008 de Microchip es muy cómodo ya que proporciona 8 entradas analógicas las cuales
podemos controlar fácilmente mediante un único bus SPI. Es especialmente útil con Raspberry Pi
ya que no dispone de este tipo entradas analógicas y con la ayuda de esta placa y un pequeño
script en Python podemos leer fácilmente los valores de sensores analógicos, potenciómetros etc.
Diagrama de conexión
Sistemas Embebidos
Hernández Hernández Jorge Alan Isaí
338760
Código en Python
#!/usr/bin/python
import spidev
import time
import os
# SPI bus
spi = spidev.SpiDev()
spi.open(0,0)
def ReadChannel(channel):
adc = spi.xfer2([1,(8+channel)<<4,0])
data = ((adc[1]&3) << 8) + adc[2]
return data
while True: