Სარჩევი:
- ნაბიჯი 1: მასალა
- ნაბიჯი 2: Dragonboard 410c Com Mezzanine 96 დაფები: Configuração E Pinagem
- ნაბიჯი 3: ინტეგრაცია: ერთობა + ვუფორია
- ნაბიჯი 4: ერთობა: დააინსტალირეთ Android SDK
- ნაბიჯი 5: Criando Servidor Local E Recebendo Informações Em Python
- ნაბიჯი 6: შედეგი საბოლოო
ვიდეო: ჭკვიანი გაკვეთილი: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
გონივრული გაკვეთილის სავიზო კრიტერიუმების გარეშე შეგიძლიათ გამოიყენოთ არავითარი კვალიფიკაცია, რომელიც შეიძლება გამოყენებულ იქნას როგორც შემდგომში, ასევე შემდგომში, როდესაც ჩვენ ვგეგმავთ, რომ გამოვიყენოთ ის, რაც შეგვიძლია გამოვიყენოთ, გავზარდოთ და გავზარდოთ ჩვენი გამოცდილება de aula ჩვეულებრივი.
ნაბიჯი 1: მასალა
პროგრამირება Dragonboard 410c:
- Dragonboard 410c;
- Cabo HDMI;
-Teclado USB– თაგვის მეშვეობით USB -მონიტორი;
- ანტრესოლის 96 დაფა;
შემსრულებელი ან პროექტო:
- Dragonboard 410c;
- ანტრესოლის 96 დაფა;
- Sensor Grove IMU 10DOF MPU - 9250 (არ არის შეზღუდული ან გამოიყენება umnico სენსორი);
- Fonte de alimentação externa 11.1V;
- მხტუნავი fêmea-fêmea;
ნაბიჯი 2: Dragonboard 410c Com Mezzanine 96 დაფები: Configuração E Pinagem
O Shield Mezzanine deve ser acoplado à placa Dragonboard 410c, para que haja fornecimento de saída 3.3V / 5V (დონის ცვლადი), pois a placa só fornece 1.8V de saída. O სენსორი იყენებს მაგნიტმეტრს სენსორი MPU -9250 Grove -IMU 10DOF, სპეციფიკური:
Tensão de Entrada: 5V / 3.3V;
ფუნქციური კორექტირება: 6mA;
Comunicação სერიული;
კინო: VCC, GND, SDA e SCL;
I2C ინტერფეისი;
ჩვენ შეგვიძლია გამოვიყენოთ Grove I2C0 (5V), რომელიც გამოიყენება კომუნიკაციისთვის სერიული და საჭიროებისამებრ სენსორის ფუნქციონირებისთვის. (ver imagem)
ნაბიჯი 3: ინტეგრაცია: ერთობა + ვუფორია
1- Vá ao site da vuforia na área de desenvolvedor e crie uma chave.
2- ჩანართი სამიზნე მენეჯერი და ტექსტი ტექსტში შემავალი o Tracking (quanto mais complexa melhor).
3- Feito isso baixe მონაცემთა ბაზა ერთიანობისა და იმპორტისათვის.
4- No Unity დააკონფიგურიროთ სურათის სამიზნე და ტექსტურირებული გაფართოება, რომელიც გამოიყენება 3D მოდელის გამოყენებით და გამოიყენოს ის, რაც საშუალებას მოგცემთ გამოიყენოთ გამოსახულება ლოკალიზაციის პროგრამისთვის.
5- Adicione a chave de licença da vuforia nas configurações dentro do Unity.
6- ეს არის მოდელი, რომელიც მოიცავს პროგრამის 3D პროგრამას და მოამზადეთ როგორც გამოსახულების სამიზნე (როგორც წესი, ბიოლოგია და ფიზიკა…).
ნაბიჯი 4: ერთობა: დააინსტალირეთ Android SDK
1- Baixe ან SDK Android- ისთვის და ერთიანობის პრეფერენციებისა და არჩევანის გაკეთების მიზნით.
2- Mude a build plataform do Unity para android, assim conseguiremos gerar o APK.
3- დააინსტალირეთ apk em um dispitivo (não esqueça de allowir fontes desconhecidas nas configurações).
ნაბიჯი 5: Criando Servidor Local E Recebendo Informações Em Python
კონფიგურაცია წარმოადგინა, გამოაქვეყნა სისტემა ან სისტემამ გამოიყენოს C ++, Java, Python და სხვა პროგრამები, რომლებიც გამოიყენება C ++, Java, Python და ა.შ., პროგრამული უზრუნველყოფის გამოყენებით. ეს არის პროგრამული უზრუნველყოფა, რომელიც პასუხობს მიმღებს, რომლითაც შეგიძლიათ გამოიყენოთ სენსორი, დამუშავდეს და შეაფასოს ის, რომ დააკმაყოფილოს თქვენი პროგრამის მოთხოვნა. Depois carrega esses dados para or servidor alocado na própria placa para enviar os dados já tratados para 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 soo apresentados em um app.
Seguem os códigos mag_python.py (leitor de dados do sensor), server2.py (Servidor local), შეასრულეთ no Shell:
Código mag_python.py
#!/usr/bin/პითონი
# ავტორი: ჯონ ტრულსონი
# საავტორო უფლება (გ) 2015 კორპორაცია ინტელი.
#
# ნებართვა მოცემულია უფასოდ, ნებისმიერი პირისთვის, ვინც იღებს მას
# ამ პროგრამული უზრუნველყოფის ასლი და მასთან დაკავშირებული დოკუმენტაციის ფაილები (# "პროგრამული უზრუნველყოფა"), შეასრულოს პროგრამული უზრუნველყოფა შეზღუდვის გარეშე, მათ შორის
# შეზღუდვის გარეშე გამოყენების, კოპირების, შეცვლის, შერწყმის, გამოქვეყნების უფლება, # გავრცელება, ქველიცენზირება და/ან გაყიდვა პროგრამული უზრუნველყოფის ასლები, და
# ნება დართეთ პირებს, ვისთვისაც აღჭურვილია პროგრამული უზრუნველყოფა, ექვემდებარება ამას
# შემდეგი პირობები:
#
# ზემოაღნიშნული საავტორო უფლებების ცნობა და ეს ნებართვის ცნობა უნდა იყოს
# შედის პროგრამის ყველა ასლში ან მნიშვნელოვან ნაწილში.
#
# პროგრამული უზრუნველყოფა უზრუნველყოფილია "როგორც არის", ყოველგვარი სახის გარანტიის გარეშე, # ექსპრესი ან იგულისხმება, მათ შორის, მაგრამ არ შემოიფარგლება გარანტიებით
# ვაჭრობა, ვარგისიანობა კონკრეტული მიზნისათვის და
# არასამთავრობო არავითარ შემთხვევაში არ უნდა იყვნენ ავტორები ან საავტორო უფლებების მფლობელები
# პასუხისმგებელია ნებისმიერი პრეტენზიის, ზიანის ან სხვა პასუხისმგებლობისათვის, მიუხედავად იმისა, რომ მოქმედებაში
# კონტრაქტის, ტრამვის ან სხვაგვარად, წარმოშობით, გარეთ ან კავშირში
# პროგრამულ უზრუნველყოფასთან ან გამოყენებასთან ან სხვა საქმეებთან ერთად პროგრამულ უზრუნველყოფაში.
_future_ იმპორტი print_function
იმპორტის დრო, sys, სიგნალი, atexit, urllib, urllib2, მათემატიკა
upm იმპორტი pyupm_mpu9150 როგორც sensorObj
def main ():
# მონაცემი = {}
# data ['magnetrometro'] = raw_input ("Informe a temperatura")
# მონაცემები = urlib.urlencode (მონაცემები)
# პოსტი_მოთხოვნა = urlib2. Request (post_url, data, headers)
# ცადე:
# post_response = urlib2.urlopen (პოსტის_თხოვნა)
# ამობეჭდვა post_response.read ()
# URLError როგორც e:
# ბეჭდვა "შეცდომა:", ე. მიზეზი
# დააინსტალირეთ MPU9250 I2C ავტობუსზე 0
სენსორი = სენსორიObj. MPU9250 ()
## დამმუშავებლების გასვლა ##
# ეს ფუნქცია აჩერებს პითონს დაბეჭდვისას stacktrace როდესაც თქვენ დააჭირეთ Control-C
def SIGINTHandler (ნიშანი, ჩარჩო):
ამაღლება SystemExit
# ეს ფუნქცია გაძლევთ საშუალებას გაუშვათ კოდი გასასვლელში
def exitHandler ():
ბეჭდვა ("გასვლა")
sys.exit (0)
# დაარეგისტრირეთ გასასვლელი დამმუშავებლები
atexit.register (exitHandler)
სიგნალი. სიგნალი (სიგნალი. SIGINT, SIGINTHandler)
sensor.init ()
x = sensorObj.new_floatp ()
y = sensorObj.new_floatp ()
z = sensorObj.new_floatp ()
ხოლო (1):
სენსორი. განახლება ()
სენსორი. მიიღეთ აქსელერომეტრი (x, y, z)
# ბეჭდვა ("ამაჩქარებელი:")
# ბეჭდვა ("AX: %.4f" % sensorObj.floatp_value (x), დასასრული = "")
# ბეჭდვა ("AY: %.4f" % sensorObj.floatp_value (y), დასასრული = '')
# ბეჭდვა ("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
# ბეჭდვა (modulo1)
modulo1 = (" %.1f" % abs (((modulo1 ** 0.5) -1)*9.8))
# ბეჭდვა (modulo1)
#
# სენსორი. მიიღეთ გიროსკოპი (x, y, z)
# print ("გიროსკოპი: GX:", sensorObj.floatp_value (x), დასასრული = "")
# ბეჭდვა ("GY:", sensorObj.floatp_value (y), დასასრული = '')
# ბეჭდვა ("GZ:", sensorObj.floatp_value (z))
sensor.getMagnetometer (x, y, z)
# print ("მაგნიტომეტრი: MX:", sensorObj.floatp_value (x), დასასრული = "")
# ბეჭდვა ("ჩემი:", sensorObj.floatp_value (y), დასასრული = "')
# ბეჭდვა ("MZ:", sensorObj.floatp_value (z))
modulo2 = sensorObj.floatp_value (x) ** 2+sensorObj.floatp_value (y) ** 2+sensorObj.floatp_value (z) ** 2
# ბეჭდვა (modulo2)
modulo2 = (" %.2f" % (modulo2 ** 0.5))
# ბეჭდვა (modulo2)
arq = ღია ('/tmp/dados.txt', 'w')
texto =
texto.append (str (modulo2)+","+str (modulo1))
arq.writelines (texto)
arq. დახურვა ()
# ბმული = ('https://data.sparkfun.com/input/0lwWlyRED5i7K0AZx4JO?private_key=D6v76yZrg9CM2DX8x97B&mag='+str(modulo2))
# ბეჭდვა ('enviando dados')
# გაგზავნა = urllib2.urlopen (ბმული)
# გვერდი = send.read ()
# ბეჭდვა (გვერდი)
# ბმული = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# ბეჭდვა ('enviando dados')
# გაგზავნა = urllib2.urlopen (ბმული)
# გვერდი = send.read ()
# ბეჭდვა (გვერდი)
# print ("ტემპერატურა:", sensor.getTemperature ())
# ბეჭდვა ()
# დრო. ძილი (.5)
თუ _name_ == '_ მთავარი_':
მთავარი ()
Código do Servidor Local
იმპორტის დრო
იმპორტი BaseHTTPS სერვერი
HOST_NAME = '172.17.56.9' # !!! დაიმახსოვრე ამის შეცვლა !!!
PORT_NUMBER = 80 # იქნებ ეს დააყენოთ 9000 -ზე.
a = 0
კლასი MyHandler (BaseHTTPServer. BaseHTTPRequestHandler):
def do_HEAD (s):
s.send_response (200)
s.send_header ("შინაარსის ტიპი", "text/html")
s.end_headers ()
def do_GET (ებ) ი:
dados = le_dados ()
ბეჭდვა (დადო)
"" "უპასუხე GET მოთხოვნას." ""
თუ s.path == "/1":
s.send_response (200)
s.send_header ("შინაარსის ტიპი", "ტექსტი/უბრალო")
s.end_headers ()
s.wfile.write (dados)
elif s.path == "/2":
s.send_response (200)
s.send_header ("შინაარსის ტიპი", "ტექსტი/უბრალო")
s.end_headers ()
s.wfile.write ("2")
სხვა:
s.send_response (200)
s.send_header ("შინაარსის ტიპი", "ტექსტი/უბრალო")
s.end_headers ()
s.wfile.write (dados)
#s.wfile.write ("ვერ მოიძებნა !!")
def le_dados ():
arq = ღია ('/tmp/dados.txt', 'r')
texto = arq.readline ()
arq. დახურვა ()
ტექსტის დაბრუნება
თუ _name_ == '_ მთავარი_':
server_class = BaseHTTPServer. HTTPS სერვერი
httpd = server_class ((HOST_NAME, PORT_NUMBER), MyHandler)
ბეჭდვის დრო. asctime (), "სერვერი იწყება - %s: %s" %(HOST_NAME, PORT_NUMBER)
სცადე:
a = a+2
httpd.serve_forever ()
გარდა კლავიატურის უწყვეტი:
ჩაბარება
httpd.server_close ()
ბეჭდვის დრო. asctime (), "სერვერის გაჩერება - %s: %s" %(HOST_NAME, PORT_NUMBER)
Código de Execução dos Códigos anteriores no Shell
#!/bin/bash
ექო "დაწყებული mag_python"
sudo python mag_python.py &
ექო "სერვერის დაწყება"
sudo python server2.py
ნაბიჯი 6: შედეგი საბოლოო
Feito isso როგორც aulas poderão ser auxiliadas და incrementadas pelo projeto Smart Lesson desenvolvido com a Dragonboard 410c. მომსახურების გაადვილება და პროპორციულობა და ჩვენი უმთავრესი აპრენდიზოდა ჩვენი სისტემების შემსუბუქებული რაოდენობის შეზღუდვის გარეშე.
LINK აპლიკაციის გარეშე Google Play:
ლინკები códigos Py- სთვის:
გირჩევთ:
ჭკვიანი სამაგიდო LED განათება - ჭკვიანი განათება W/ Arduino - Neopixels სამუშაო ადგილი: 10 ნაბიჯი (სურათებით)
ჭკვიანი სამაგიდო LED განათება | ჭკვიანი განათება W/ Arduino | Neopixels Workspace: დღეების განმავლობაში ჩვენ დიდ დროს ვატარებთ სახლში, ვსწავლობთ და ვმუშაობთ ვირტუალურად, ასე რომ, რატომ არ გავხადოთ ჩვენი სამუშაო სივრცე უფრო დიდი და ჭკვიანი განათების სისტემით Arduino და Ws2812b LED- ებით დაფუძნებული. აქ მე გაჩვენებთ როგორ ავაშენოთ თქვენი Smart სამაგიდო LED განათება, რომელიც
მარტივი გაკვეთილი CANBUS– ისთვის: 8 ნაბიჯი
მარტივი გაკვეთილი CANBUS– ისთვის: მე ვსწავლობ CAN– ს სამი კვირის განმავლობაში და ახლა დავამთავრე რამდენიმე პროგრამა სწავლის შედეგების დასადასტურებლად. ამ გაკვეთილში თქვენ შეისწავლით თუ როგორ გამოიყენოთ Arduino CANBUS კომუნიკაციის განსახორციელებლად. თუ თქვენ გაქვთ რაიმე შემოთავაზება, გთხოვთ დატოვოთ
შექმენით კოსმოსური სადგური TinkerCad Codeblock -- მარტივი გაკვეთილი: 7 ნაბიჯი (სურათებით)
შექმენით კოსმოსური სადგური TinkerCad Codeblock || მარტივი გაკვეთილი: მიუხედავად იმისა, რომ კოსმოსში ცხოვრების აზრი შეიძლება სამეცნიერო ფანტასტიკად მოგეჩვენოთ, ამას რომ კითხულობთ, საერთაშორისო კოსმოსური სადგური დედამიწაზე 5 მილის სიჩქარით ტრიალებს დედამიწაზე ერთხელ. ყოველ 90 წუთში ამ პროექტში თქვენ ისწავლით
Arduino RFID "ჭკვიანი კარის" გაკვეთილი: 7 ნაბიჯი
Arduino RFID 'Smart Door' Tutorial: ავტორი პიტერ ტრანი, 10ELT1 ამ გაკვეთილში თქვენ იმუშავებთ RFID მკითხველის მოდულთან ერთად, მიკრო სერვო ენერგიაზე მომუშავე კარის განსაბლოკად! დარწმუნდით, რომ გაქვთ უფლება წვდომის ბარათი, რომ მიიღოთ შესვლა და არ ატეხოთ განგაში და არ გამოიწვიოთ დამრღვევის შუქები. თქვენ იხელმძღვანელებთ ქ
IoT დაფუძნებული ჭკვიანი მებაღეობა და ჭკვიანი სოფლის მეურნეობა ESP32– ის გამოყენებით: 7 ნაბიჯი
IoT დაფუძნებული ჭკვიანი მებაღეობა და ჭკვიანი სოფლის მეურნეობა ESP32– ის გამოყენებით: მსოფლიო იცვლება დროთა განმავლობაში და სოფლის მეურნეობაც. დღესდღეობით, ხალხი აერთიანებს ელექტრონიკას ყველა სფეროში და სოფლის მეურნეობა არ არის გამონაკლისი. ელექტრონიკის ეს შერწყმა სოფლის მეურნეობაში ეხმარება ფერმერებს და ადამიანებს, რომლებიც მართავენ ბაღებს. ამ