Mundarija:
- 1 -qadam: materiallar
- 2 -qadam: Dragonboard 410c Com Mezzanine 96Boards: Konfiguratsiya E Pinagem
- 3 -qadam: Integrachao: Birlik + Vuforiya
- 4 -qadam: Birlik: O Android SDK -ni sozlang
- 5 -qadam: Mahalliy Criando Servidor va Python ma'lumotlari
- 6 -qadam: Final natijasi
Video: Aqlli dars: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Aqlli darsning vizasi yo'q, u erda hech qanday kafolat yo'q. de aula an'anaviy.
1 -qadam: materiallar
Dragonboard 410c dasturi:
- Dragonboard 410c;
- Cabo HDMI;
-USB orqali Teclado -USB -monitor orqali sichqoncha;
- 96 ta taxta taxtasi;
Dastur ijrochisi:
- Dragonboard 410c;
- 96 ta taxta taxtasi;
- Sensor Grove IMU 10DOF MPU - 9250 (sensorli sensorlar);
- Fonte de alimentação externa 11.1V;
- jumper fêmea-fêmea;
2 -qadam: Dragonboard 410c Com Mezzanine 96Boards: Konfiguratsiya E Pinagem
O Shield Mezzanine, Dragonboard 410c, 3.3V / 5V (daraja almashtirgich), shuningdek, 1.8V masofada joylashgan. Magnitometrli sensori MPU -9250 Grove -IMU 10DOF, xususan:
Quvvat manbai: 5V / 3.3V;
Quvvat: 6mA;
Komunika Seriyali;
Pino: VCC, GND, SDA va SCL;
I2C interfeysi;
Masalan, Grove I2C0 (5V) va sensorli sensorlar uchun zarur bo'lgan barcha ketma -ketlikdagi ulanishlar. (haqiqiy tasavvur)
3 -qadam: Integrachao: Birlik + Vuforiya
1- Veb-saytni o'chirib tashlaganingizdan so'ng, siz saytni o'chirib qo'yishingiz mumkin.
2- Vazifa menejeri va maqsadli menejerni kuzatish- bu kuzatuv (kvartira majmuasi).
3- Unity-ni import qilish uchun Feito ma'lumotlar bazasi mavjud.
4- Unity konfiguratsiya qilinmaydi, chunki u 3D tasvirini yaratadi, shuning uchun siz mahalliy dasturni yaratishingiz mumkin.
5- "Unity" ni sozlash va sozlashning asosiy sharti.
6- Tasvirni nishonga olish uchun 3D formatdagi dasturiy komponentlar (masalan, Biologiya yoki Fisika bo'limi) tayyorlanadi.
4 -qadam: Birlik: O Android SDK -ni sozlang
1- Android-da SDK-ni tanlang, Unity-ni tanlang va boshqaring.
2- Android-da Unity-ni o'rnatish uchun platforma tuzish kerak.
3- Fayllarni o'rnatish (o'rnatish uchun ruxsatnoma shriftlari).
5 -qadam: Mahalliy Criando Servidor va Python ma'lumotlari
C ++, Java, Python va boshqalar bilan bir qatorda, tizimni o'rnatish ham mumkin bo'lgan dasturlar va dasturlarning konfiguratsiyasi. Sensorli dasturiy ta'minot uchun javob beradigan dastur, bu sizning sensorli protsessoringiz, dasturiy ta'minot va dasturiy ta'minot dasturlari uchun javob beradi. Depois carrega esses ota -onalar uchun xizmatlar birligi va birligi uchun plataforma uchun mo'ljallangan. Misol uchun, Phyton lingvagel tilidagi loyihalar yordamida. Dragonboard 410c yoki Unity -ni taqdim etadigan ilovalar.
Seguem os códigos mag_python.py (datchiklar sensori), server2.py (mahalliy xizmatlar), Shell -ni bajaring:
Codigo mag_python.py
#!/usr/bin/python
# Muallif: Jon Trulson
# Mualliflik huquqi (c) 2015 Intel korporatsiyasi.
#
# Ruxsat shu tarzda, har qanday shaxsga tekin beriladi
# ushbu dasturiy ta'minot va tegishli hujjatlar fayllarining nusxasi (# "Dasturiy ta'minot"), dasturiy ta'minot bilan cheklanmagan holda shug'ullanish, shu jumladan
# foydalanish, nusxalash, o'zgartirish, birlashtirish, nashr etish huquqlari cheklanmagan holda
# dasturiy ta'minot nusxalarini tarqatish, litsenziyalash va/yoki sotish
# dasturiy ta'minot ta'minlangan shaxslarga ruxsat berilgan
# quyidagi shartlar:
#
# Yuqoridagi mualliflik huquqi to'g'risidagi bildirishnoma va bu ruxsatnoma xabari bo'lishi kerak
# dasturiy ta'minotning barcha nusxalariga yoki katta qismlariga kiritilgan.
#
# Dasturiy ta'minot "qanday bo'lsa," ham shunday kafolatlanmagan holda taqdim etiladi, # EXPRESS yoki IMPLIED, shu jumladan, lekin kafolatlari bilan chegaralanmagan.
# SAVDO BO'LISH, AYNI MAKSADGA MUVOFIQ VA
#NONFRINGEMENT. Hech qanday holatda ham mualliflar yoki mualliflik huquqi egalari bo'lmaydi
# Har qanday da'vo, zarar yoki boshqa mas'uliyat uchun javobgar.
# Shartnoma, qiynoq yoki boshqasi, kelib chiqishi, ulanishi yoki tashqarisida
# Dasturiy ta'minot yoki dasturiy ta'minotdan foydalanish yoki boshqa shartlar bilan.
_future_ dan import print_function
import vaqti, sys, signal, atexit, urllib, urllib2, matematika
upup import pyupm_mpu9150 dan sensorObj sifatida
def main ():
# ta ma'lumot = {}
# ma'lumot ['magnetrometro'] = xom_ kirish ("Harorat haqida ma'lumot berish")
# ma'lumotlar = urlib.urlencode (ma'lumotlar)
# post_request = urlib2. Talab (post_url, ma'lumotlar, sarlavhalar)
# harakat:
# post_response = urlib2.urlopen (post_request)
# chop etish post_response.read ()
# dan tashqari URLError:
# chop etish "Xato:", e.sabab
# 0 I2C avtobusida MPU9250 -ni yarating
Sensor = sensorObj. MPU9250 ()
## Chiqish ishlovchilari ##
# Bu funksiya C-ni bosganingizda pythonning stacktrace-ni chop etishini to'xtatadi
def SIGINTHandler (signal, ramka):
SystemExit -ni ko'taring
# Bu funksiya chiqishda kodni ishga tushirishga imkon beradi
def exitHandler ():
chop etish ("Chiqish")
sys.exit (0)
# Chiqish ishlovchilarini ro'yxatdan o'tkazing
atexit.register (exitHandler)
signal.signal (signal. SIGINT, SIGINTHandler)
sensor.init ()
x = sensorObj.new_floatp ()
y = sensorObj.new_floatp ()
z = sensorObj.new_floatp ()
vaqt (1):
sensor.update ()
sensor.getAkselerometr (x, y, z)
# chop etish ("Akselerometr:")
# chop etish ("AX: %.4f" % sensorObj.floatp_value (x), end = '')
# chop etish ("AY: %.4f" % sensorObj.floatp_value (y), end = '')
# chop etish ("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
# chop etish (modulo1)
modulo1 = (" %.1f" % abs (((modulo1 ** 0.5) -1)*9.8))
# chop etish (modulo1)
#
# sensor.getGiroskop (x, y, z)
# chop etish ("Gyroscope: GX:", sensorObj.floatp_value (x), end = '')
# chop etish ("GY:", sensorObj.floatp_value (y), end = '')
# chop etish ("GZ:", sensorObj.floatp_value (z))
sensor.getMagnitometr (x, y, z)
# chop etish ("Magnetometr: MX:", sensorObj.floatp_value (x), oxiri = '')
# chop etish ("MY:", sensorObj.floatp_value (y), end = '')
# chop etish ("MZ:", sensorObj.floatp_value (z))
modulo2 = sensorObj.floatp_value (x) ** 2+sensorObj.floatp_value (y) ** 2+sensorObj.floatp_value (z) ** 2
# chop etish (modulo2)
modulo2 = (" %.2f" % (modulo2 ** 0,5))
# chop etish (modulo2)
arq = ochiq ('/tmp/dados.txt', 'w')
matn =
texto.append (str (modulo2)+","+str (modulo1))
arq.yozuvlari (matn)
arq.close ()
# havola = ('https://data.sparkfun.com/input/0lwWlyRED5i7K0AZx4JO?private_key=D6v76yZrg9CM2DX8x97B&mag='+str(modulo2))
# chop etish ("enviando dados")
# yuborish = urllib2.urlopen (havola)
# sahifa = send.read ()
# chop etish (sahifa)
# havola = ('https://data.sparkfun.com/input/1noGndywdjuDGAGd6m5K?private_key=0mwnmR9YRgSxApAo0gDX&acel='+str(modulo1))
# chop etish ("enviando dados")
# yuborish = urllib2.urlopen (havola)
# sahifa = send.read ()
# chop etish (sahifa)
# chop etish ("Harorat:", sensor.getTemperature ())
# chop etish ()
# vaqt. uxlash (.5)
agar _name_ == "_main_" bo'lsa:
asosiy ()
Codigo do Servidor Local
import vaqti
BaseHTTPServer -ni import qilish
HOST_NAME = '172.17.56.9' # !!! BUNI O'ZGARTIRISHNI UNUTMANG !!!
PORT_NUMBER = 80 # Balki buni 9000 qilib belgilang.
a = 0
MyHandler klassi (BaseHTTPServer. BaseHTTPRequestHandler):
def do_HEAD (lar):
s.send_response (200)
s.send_header ("Kontent turi", "matn/html")
s.end_headers ()
def do_GET (lar):
dados = le_dados ()
chop etish (dados)
"" "GET so'roviga javob bering." ""
agar s.path == "/1":
s.send_response (200)
s.send_header ("Kontent turi", "matn/oddiy")
s.end_headers ()
s.wfile.write (dados)
elif s.path == "/2":
s.send_response (200)
s.send_header ("Kontent turi", "matn/oddiy")
s.end_headers ()
s.wfile.write ("2")
boshqa:
s.send_response (200)
s.send_header ("Kontent turi", "matn/oddiy")
s.end_headers ()
s.wfile.write (dados)
#s.wfile.write ("topilmadi !!")
def le_dados ():
arq = ochiq ('/tmp/dados.txt', 'r')
matn = arq.readline ()
arq.close ()
matnni qaytarish
agar _name_ == "_main_" bo'lsa:
server_class = BaseHTTPServer. HTTPServer
httpd = server_class ((HOST_NAME, PORT_NUMBER), MyHandler)
chop etish vaqti.asctime (), "Server boshlanadi - %s: %s" %(HOST_NAME, PORT_NUMBER)
harakat qilib ko'ring:
a = a+2
httpd.serve_forever ()
KeyboardInterruptdan tashqari:
o'tish
httpd.server_close ()
chop etish vaqti.asctime (), "Server to'xtaydi - %s: %s" %(HOST_NAME, PORT_NUMBER)
Codigo de Execução dos Códigos anteriores no Shell
#!/bin/bash
echo "mag_pythonni ishga tushirish"
sudo python mag_python.py &
echo "serverni ishga tushirish"
sudo python server2.py
6 -qadam: Final natijasi
Feito, shuningdek, Dragonboard 410c -dan Smart Lesson -ni ishlab chiqish uchun qo'shimcha yordam dasturlari sifatida ishlatiladi. Xizmatlar va tizimlar maxsus dasturiy ta'minot bilan ta'minlanadi.
Google Play ilovasi uchun havola:
Py uchun havola:
Tavsiya:
SONOFF aqlli kalitlari yordamida aqlli rolikli pardalarni qanday yasash mumkin ?: 14 qadam
SONOFF aqlli kalitlari yordamida aqlli rolikli pardalarni qanday yasash mumkin?: SONOFF aqlli kalitlarida interlok rejimidan foydalaning, oddiy rolikli pardalarni aqlli ko'rinishga aylantirish uchun ko'pchiligingiz rozi bo'lasizmi, siz ertalab rolikli pardalarni tortib olasiz. va kechqurun uni pastga tushirmoqchimisiz? Qanday bo'lmasin, men
Uskuna va dasturiy ta'minot Hack aqlli qurilmalar, Tuya va Broadlink LED lampochkasi, Sonoff, BSD33 aqlli vilkasi: 7 qadam
Uskuna va dasturiy ta'minot Hack Smart Devices, Tuya va Broadlink LED lampochkasi, Sonoff, BSD33 Smart Plug: Bu ko'rsatmada men bir nechta aqlli qurilmalarni o'z dasturiy ta'minotim bilan qanday o'chirganimni ko'rsataman, shuning uchun ularni Openhab sozlamalari orqali MQTT orqali boshqarishim mumkin. Men ularni buzganimda yangi qurilmalar. Albatta, maxsus dasturiy ta'minotni o'chirishning boshqa usullari mavjud
2 -dars: Arduino -ni davr uchun quvvat manbai sifatida ishlatish: 6 qadam
2 -dars: Arduino -ni davr uchun quvvat manbai sifatida ishlatish: Yana bir bor salom, talabalar, mening ikkinchi darsimga asosiy elektronikani o'rgatish. Mening birinchi darsimni ko'rmaganlar uchun, bu sxemaning juda oddiy asoslarini ta'riflaydi, iltimos, hozir ko'ring. Mening oldingi o'yinimni ko'rganlar uchun
Java seminari - 1 -dars: 9 qadam
Java seminari - №1 dars: Java seminariga xush kelibsiz - №1 dars. Bu dars sizga Virginia Tech -dagi Code () sinfida taqdim etilgan
Arduino tank mashinasi 6-dars-Bluetooth va Wi-Fi nuqtalarini boshqarish: 4 qadam
Arduino tankli mashina 6-dars-Bluetooth va Wi-Fi nuqtalarini nazorat qilish: Bu darsda biz robot va mobil ilovani WiFi va Bluetooth orqali boshqarishni o'rganamiz. Biz faqat esp8266 wifi-ning maxsus kengashini kengaytirish taxtasi sifatida ishlatamiz va tankni boshqaramiz. oldingi darslarda IR qabul qilgich orqali. Bu darsda biz o'rganamiz