Smartphone mengendarai mobil mainan.

Selama dekade terakhir, banyak yang memiliki satu atau dua ponsel pintar yang tidak digunakan, dan begitu juga ponsel saya. Saya memutuskan untuk menggunakan smartphone untuk mengendalikan sesuatu, misalnya, mobil.
Untuk memulai, saya memilih mobil mainan dari Lego. Ia dapat bergerak maju dan mundur, belok kiri dan kanan dan memiliki kendali jarak jauh dengan sinar IR. Sebagai penggerak mesin-mesin tersebut digunakan chip LB1836, yang memiliki empat input informasi. In1, In2 - kontrol mesin yang sedang berjalan, In3, In4 - kontrol kemudi, sesuai dengan skema 0, 0 atau 1, 1 - keadaan tidak beroperasi. 0, 1 atau 1, 0 - putaran mesin dalam satu arah atau lainnya.

Logika 0 dan 1 pada input membentuk penerima sinar inframerah mainan ketika menerima sinyal dari remote control.

Saya memutuskan untuk menggunakan layar telepon pintar untuk mengirimkan sinyal dari telepon pintar ke mesin tik, karena saluran transmisi lain secara teknis rumit dan mahal untuk diterapkan. Saya memutuskan untuk menghubungkan perangkat saya ke input chip LB1836, yang akan menerima sinyal dari smartphone.

Skema transmisi sinyal adalah sebagai berikut. Program di smartphone menciptakan bintik-bintik cahaya dengan durasi tertentu di layar, perangkat mendaftarkannya dan menghasilkan 0 dan 1 logis dari durasi yang sama pada input LB1836 tanpa pemrosesan logis apa pun, yang sangat menyederhanakan desain perangkat. Artinya, saya baru saja mengganti penerima inframerah dengan perangkat saya.

Perangkat untuk menerima sinyal cahaya terdiri dari 4 sel. Setiap sel adalah fototransistor L-3DP3C KGB yang terhubung ke amplifier pada transistor npn KT315. Daya diambil dari mesin yang dikendalikan. Output, seperti yang saya katakan, terhubung ke input yang sesuai dari driver mesin. Mesin bertenaga rendah dapat diaktifkan langsung dari pintu keluar, tetapi hanya akan berputar dalam satu arah. Tetapi akan ada empat dari mereka!



Tentang pilihan elemen perangkat saya bisa katakan berikut ini. Saya mengambil transistor yang saya miliki sejak zaman kuno. Fototransistor membeli yang ada di toko. Jadi, jika Anda ingin mengulangi skema, jangan buang waktu mencari, gunakan elemen yang tersedia untuk Anda. Ngomong-ngomong, pada awalnya saya memasang amplifier pada chip LM 324N dengan empat amplifier operasional. Ini juga berfungsi dengan baik, tetapi bagi saya sepertinya dimensinya terlalu besar.
Perangkat itu dirakit di atas kertas karton, menggunakan potongan-potongan kertas tembaga dan elemen-elemen desainer Lego.



Fototransistor ditempatkan di dasar sumur cahaya dengan diameter 5 mm dan kedalaman 9 mm untuk mengecualikan penerangan lateral. Film metal yang digulung ke dalam tabung dimasukkan ke dalam sumur cahaya, yang secara signifikan meningkatkan sensitivitas fototransistor, karena peningkatan fluks cahaya.



Ini mobil.



Untuk mengembangkan program, saya mengambil aplikasi BASIC! dari Googl Play Market. Aplikasi ini memungkinkan Anda untuk menulis program untuk Android, membuat file apk dan bekerja dengan semua sensor dan perangkat smartphone.

Daftar program

