Innehållsförteckning:
- Steg 1: Materiais
- Steg 2: Dragonboard 410c Com Mezzanine 96Bord: Configuração E Pinagem
- Steg 3: Integração: Enhet + Vuforia
- Steg 4: Enhet: Konfigurera O Android SDK
- Steg 5: Criando Servidor Local E Recebendo Informações Em Python
- Steg 6: Resultado Final
Video: Smart lektion: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
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 erfarenheter não presencias de aula convencional.
Steg 1: Materiais
För programmerare av Dragonboard 410c:
- Dragonboard 410c;
- Cabo HDMI;
-Teclado via USB -Mouse via USB -Monitor;
- Mezzanine 96boards;
För exekutör eller projekt:
- Dragonboard 410c;
- Mezzanine 96boards;
- Sensor Grove IMU 10DOF MPU - 9250 (ingen begränsning för att använda sensorn);
- Fonte de alimentação externa 11.1V;
- Tröja fêmea-fêmea;
Steg 2: Dragonboard 410c Com Mezzanine 96Bord: Configuração E Pinagem
O Shield Mezzanine deve ser acoplado à placa Dragonboard 410c, para que haja fornecimento de saída 3.3V / 5V (level shifter), pois a placa só fornece 1.8V de saída. O sensor utilizado foi um magnetômetro Sensor MPU -9250 Grove -IMU 10DOF, specifikationer:
Tensão de Entrada: 5V / 3.3V;
Corrente de funcionamento: 6mA;
Comunicação Serial;
Pinos: VCC, GND, SDA och SCL;
I2C -gränssnitt;
Para este exemplo foi utilizado um dos conectores Grove I2C0 (5V), que proporciona a comunicação Serial e a alimentação needsária para funcionamento do sensor. (ver imagem)
Steg 3: Integração: Enhet + Vuforia
1- Vá ao site da vuforia na área de desenvolvedor e crie uma chave.
2- På fliken Target Manager kan du också läsa mer om spårning (spårning).
3- Feito isso baixe a database para o Unity e importe.
4- Ingen enhet konfigurera bildmålet med en text som kan användas för att ladda ner modeller för 3D som vi kan använda för att få en bild för en lokal app.
5- Adicione a chave de licença da vuforia nas configurações dentro do Unity.
6- Apos isso modele os componentes da aula em algum programa 3D e preparate as aulas em cima do image target (pode ser uma aula de Biologia ou Física…).
Steg 4: Enhet: Konfigurera O Android SDK
1- Grundläggande om SDK för Android, för att välja Unity-inställningar och välja direkt.
2- Skapa en plattform för Unity för Android, få tillgång till APK.
3- Installera en apk em om dispositivo (não esqueça de permitir fontes desconhecidas nas configurações).
Steg 5: Criando Servidor Local E Recebendo Informações Em Python
Concluídas as configurações apresentadas, podemos acessar o Sistema Linaro dentro da placa e utilizar várias linguagens como C ++, Java, Python, etc., para criar or software que será executado. Este software é responsável por receber us dados lidos pelo sensor, processar and tratar estes dados conforme solicitado pelo programa. Depois carrega esses dados para o 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. Os dados são transferidos da Dragonboard 410c para o Unity e 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:
Kodi mag_python.py
#!/usr/bin/python
# Författare: Jon Trulson
# Copyright (c) 2015 Intel Corporation.
#
# Tillstånd beviljas härmed kostnadsfritt till alla personer som erhåller
# en kopia av denna programvara och tillhörande dokumentationsfiler (# "Programvara"), för att hantera programvaran utan begränsningar, inklusive
# utan begränsning rättigheterna att använda, kopiera, ändra, slå samman, publicera, # distribuera, underlicensiera och/eller sälja kopior av programvaran och till
# tillåta personer till vilka Programvaran tillhandahålls att göra detta, med förbehåll för
# följande villkor:
#
# Ovanstående upphovsrättsmeddelande och detta tillståndsmeddelande ska vara
# ingår i alla kopior eller stora delar av programvaran.
#
# PROGRAMVARAN FÅR "SOM DEN ÄR", UTAN GARANTI AV NÅGON
# UTTRYCKT ELLER UNDERFÖRSTÅTT, INKLUSIVE MEN INTE BEGRÄNSAT TILL GARANTIERNA FÖR
# Säljbarhet, lämplighet för ett särskilt syfte OCH
# INKRÄFTELSE. INGEN HÄNDELSER SKA FÖRFATTARNA ELLER upphovsrättsinnehavarna
# ANSVAR FÖR ALLA krav, skada eller annat ansvar
# AV KONTRAKT, TORT ELLER ÖVRIGT, HÖR FRÅN, UTAN ELLER I ANSLUTNING
# MED PROGRAMVARAN ELLER ANVÄNDNINGEN ELLER ANDRA HANDLINGAR I PROGRAMVARAN.
från _future_ importutskrift_funktion
importtid, sys, signal, atexit, urllib, urllib2, matematik
från upm import pyupm_mpu9150 som sensorObj
def main ():
# data = {}
# data ['magnetrometro'] = raw_input ("Informera en temperatur")
# data = urlib.urlencode (data)
# post_request = urlib2. Request (post_url, data, rubriker)
# Prova:
# post_response = urlib2.urlopen (post_request)
# print post_response.read ()
# utom URLError som e:
# print "Fel:", e.reason
# Instantiera en MPU9250 på I2C -buss 0
sensor = sensorObj. MPU9250 ()
## Exit hanterare ##
# Den här funktionen stoppar python från att skriva ut en stacktrace när du slår kontroll-C
def SIGINTHandler (signum, frame):
höja SystemExit
# Med den här funktionen kan du köra kod vid utgång
def exitHandler ():
print ("Avslutar")
sys.exit (0)
# Registrera utgångshanterare
atexit.register (exitHandler)
signal.signal (signal. SIGINT, SIGINTHandler)
sensor.init ()
x = sensorObj.new_floatp ()
y = sensorObj.new_floatp ()
z = sensorObj.new_floatp ()
medan (1):
sensor.update ()
sensor.getAccelerometer (x, y, z)
# print ("Accelerometer:")
# 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.getGyroskop (x, y, z)
# print ("Gyroskop: GX:", sensorObj.floatp_value (x), end = '')
# print ("GY:", sensorObj.floatp_value (y), end = '')
# print ("GZ:", sensorObj.floatp_value (z))
sensor.getMagnetometer (x, y, z)
# print ("Magnetometer: 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 = open ('/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 (länk)
# page = send.read ()
# print (sida)
# link = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# print ('enviando dados')
# send = urllib2.urlopen (länk)
# page = send.read ()
# print (sida)
# print ("Temperatur:", sensor.getTemperature ())
# print ()
# time.sleep (.5)
om _name_ == '_main_':
main ()
Código do Servidor Local
importtid
importera BaseHTTPServer
HOST_NAME = '172.17.56.9' # !!! KOM ihåg att ändra detta !!!
PORT_NUMBER = 80 # Kanske ställa in detta till 9000.
a = 0
klass MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):
def do_HEAD (s):
s.send_response (200)
s.send_header ("Innehållstyp", "text/html")
s.end_headers ()
def do_GET (s):
dados = le_dados ()
tryck (dados)
"" "Svara på en GET -begäran." ""
om s.path == "/1":
s.send_response (200)
s.send_header ("Innehållstyp", "text/vanlig")
s.end_headers ()
s.wfile.write (dados)
elif s.path == "/2":
s.send_response (200)
s.send_header ("Innehållstyp", "text/vanlig")
s.end_headers ()
s.wfile.write ("2")
annan:
s.send_response (200)
s.send_header ("Innehållstyp", "text/vanlig")
s.end_headers ()
s.wfile.write (dados)
#s.wfile.write ("hittades inte !!")
def le_dados ():
arq = open ('/tmp/dados.txt', 'r')
texto = arq.readline ()
arq.close ()
returnera texto
om _name_ == '_main_':
server_class = BaseHTTPServer. HTTPServer
httpd = server_klass ((HOST_NAME, PORT_NUMBER), MyHandler)
print time.asctime (), "Serverstart - %s: %s" %(HOST_NAME, PORT_NUMBER)
Prova:
a = a+2
httpd.serve_forever ()
utom KeyboardInterrupt:
passera
httpd.server_close ()
print time.asctime (), "Server stoppar - %s: %s" %(HOST_NAME, PORT_NUMBER)
Código de Execução dos Códigos anteriores no Shell
#!/bin/bash
eko "startar mag_python"
sudo python mag_python.py &
eko "start server"
sudo python server2.py
Steg 6: Resultado Final
Feito isso as aulas poderão ser auxiliadas e incrementadas pelo projeto Smart Lesson desenvolvido com a Dragonboard 410c. Servindo de facilitador e proporcionando um maior aprendizado nos sistemas de ensino tanto público quanto privado.
LINK för app utan Google Play:
Länk till Cydigos Py:
Rekommenderad:
Smart Desk LED -ljus - Smart Lighting W/ Arduino - Neopixels arbetsyta: 10 steg (med bilder)
Smart Desk LED -ljus | Smart Lighting W/ Arduino | Neopixels arbetsyta: Nu till dags spenderar vi mycket tid hemma, studerar och arbetar virtuellt, så varför inte göra vår arbetsyta större med ett anpassat och smart belysningssystem Arduino och Ws2812b lysdioder baserade. Här visar jag dig hur du bygger din Smart LED -lampa i skrivbordet som
Hardware and Software Hack Smart Devices, Tuya and Broadlink LEDbulb, Sonoff, BSD33 Smart Plug: 7 Steg
Hardware and Software Hack Smart Devices, Tuya and Broadlink LEDbulb, Sonoff, BSD33 Smart Plug: I den här instruktionsboken visar jag dig hur jag blinkade flera smarta enheter med min egen firmware, så jag kan styra dem med MQTT via min Openhab -inställning. nya enheter när jag hackade dem. Naturligtvis finns det andra mjukvarubaserade metoder för att flasha anpassade f
Smart väckarklocka: en smart väckarklocka tillverkad med hallon Pi: 10 steg (med bilder)
Smart väckarklocka: en smart väckarklocka tillverkad med hallon Pi: Har du någonsin velat ha en smart klocka? I så fall är detta lösningen för dig! Jag gjorde Smart Alarm Clock, det här är en klocka som du kan ändra alarmtiden enligt webbplatsen. När larmet går går det ett ljud (summer) och 2 lampor lyser
Lektion 2: Använda Arduino som strömkälla för en krets: 6 steg
Lektion 2: Använda Arduino som en strömkälla för en krets: Hej igen, studenter, till min andra lektion i min kurs för att lära ut grundläggande elektronik. För dem som inte har sett min första lektion, som beskriver kretsloppens grundläggande grunder, se det nu. För dem som redan har sett mitt tidigare
Java Workshop - Lektion #1: 9 steg
Java Workshop - Lektion #1: Välkommen från Java Workshop - Lektion #1. Den här lektionen ges till dig av klass Code () på Virginia Tech