Sisällysluettelo:
- Vaihe 1: Materiaali
- Vaihe 2: Dragonboard 410c Com Mezzanine 96 Laudat: Configuração E Pinagem
- Vaihe 3: Integração: Unity + Vuforia
- Vaihe 4: Unity: Määritä Android SDK
- Vaihe 5: Criando Servidor Local E Recebendo Informaatio Em Python
- Vaihe 6: Tuloksen lopullinen
Video: Älykäs oppitunti: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
O projeto Smart Lesson Visa criar um produto no qual os professores possam utilizar como um conteúdo a mais para ensinar seus alunos os levando a um nível de aprendizado muito superior por conseguir mostrar os conteúdos de forma dinâmica e interativa, proporcionando Experience nias ão presencia de aula konvencional.
Vaihe 1: Materiaali
Ohjelmoi Dragonboard 410c:
- Dragonboard 410c;
- Cabo HDMI;
-Teclado USB: n kautta -Hiiri USB: n kautta -Monitori;
- Mezzanine 96 -levyt;
Suoritin tai projekti:
- Dragonboard 410c;
- Mezzanine 96 -levyt;
- Sensor Grove IMU 10DOF MPU - 9250 (não limitado ao uso de um único sensor);
- Fonte de alimentação externa 11,1 V;
- jumpperi fêmea-fêmea;
Vaihe 2: Dragonboard 410c Com Mezzanine 96 Laudat: Configuração E Pinagem
O Shield Mezzanine deve ser acoplado à placa Dragonboard 410c, para que haja fornecimento de saída 3.3V / 5V (tasonsiirto), myrkkyä 1,8 V. O -anturin käyttö magnetometro -anturi MPU -9250 Grove -IMU 10DOF, erityisesti:
Tensão de Entrada: 5V / 3,3V;
Toiminta -alue: 6mA;
Comunicação -sarja;
Pinot: VCC, GND, SDA ja SCL;
I2C -käyttöliittymä;
Esimerkkinä voidaan käyttää Grove I2C0 (5V) -laitetta, joka on suhteellinen ja kommunikoitu sarjaan ja joka on välttämätön anturin toiminnalle. (ver imagem)
Vaihe 3: Integração: Unity + Vuforia
1- Vá ao site da vuforia na derea de desenvolvedor e crie uma chave.
2- Valitse välilehti Target Manager ja adicione uma textura para fazer o Tracking (quanto mais complexa melhor).
3- Feito isso baixe ja Unity e importen tietokanta.
4- Ei Unity konfiguroida um image target com tekstuurin escolhida ja hammaslääkärin halutessaan mallien 3D que deseja utilizar, os mesmos estarão ativos quando a imagem for localizada pelo app.
5- Unity-vuoren vuokrien lisenssin määrittäminen.
6- Apos isso modele os partses a aula em algum program 3D and prep as aulas em cima do image target (pode ser uma aula de Biologia ou Física…).
Vaihe 4: Unity: Määritä Android SDK
1- Baixe tai SDK Androidille, Unityn asetukset ja valinta tai seuranta.
2- Mude a build plataform do Unity for android, assim conseguiremos gerar o APK.
3- Asenna tai asenna apk em em dispositivo (não esqueça de allowir fontes desconhecidas nas configurações).
Vaihe 5: Criando Servidor Local E Recebendo Informaatio Em Python
Konkreettiset konfiguraatiot apresentadas, podemos acessar tai Sistema Linaro dentro da placa e utilizar várias linguagens como C ++, Java, Python, etc., para criar or software que sera executado. Este -ohjelmisto ja vastaus vastaanottimeen os dados lidos pelo -anturi, prosessori ja tratar estes dados conforme solicitado pelo -ohjelma. Depois carrega esses dados para or servidor alocado na própria placa para enviar os dados já tratados para a plataforma Unity. Os exemplos de código deste projeto estão em linguagem Phyton. Osados são transferidos da Dragonboard 410c on Unity ja são apresentados em um app.
Seguem os códigos mag_python.py (leitor de dados do sensor), server2.py (Servidor local), Executável no Shell:
Código mag_python.py
#!/usr/bin/python
# Kirjoittaja: Jon Trulson
# Tekijänoikeus (c) 2015 Intel Corporation.
#
# Lupa myönnetään maksutta kenelle tahansa hakijalle
# kopio tästä ohjelmistosta ja siihen liittyvistä asiakirjatiedostoista (# "Ohjelmisto"), käsittelemään Ohjelmistoa ilman rajoituksia, mukaan lukien
# rajoituksetta oikeudet käyttää, kopioida, muokata, yhdistää, julkaista, # jakaa, lisensoida ja/tai myydä ohjelmiston kopioita ja
# sallia henkilöille, joille Ohjelmisto on toimitettu, tehdä niin
# seuraavat ehdot:
#
# Yllä oleva tekijänoikeusilmoitus ja tämä lupailmoitus ovat
# sisältyy kaikkiin ohjelmiston kopioihin tai merkittäviin osiin.
#
# OHJELMISTOT TOIMITETAAN "sellaisenaan" ilman minkäänlaisia takuita, # NIMENOMAINEN TAI EHDOTTOMAINEN, MUKAAN MUKAAN EI RAJOITU TAKUUIHIN
# KAUPALLISUUS, SOVELTUVUUS TIETTYYN TARKOITUKSEEN JA
# RIKKOMATON. TEKIJÄT JA TEKIJÄNOIKEUDEN HALTIJAT EI SAA OLLA missään tapauksessa
# VASTUU MISTÄ VAATIMUKSISTA, VAHINGOISTA TAI MUUSTA VASTUUSTA TOIMENPITEESSÄ
SOPIMUKSEN, KIINNITTÄMISEN TAI MUUTA TUOTETTA, JOTKA OVAT TULEVAT, OTTAVAT TAI YHTEYDESSÄ
# OHJELMISTON TAI OHJELMISTON KÄYTÖN TAI MUIDEN TARJOUKSIEN KANSSA.
_tulevaisuus_ tuonti tulostustoiminnosta
tuontiaika, sys, signaali, atexit, urllib, urllib2, matematiikka
upmista tuo pyupm_mpu9150 sensorObj
def main ():
# data = {}
# data ['magnetrometro'] = raw_input ("Informe a Temperatura")
# data = urlib.urlencode (data)
# post_request = urlib2. Request (post_url, data, headers)
# yrittää:
# post_response = urlib2.urlopen (post_request)
# print post_response.read ()
# paitsi URL Virhe muodossa e:
# tulosta "Virhe:", e. syy
# Asenna MPU9250 I2C -väylään 0
anturi = sensorObj. MPU9250 ()
## Poistumiskäsittelijät ##
# Tämä toiminto estää pythonia tulostamasta pinoraitaa, kun painat control-C
def SIGINTHandler (tunnus, kehys):
nosta SystemExit
# Tämän toiminnon avulla voit suorittaa koodin poistuttaessa
def exitHandler ():
tulosta ("Poistu")
sys.exit (0)
# Rekisteröi poistumiskäsittelijät
atexit.register (exitHandler)
signal.signal (signal. SIGINT, SIGINTHandler)
sensor.init ()
x = sensorObj.new_floatp ()
y = sensorObj.new_floatp ()
z = sensorObj.new_floatp ()
samalla (1):
sensor.update ()
sensor.getAcecelerometer (x, y, z)
# print ("Kiihtyvyysmittari:")
# print ("AX: %.4f" % sensorObj.floatp_value (x), end = '')
# print ("AY: %.4f" % sensorObj.floatp_value (y), end = '')
# print ("AZ: %.4f" % sensorObj.floatp_value (z))
modulo1 = (sensorObj.floatp_value (x) -0.005) ** 2+ (sensorObj.floatp_value (y) -0.0150) ** 2+ (sensorObj.floatp_value (z) -0.0450) ** 2
# print (modulo1)
modulo1 = (" %.1f" % abs (((modulo1 ** 0.5) -1)*9.8))
# print (modulo1)
#
# sensor.getGyroskooppi (x, y, z)
# print ("Gyroskooppi: GX:", sensorObj.floatp_value (x), end = '')
# print ("GY:", sensorObj.floatp_value (y), end = '')
# print ("GZ:", sensorObj.floatp_value (z))
Magnetometri (x, y, z)
# print ("Magnetometri: MX:", sensorObj.floatp_value (x), end = '')
# print ("MY:", sensorObj.floatp_value (y), end = '')
# print ("MZ:", sensorObj.floatp_value (z))
modulo2 = sensorObj.floatp_value (x) ** 2+sensorObj.floatp_value (y) ** 2+sensorObj.floatp_value (z) ** 2
# print (modulo2)
modulo2 = (" %.2f" % (modulo2 ** 0,5))
# print (modulo2)
arq = auki ('/tmp/dados.txt', 'w')
texto =
texto.append (str (modulo2)+","+str (modulo1))
arq.writelines (texto)
arq.close ()
# link = ('https://data.sparkfun.com/input/0lwWlyRED5i7K0AZx4JO?private_key=D6v76yZrg9CM2DX8x97B&mag='+str(modulo2))
# print ('enviando dados')
# send = urllib2.urlopen (linkki)
# page = send.read ()
# tulosta (sivu)
# link = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# print ('enviando dados')
# send = urllib2.urlopen (linkki)
# page = send.read ()
# tulosta (sivu)
# print ("Lämpötila:", sensor.getTemperature ())
# Tulosta()
# aika.unen (.5)
jos _name_ == '_main_':
pää ()
Código do Servidor Local
tuonnin aika
Tuo BaseHTTPServer
HOST_NAME = '172.17.56.9' # !!! MUISTA MUUTTAA TÄTÄ !!!
PORT_NUMBER = 80 # Ehkä aseta tämä arvoksi 9000.
a = 0
luokka MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):
def do_HEAD (s):
s.send_response (200)
s.send_header ("Sisältötyyppi", "teksti/html")
s.end_headers ()
def do_GET (s):
dados = le_dados ()
tulosta (dados)
"" "Vastaa GET -pyyntöön." ""
jos s.polku == "/1":
s.send_response (200)
s.send_header ("Sisältötyyppi", "teksti/tavallinen")
s.end_headers ()
s.wfile.write (isät)
elif s.path == "/2":
s.send_response (200)
s.send_header ("Sisältötyyppi", "teksti/tavallinen")
s.end_headers ()
s.wfile.write ("2")
muu:
s.send_response (200)
s.send_header ("Sisältötyyppi", "teksti/tavallinen")
s.end_headers ()
s.wfile.write (isät)
#s.wfile.write ("ei löydy !!")
def le_dados ():
arq = auki ('/tmp/dados.txt', 'r')
texto = arq.readline ()
arq.close ()
paluu texto
jos _name_ == '_main_':
server_class = BaseHTTPServer. HTTPServer
httpd = palvelinluokka ((HOST_NAME, PORT_NUMBER), MyHandler)
print time.asctime (), "Palvelin käynnistyy - %s: %s" %(HOST_NAME, PORT_NUMBER)
yrittää:
a = a+2
httpd.serve_forever ()
paitsi näppäimistö Keskeytys:
kulkea
httpd.server_close ()
print time.asctime (), "Palvelin pysähtyy - %s: %s" %(HOST_NAME, PORT_NUMBER)
Código de Execução dos Códigos anteriores no Shell
#!/bin/bash
echo "käynnistyvä mag_python"
sudo python mag_python.py &
echo "käynnistä palvelin"
sudo python server2.py
Vaihe 6: Tuloksen lopullinen
Feito isso as aulas poderão ser apuohjelmat ja lisälaitteet peliohjelma Smart Lesson desenvolvido com Dragonboard 410c. Palvelut helpottamiseksi ja suhteuttamiseksi maior aprendizado nos systemas de ensino tanto público quanto privado.
LINK Google Play -sovellukseen:
Linkki koodiin Py:
Suositeltava:
Oppitunti käyttöliittymään HMC5883L -kompassianturi Arduinolla: 10 vaihetta (kuvilla)
Oppitunti käyttöliittymään HMC5883L-kompassianturi ja Arduino: Kuvaus HMC5883L on 3-akselinen digitaalinen kompassi, jota käytetään kahteen yleiseen tarkoitukseen: magneettisen materiaalin, kuten ferromagneetin, magnetoinnin mittaamiseen tai voimakkuuden ja joissakin tapauksissa suunnan mittaamiseen. magneettikenttä pisteessä sekunnissa
Älykäs herätyskello: Älykäs herätyskello, joka on valmistettu Raspberry Pi: llä: 10 vaihetta (kuvilla)
Älykäs herätyskello: älykäs herätyskello, joka on valmistettu Raspberry Pi: llä: Oletko koskaan halunnut älykkään kellon? Jos näin on, tämä on ratkaisu sinulle! Tein Smart Alarm Clockin, tämä on kello, jolla voit muuttaa herätysaikaa verkkosivuston mukaan. Kun hälytys soi, kuuluu ääni (summeri) ja 2 valoa
Oppitunti 2: Arduinon käyttäminen virtalähteenä piirille: 6 vaihetta
Oppitunti 2: Arduinon käyttö virtalähteenä piirille: Hei taas, opiskelijat, toiselle oppitunnilleni opettaakseni elektroniikan perusasioita. Niille, jotka eivät ole nähneet ensimmäistä oppituntiani, joka kuvaa piirin perusasioita, katsokaa se nyt. Niille, jotka ovat jo nähneet edellisen kirjani
Arduino Tank Car Oppitunti 6-Bluetooth ja Wifi Hot Spot Control: 4 vaihetta
Arduino Tank Car Oppitunti 6-Bluetooth ja Wifi Hot Spot Control: Tässä oppitunnissa opimme hallitsemaan robottiauton mobiilisovellusta WiFi: n ja Bluetoothin kautta. IR -vastaanottimen kautta aiemmilla oppitunneilla. Tällä oppitunnilla opimme
Oppitunti DHT11 -kosteusanturin käyttö: 4 vaihetta
Oppitunti DHT11 -kosteusanturin käyttäminen: Kuvaus: DHT11 -lämpötila & Kosteusanturissa on lämpötila & kosteusanturikompleksi, jossa on kalibroitu digitaalinen signaalilähtö. Käyttämällä yksinomaista digitaalisen signaalin keräystekniikkaa ja lämpötilan & tekniikka kosteuden tunnistamiseen