Satura rādītājs:
- 1. solis: Materiāls
- 2. darbība: Dragonboard 410c Com Mezzanine 96Boards: Configuração E Pinagem
- 3. solis: Integrācija: Unity + Vuforia
- 4. darbība. Vienotība: konfigurējiet Android SDK
- 5. darbība: Criando Servidor Local E Recebendo Informācija par Python
- 6. solis: Rezultāta fināls
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
O projeto Smart Lesson Visa Criam 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 não presencia de aula konvencional.
1. solis: Materiāls
Programmējiet Dragonboard 410c:
- Dragonboard 410c;
- HDMI kabelis;
-Teclado, izmantojot USB -peli, izmantojot USB -monitoru;
- starpstāvu 96 dēļi;
Izpildītājs vai projekts:
- Dragonboard 410c;
- starpstāvu 96 dēļi;
- Sensor Grove IMU 10DOF MPU - 9250 (não limitado ao uso de um único sensors);
- Fonte de alimentação externa 11,1V;
- džemperis fêmea-fêmea;
2. darbība: Dragonboard 410c Com Mezzanine 96Boards: Configuração E Pinagem
O Shield Mezzanine deve ser acoplado à placa Dragonboard 410c, para que haja fornecimento de saída 3.3V / 5V (līmeņa pārslēdzējs), indi a placa só fornece 1.8V de saída. O sensora izmantošana magneto metro sensors MPU -9250 Grove -IMU 10DOF, īpaši:
Tensão de Entrada: 5V / 3.3V;
Funkcija Corrente de funcionamento: 6mA;
Comunicação sērija;
Pinos: VCC, GND, SDA un SCL;
I2C saskarne;
Para este example forfo utilizado um dos conectores Grove I2C0 (5V), que proporciona a comunicação Serial and a alimentação needária para funcionamento do sensor. (ver attēls)
3. solis: Integrācija: Unity + Vuforia
1- Vá ao site da vuforia na area of desenvolvedor e crie uma chave.
2- Izvēlēties tab Target Manager un adicione uma textura para fazer o Tracking (quanto mais complexa melhor).
3- Feito isso baixe un Unity e importe datu bāze.
4- No Unity configure um image target com a textura escolhida and dentro deletione os modelos 3D que deseja utilizar, os mesmos estarão ativos quando a imagem for localizada pelo app.
5- Vienotības licence “Chave de licence da vuforia nas configurações dentro do”.
6- Apos isso modele os komponenti da aula em algum program 3D un sagatavot kā aulas em cima do image target (pode ser uma aula de Biologia ou Física…).
4. darbība. Vienotība: konfigurējiet Android SDK
1- Baixe vai SDK Android ierīcēm, Unity preferences un izvēle vai izvēle.
2- Mude a build plataform for Unity android, assim conseguiremos gerar o APK.
3- Instalējiet vai instalējiet emu izvietošanas rīku (nav atļauts izmantot atļauto fontu desconhecidas nas konfigurāciju).
5. darbība: Criando Servidor Local E Recebendo Informācija par Python
Konkurence kā konfigurācijas apresentadas, podemos acessar vai Sistema Linaro dentro da placa e utilizar várias linguagens como C ++, Java, Python, etc., para criar o software que será executado. Este programmatūra un atbilde uz uztvērēju, lai saņemtu osos lidos pelo sensoru, procesu un tratar estes dados conforme solicitado pelo programmu. 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. Os dados são transferidos da Dragonboard 410c par Unity un 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
# Autors: Jons Trulsons
# Autortiesības (c) 2015 Intel Corporation.
#
# Atļauja tiek piešķirta bez maksas jebkurai personai, kas to iegūst
# šīs programmatūras kopija un saistītie dokumentācijas faili (# "Programmatūra"), lai bez ierobežojumiem nodarbotos ar Programmatūru, ieskaitot
# bez ierobežojumiem tiesības izmantot, kopēt, modificēt, apvienot, publicēt, # izplatīt, apakšlicencēt un/vai pārdot Programmatūras kopijas un
# atļaut to darīt personām, kurām Programmatūra ir nodrošināta, ievērojot
# šādus nosacījumus:
#
# Iepriekš minētais paziņojums par autortiesībām un šis atļaujas paziņojums ir
# iekļauts visās Programmatūras kopijās vai būtiskās daļās.
#
# PROGRAMMATŪRA tiek nodrošināta "TĀDA KĀDA", BEZ JEBKĀDU GARANTIJU, # IZTEIKTI VAI TIEŠI, IESKAITOT, bet neaprobežojoties ar GARANTIJĀM
# TIRDZNIECĪBA, PIEMĒROTĪBA KONKRETAM MĒRĶIEM UN
# NEPAKĀPŠANA. AUTORI UN AUTORTIESĪBU ĪPAŠNIEKI NEKĀDĀ GADĪJUMĀ NEBŪS
# ATBILDĪBA PAR JEBKURU PRASĪBU, KAITĒJUMU VAI CITU ATBILDĪBU, RĪCĪBĀ
LĪGUMA, SŪTĪBAS VAI CITA PĀRSKATS, CILVĒKI, IZŅEMTI VAI SAVIENOJUMĀ
# AR PROGRAMMATŪRU VAI LIETOŠANU VAI CITIEM PROGRAMMATŪRAS darījumiem.
no _future_ importēt drukas_funkciju
importēšanas laiks, sys, signāls, atexit, urllib, urllib2, math
no upm importēt pyupm_mpu9150 kā sensoruObj
def main ():
# dati = {}
# data ['magnetrometro'] = raw_input ("Informēt par temperatūru")
# dati = urlib.urlencode (dati)
# post_request = urlib2. Request (post_url, dati, galvenes)
# pamēģini:
# post_response = urlib2.urlopen (post_request)
# print post_response.read ()
# izņemot URL Kļūda kā e:
# drukāt "Kļūda:", e. iemesls
# Instalējiet MPU9250 I2C autobusā 0
sensors = sensorObj. MPU9250 ()
## Izejas apstrādātāji ##
# Šī funkcija neļauj python izdrukāt stecktrace, kad nospiežat taustiņu Control-C
def SIGINTHandler (signāls, rāmis):
paaugstināt SystemExit
# Šī funkcija ļauj palaist kodu, izejot
def exitHandler ():
drukāt ("Iziet")
sys.exit (0)
# Reģistrējiet izejas apstrādātājus
atexit.register (exitHandler)
signal.signal (signal. SIGINT, SIGINTHandler)
sensor.init ()
x = sensorObj.new_floatp ()
y = sensorObj.new_floatp ()
z = sensorsObj.new_floatp ()
kamēr (1):
sensor.update ()
sensor.getAccelerometer (x, y, z)
# print ("Akselerometrs:")
# 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
# drukāt (modulo1)
modulo1 = (" %.1f" % abs (((modulo1 ** 0.5) -1)*9.8))
# drukāt (modulo1)
#
# sensor.getGiroskops (x, y, z)
# print ("Žiroskops: GX:", sensorObj.floatp_value (x), end = '')
# print ("GY:", sensorObj.floatp_value (y), beigas = '')
# print ("GZ:", sensorObj.floatp_value (z))
sensor.getMagnetometrs (x, y, z)
# print ("Magnetometrs: MX:", sensorObj.floatp_value (x), end = '')
# print ("MY:", sensorObj.floatp_value (y), beigas = '')
# print ("MZ:", sensorObj.floatp_value (z))
modulo2 = sensorsObj.floatp_value (x) ** 2+sensorsObj.floatp_value (y) ** 2+sensorsObj.floatp_value (z) ** 2
# drukāt (modulo2)
modulo2 = (" %.2f" % (modulo2 ** 0,5))
# drukāt (modulo2)
arq = atvērts ('/tmp/dados.txt', 'w')
teksto =
texto.append (str (modulo2)+","+str (modulo1))
arq.writelines (teksto)
arq.close ()
# link = ('https://data.sparkfun.com/input/0lwWlyRED5i7K0AZx4JO?private_key=D6v76yZrg9CM2DX8x97B&mag='+str(modulo2)]
# print ('enviando dados')
# send = urllib2.urlopen (saite)
# page = send.read ()
# izdruka (lapa)
# link = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# print ('enviando dados')
# send = urllib2.urlopen (saite)
# page = send.read ()
# izdruka (lapa)
# print ("Temperatūra:", sensor.getTemperature ())
# drukāt ()
# laiks.gulēt (.5)
ja _name_ == '_main_':
galvenais ()
Código do Servidor Local
importa laiks
importēt BaseHTTPServer
HOST_NAME = '172.17.56.9' # !!! ATCERIETIES MAINĪT ŠO !!!
PORT_NUMBER = 80 # Varbūt iestatiet to uz 9000.
a = 0
MyHandler klase (BaseHTTPServer. BaseHTTPRequestHandler):
def do_HEAD (s):
s.send_response (200)
s.send_header ("Content-type", "text/html")
s.end_headers ()
def do_GET (s):
dados = le_dados ()
drukāt (dados)
"" "Atbildiet uz GET pieprasījumu." ""
ja s.path == "/1":
s.send_response (200)
s.send_header ("Content-type", "text/plain")
s.end_headers ()
s.wfile.write (dados)
elifs.path == "/2":
s.send_response (200)
s.send_header ("Content-type", "text/plain")
s.end_headers ()
s.wfile.write ("2")
cits:
s.send_response (200)
s.send_header ("Content-type", "text/plain")
s.end_headers ()
s.wfile.write (dados)
#s.wfile.write ("nav atrasts !!")
def le_dados ():
arq = atvērts ('/tmp/dados.txt', 'r')
texto = arq.readline ()
arq.close ()
atgriešanās teksts
ja _name_ == '_main_':
server_class = BāzeHTTPServer. HTTPServer
httpd = server_class ((HOST_NAME, PORT_NUMBER), MyHandler)
print time.asctime (), "Servera palaišana - %s: %s" %(HOST_NAME, PORT_NUMBER)
pamēģini:
a = a+2
httpd.serve_forever ()
izņemot tastatūruPārtraukums:
iziet
httpd.server_close ()
print time.asctime (), "Servera apstāšanās - %s: %s" %(HOST_NAME, PORT_NUMBER)
Código de Execução dos Códigos anteriores no Shell
#!/bin/bash
atbalss "sākuma mag_python"
sudo python mag_python.py &
echo "start server"
sudo python server2.py
6. solis: Rezultāta fināls
Feito isso as aulas poderão ser auxiliadas e pieaugums pelo projeto Smart Lesson desenvolvido com and Dragonboard 410c. Servindo de facilitador e proporcionando um maior aprendizado nos sistemas de ensino tanto público quanto privado.
LINK lietotnei Google Play:
Saite uz códigos Py:
Ieteicams:
Viedā josta: 18 soļi
Viedā josta: kādu sīkrīku nēsāt ir ļoti grūti. Godīgi sakot, šajā projektā es saņēmu palīdzību no mammas, lai uzšūtu man lietu, jo es nevaru šūt pati. Esiet piesardzīgs, šujot, izmantojot šujmašīnu. Ja jūs nekad neesat pieredzējis šūšanu ar šujmašīnu, tas ir arī
Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk): 9 soļi
Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk): Sveiki! Šī instrukcija ir stāsts par to, kā es projektēju un uzbūvēju HUD (Heads-Up Display) platformu, kas paredzēta uzstādīšanai uz motociklu ķiverēm. Tas tika uzrakstīts konkursa "kartes" kontekstā. Diemžēl es nevarēju pilnībā pabeigt
2. nodarbība: Arduino izmantošana kā strāvas avots ķēdē: 6 soļi
2. nodarbība: Arduino izmantošana kā strāvas avots ķēdē: Sveiki vēlreiz, studenti, uz manu otro kursa nodarbību, lai mācītu elektronikas pamatus. Tiem, kuri nav redzējuši manu pirmo nodarbību, kurā aprakstīti ļoti, ļoti, shēmas pamati, lūdzu, redziet to tagad. Tiem, kas jau ir redzējuši manu iepriekšējo rakstu
Java darbnīca - 1. nodarbība: 9 soļi
Java darbnīca - 1. nodarbība: Laipni lūdzam Java darbnīcā - 1. nodarbība. Šo nodarbību jums nodrošina Virginia Tech klases kods ()
Arduino tvertnes automašīnas 6. nodarbība-Bluetooth un Wifi karstā punkta vadība: 4 soļi
Arduino tvertnes automašīnas 6. nodarbība-Bluetooth un Wifi karstā punkta vadība: Šajā nodarbībā mēs uzzinām, kā vadīt robotu automašīnas mobilo lietotni, izmantojot WiFi un Bluetooth. Mēs vienkārši izmantojam esp8266 wifi espasion dēli kā paplašināšanas paneli un kontrolējam cisternvagonu izmantojot IR uztvērēju iepriekšējās nodarbībās. Šajā nodarbībā mēs uzzināsim