DO LET s$=" :      " TTS.INIT TTS.SPEAK s$ TTS.STOP STT.LISTEN "" STT.RESULTS theList LIST.SIZE theList, theSize LET kom$="" FOR k = 1 TO theSize LIST.GET theList, k, theText$ IF (theText$="") THEN kom$="" IF (theText$="") THEN kom$="" IF (theText$="") THEN kom$="" IF (theText$="") THEN kom$="" IF (theText$="") THEN kom$="" NEXT k PRINT kom$ GR.OPEN 255, 0, 0, 0 GR.BRIGHTNESS 0.7 GR.ORIENTATION 1 GR.SCREEN w, h a = 255 r = 255 g = 255 b = 255 fill = 1 GR.COLOR a,r,g,b,fill LET wc=0.95*h LET hc=w LET m=36 GR.CLS GR.CIRCLE n5, hc/m*9.5,wc,w/15.6 GR.CIRCLE n4, hc/m*13.5,wc,w/15.6 GR.CIRCLE n3, hc/m*18,wc,w/15.6 GR.CIRCLE n2, hc/m*22.5,wc,w/15.6 GR.CIRCLE n1, hc/m*26.5,wc,w/15.6 FOR i=1 TO 5 GR.HIDE i NEXT i IF (kom$="") THEN GR.SHOW 2 PAUSE 300 GR.HIDE 2 ENDIF IF (kom$="") THEN GR.SHOW 1 PAUSE 300 GR.HIDE 1 ENDIF IF (kom$="") THEN GR.SHOW 2 GR.SHOW 4 PAUSE 300 GR.HIDE 2 GR.HIDE 4 ENDIF IF (kom$="") THEN GR.SHOW 2 GR.SHOW 5 PAUSE 300 GR.HIDE 2 GR.HIDE 5 ENDIF IF (kom$="") THEN GOTO qq GR.BRIGHTNESS 0.1 GR.CLOSE UNTIL 0 ! ONERROR: qq: LET s$="  " TTS.INIT TTS.SPEAK s$ TTS.STOP GR.BRIGHTNESS 0.1 GR.CLOSE END 

Program ini menggunakan kontrol suara sebagai yang paling tepat dalam kasus saya. Objek TTS mengubah teks menjadi ucapan. Objek STT mengubah ucapan menjadi teks. Saat bekerja dengan STT, Wi Fi harus dihidupkan, karena soundtrack yang direkam dikirim ke server di Internet, di mana hasil pengenalan berasal, ini adalah beberapa kata atau frasa. Program memeriksa apakah perintah ada dalam daftar, menampilkan perintah di layar dan menjalankannya. Jika teks tidak dikenali, program menampilkan pesan tentang hal itu. Semua ini diulang dalam siklus tanpa akhir. Program diakhiri dengan perintah "berhenti" atau dengan menekan tombol kembali. Dimensi geometrik diambil relatif untuk mengotomatiskan pengikatan pada layar yang berbeda dengan ukuran dan resolusi yang berbeda, yang tidak selalu berfungsi. Lingkaran yang digambar di layar adalah objek dan diberi nomor secara otomatis saat dibuat.

Perintah GR.SHOW 2 berarti menunjukkan lingkaran yang telah dibuat kedua. Nomornya tercantum dalam n4. Anda bisa menulis GR.SHOW n4. Pada baris IF (theText $ = "forward") THEN kom $ = "forward" Anda akan melihat perbedaan dalam nilai-nilai dalam perintah assignment - "forward" dan "forward". Faktanya adalah bahwa STT dengan keras kepala mengembalikan "maju", meskipun ada kasus "maju", maka program tidak mengenali perintah. Itu mungkin untuk menghilangkan ini, tapi saya tidak mempersulit program, tetapi hanya mengoreksi ejaan ketika itu ditampilkan di layar. Masih ada kegagalan saat mengenali perintah "kiri". Namun, mungkin inilah fitur pengucapan saya.

Sayangnya, saya tidak bisa menyisipkan klip yang menunjukkan operasi program di sini.
Coba lihat di sini .

Source: https://habr.com/ru/post/id424945/


All Articles