Membuat Perangkat / Fitur untuk Mesin Penjual Otomatis: 7 Langkah (dengan Gambar)

Membuat Perangkat / Fitur untuk Mesin Penjual Otomatis: 7 Langkah (dengan Gambar)

Daftar Isi:

Anonim

Ingin menambahkan fitur ke mesin penjual otomatis? Mungkin ada satu di ruang pembuat lokal Anda, mungkin di mancave, atau mungkin Anda hanya ingin membuat fitur untuk mesin penjual otomatis di seluruh dunia. Jika Anda memiliki keinginan untuk membuat fitur baru untuk mesin penjual otomatis, baca terus!

Dari proyek sebesar menempatkan AI Chatbot yang mengancam bertanggung jawab atas mesin, ke hal-hal kecil & sederhana seperti tombol Vendor Gratis di ponsel Anda, salah satu fitur ini memiliki kebutuhan yang sama untuk berkomunikasi dengan mesin penjual otomatis. Lebih mudah diucapkan daripada dilakukan! Apa yang akan saya tunjukkan kepada Anda, adalah bagaimana membuat perangkat "kosong" yang dapat menghubungkan mesin penjual otomatis dan wifi / bluetooth. Anggap saja seperti cek kosong, kekuatan ada di sana, Anda bisa membuatnya menjadi apa yang Anda inginkan!

Persediaan:

Langkah 1: Apa itu MDB?

Jika membuat perangkat yang berbicara dengan mesin penjual otomatis, Anda perlu berbicara bahasa mereka. Bahasa itu adalah 'MDB'. Nama lengkapnya adalah "MDB / ICP", yang merupakan singkatan dari "Multi Drop Bus / Protokol Komunikasi Internal".

Ini adalah standar yang paling banyak digunakan untuk komunikasi antar perangkat dalam mesin penjual otomatis, setidaknya di AS. Dikelola dan dimiliki oleh NAMA (National Merchandising Association) dan EVA (European Vending Association), dikembangkan kembali di awal tahun 90-an dan telah menstandarisasi cara mesin penjual otomatis berkomunikasi, memungkinkan suku cadang untuk mesin penjual otomatis (akseptor tagihan, penukar koin, dll..) untuk bekerja di setiap penjual merek / model apa pun asalkan mesin yang mendukung standar.

Ada banyak mesin yang masih menggunakan teknologi lama dan belum diupgrade, jadi pastikan mesin yang ditujukan untuk perangkat Anda memiliki kemampuan MDB. Selain memeriksa manual untuk mesin spesifik Anda, indikator mudah bahwa mesin Anda menawarkan kemampuan MDB, adalah adanya kabel pengikat dengan konektor Jr 2x3 Molex. Saya telah menyertakan gambar steker MDB wanita (itu gender berdasarkan kontak logam).

Bagaimana cara kerjanya?

Sekarang adalah titik untuk menonton video "Dijelaskan MDB". Saya merasa agak buruk menggunakan video orang ini untuk mempromosikan alternatif untuk produk-produknya (dia tampak sangat ramah dan bersemangat), jadi jika Anda mendapat uang, pertimbangkan untuk membeli MDB-nya untuk produk-produk USB atau menyewanya untuk mendesain produk khusus untuk Anda, daripada lakukan sendiri.

Satu catatan yang akan saya tambahkan, adalah istilah "Multidrop Bus" juga merupakan istilah teknis (non-penjual), jadi jika melakukan pencarian internet untuk MDB, akan lebih baik menggunakan nama lengkap "MDB / ICP", dan / atau mungkin menambahkan kata "penjual" di sana.

Dua video-nya yang lain yang bisa Anda lihat jika Anda suka, tapi saya rasa ini jauh lebih singkat untuk dijelaskan dengan kata-kata:

  • MDB memiliki konfigurasi master & slave, di mana VMC adalah master, dan semua periferal adalah budak.

  • Itu VMC / Kuasai, awali dan akhiri semua komunikasi, dan jajak pendapat (periksa) periferal / budak secara berkala.

  • ThePeripheral / Slave, mendengarkan semua komunikasi yang datang dari VMC, dan menunggu perintah untuk ditujukan padanya, sebelum mengatakan sesuatu kepada VMC / Master.

  • Dengan cara ini, hanya satu perangkat yang berbicara kepada VMC kapan saja, yang diperlukan dalam Konfigurasi Multidrop (istilah teknis).

Opsi periferal apa yang ada?

Standar MDB saat ini memungkinkan perangkat ini:

  • Pengubah Koin (Membawa perubahan dan memberi perubahan)
  • Akseptor Tagihan (Mengambil tagihan, dan model yang lebih baru dapat memberikan tagihan)
  • Perangkat Pembayaran Tanpa Tunai (Menerima bentuk pembayaran digital)
    • Dapat digunakan karena alasan lain, seperti mengakses tampilan dan tombol mesin, mendapatkan pembaruan penjualan, atau mentransfer file. Jika membuat fitur acak, Anda harus menetapkannya sebagai periferal jenis ini karena daya yang dimilikinya terhadap mesin.
  • Gateway Komunikasi (Untuk perangkat komunikasi data eksternal, DEX adalah standar audit dominan)
  • Perangkat Satelit Universal (Singkatnya, mekanisme penjualan / add-on yang membutuhkan mesin host untuk penerimaan pembayaran)
  • Koin Hoppers (Pemberian koin massal, seperti mesin ganti)

Beberapa hal tambahan yang perlu diketahui:

  • UART, adalah standar umum / non-penjual untuk mentransfer data serial. Format data serial dan laju data dapat dikonfigurasi. Sebagian besar perangkat keras memiliki rangkaian UART yang dapat dikonfigurasi sesuai kebutuhan Anda.
    • Pengaturan UART untuk MDB adalah 9600NRZ, 9-N-1

      • 9600 singkatan dari Baud Rate 9600, alias 9600 bit per detik, yang berarti setiap bit panjangnya 104uS.
      • Itu NRZ singkatan Non-Return-To-Zero, yang tersirat / standar dalam banyak kasus.
      • Itu 9 singkatan dari 9 bit data, 8 adalah standar dan 9 tidak biasa. Lebih lanjut tentang ini nanti.
      • Itu N singkatan dari No parity checking.
      • Itu 1 singkatan 1 stop bit.
  • RS232, ada banyak MDB ke RS232 Adapter. Ini karena RS232 adalah / merupakan standar populer yang ada sebelum MDB, yang siap & biasa digunakan dengan UART, membuatnya mudah beradaptasi dengan MDB. Saya sarankan tinggal jauh dari RS232 jika tidak ada alasan kuat untuk menggunakannya. Pasar dibanjiri dengan itu, dan itu adalah standar yang sudah usang yang biasanya menunjukkan bahwa desainer menggunakannya terjebak dalam cara lama (kurang efisien / berkinerja). Hal yang sama berlaku untuk sirkuit lubang, tapi itu topik yang berbeda.
  • USB, mengapa mereka tidak membuat adaptor USB? Pertanyaan bagus!

    • Ada satu baris data dua arah di USB2.0. MDB / UART menggunakan Transmit searah yang terpisah dan garis Terima secara terpisah.
    • USB3.0 memiliki jalur Transmit dan Receive yang terpisah, tetapi itu (serta USB2.0) adalah sinyal diferensial, di mana MDB / UART menggunakan pensinyalan berujung tunggal. Saya menantang seseorang untuk membuat USB2.0 dan / atau USB-C, ke adaptor MDB, tanpa menggunakan sirkuit terintegrasi apa pun (opamp diizinkan, geser register hanya jika diperlukan 100%), posting di bagian "Saya membuatnya" jika Anda melakukan.
    • Bagi mereka yang bertanya-tanya tentang adaptor USB ke UART yang mungkin Anda miliki, hanya dua chip yang ada yang saya ketahui mendukung 9 bit UART, keduanya dibuat oleh MaxLinear, dan tak satu pun dari mereka telah digunakan dalam adaptor USB ke UART. Tidak ada satu pun chip FTDI yang mendukung 9 bit UART, dan bahkan jika kami menemukan cara untuk membuatnya bekerja, itu akan menjadi pekerjaan ekstra (driver perangkat lunak, port COM, dll.) Ketika prioritas awal kami cepat dan mudah, untuk itu alasan kami menggunakan papan pengembangan sebagai gantinya.
  • EVA-DTS adalah Standar Data spesifik industri vending, yang harus Anda perhatikan jika membuat suatu produk. Ini memberikan format yang seragam untuk semua data terkait penjualan. DTS adalah singkatan dari "Data Transfer Standard".

Versi terbaru dari standar MDB dapat ditemukan di sini. Jika Anda memilih periferal yang ingin Anda buat, lihat sekilas seluruh bagian untuk membuatnya menyadari semua fitur / opsi yang dimilikinya.

Langkah 2: Alat Dibutuhkan

Anda akan membuat versi papan tempat memotong roti dari perangkat MDB Anda, sebelum membuat versi khusus. Sebelum memulai, Anda membutuhkan beberapa alat.

Dua situs utama untuk memesan bagian, akan DigiKey, dan Amazon. Saya memilih Amazon dengan asumsi Anda memiliki keanggotaan utama amazon dan / atau ini akan menjadi metode yang lebih disukai ketika hal-hal tidak dapat ditemukan di DigiKey. Akan lebih baik untuk mendapatkan semuanya di gerobak (atau dua) dan menunda memesan sampai Anda memiliki bagian yang dipilih dari langkah berikutnya juga.

Alat yang Dibutuhkan untuk versi papan tempat memotong roti:

  • Baut pateri. Meskipun Anda hanya membutuhkan setrika untuk Instructable ini, saya sarankan untuk mendapatkan kemampuan udara panas, jika tidak penuh pada stasiun pengerjaan ulang SMD. Ketika saya masih remaja, saya menjual senjata airsoft mewah saya, dan membeli stasiun pengerjaan ulang di bawah, bersama dengan sekelompok alat lain untuk masuk ke elektronik. Saya telah menggunakan stasiun pengerjaan ulang untuk reflow koneksi BGA di beberapa laptop dan telah membayar sendiri dengan cara itu.

    • Nilai Terbaik (Besi, Udara Panas / SMD, pengerjaan ulang BGA)
    • Nilai Terbaik (Setrika, Udara Panas / SMD)
    • Kualitas Terbaik (Hanya Besi)
  • Pateri. Jangan lupa bahwa asapnya beracun dan menyebabkan masalah kesehatan kronis. DigikeyAmazon
  • Penjahat

    • Inilah pasangan memadai termurah yang saya temukan.
  • Penari telanjang kawat. Apa pun akan dilakukan, tetapi saya sangat merekomendasikan StripMaster Industri Ideal. Karena kualitasnya, satu pasang tidak dapat melucuti setiap pengukur kawat, jadi untuk penggunaan di luar Instructable ini, Anda kemungkinan akan mengalami kebutuhan untuk pasangan ke-2 (atau sisipan ukuran berbeda). Ingatlah bahwa kami menggunakan 20 kawat pengukur dalam proyek ini.
    • 8-22 Penari telanjang atau Sisipan Gauge
    • 20-30 Gauge Penari Telanjang atau Sisipan
    • StripMaster Frame, jika Anda memesan sisipan daripada pasangan ke-2, dan menyesalinya, seperti yang saya lakukan.
  • Pemotong kawat (gunting atau gunting kuku berfungsi, hanya sesuatu untuk memotong kawat tipis dengan)
  • Penganalisa logika. Secara teknis opsional, tetapi membantu men-debug perangkat lunak komunikasi & memverifikasi kerja perangkat keras.

    • Saya menggunakan Oscilloscope DSO203 dengan perangkat lunak penganalisa logika pihak ke-3, tetapi ada juga penganalisis murah. Kecuali Anda tahu Anda membutuhkan yang mewah, dapatkan yang murah. Sigrok menawarkan perangkat lunak sumber terbuka yang bekerja dengan berbagai perangkat yang berbeda.
  • Voltmeter akan menjadiberguna.

Alat tambahan dibutuhkan sejak saat itu:

  • Alat solder pemasangan di permukaan (Dikontrol suhu: Reflow oven dan / atau hot air gun)
    • Ini adalah instruksi untuk membuat oven reflow
    • Stasiun solder udara panas tidak perlu 100%, dan sejauh yang saya tahu Anda harus membelinya.
  • Peralatan inspeksi optik (seperti mikroskop USB)
    • Ini adalah mikroskop yang saya gunakan, sejauh yang saya tahu itu salah satu yang murah terbaik.
  • Pinset Presisi untuk menempatkan bagian (sekecil ini, mereka akan tampak besar ketika Anda menggunakannya)

    • Ini satu set murah

    SEMUA PERANGKAT DARI DI SINI TERSEDIA

  • Emulator JTag. JTAG dibuat untuk memudahkan memeriksa kualitas PCB yang baru dirakit.
    • Pastikan emulator yang Anda beli kompatibel dengan perangkat yang Anda gunakan dalam desain Anda. Yang ini digunakan untuk ESP32. Jika memesan Programmer ESP32, lihat langkah berikutnya dan pertimbangkan memesan papan pengembangan ESP32 dari sana juga, daripada DigiKey.
  • Printer / aplikator stensil solder. Saya membeli CYBRES SP2421, tetapi merasa mungkin ada opsi yang lebih baik yang belum saya temukan. Minimal, tambahkan spacer ke keranjang Anda saat memesan stensil Anda (dari OSHPark).
  • Mesin Pick and Place (untuk perakitan otomatis berulang, lebih untuk produksi massal skala kecil)
    • Saya membeli LitePlacer (dengan pinjaman, dengan semua alat saya yang lain), namun saya melihat opsi yang lebih murah dan mungkin lebih baik.
    • Ingat, layanan perakitan profesional tidak terlalu mahal dalam jumlah yang lebih besar.
  • Printer 3D (jika Anda memilikinya), untuk menguji desain selungkup.
  • CNC Mill (jika Anda memilikinya)
    • Sangat bagus untuk membuat penutup berkualitas tinggi satu kali, atau hal-hal lain seperti cetakan untuk cetakan injeksi.
    • Sangat bagus untuk membuat komponen mekanis yang menghubungkan sirkuit Anda ke dunia nyata.
    • Sangat berharga (hemat waktu) untuk membuat PCB secara lokal. Untuk sirkuit kecil Anda akan melacak secara kimiawi etch, tetapi masih membutuhkan gilingan untuk Vias, bentuk papan / guntingan, panelisasi / depanelizing, dll.
  • Perangkat lunak Desain PCB (Untuk merancang PCB atau mengubah desain saya)

    • EagleCAD (dipasangkan dengan Fusion360 untuk pemodelan 3D) adalah apa yang selalu saya gunakan sejak sebelum dibeli oleh AutoDesk. Jika Anda memiliki desain besar atau komersial (mendiskualifikasi Anda dari lisensi gratis) dan tidak punya uang untuk lisensi yang ditingkatkan dari AutoDesk, sumber bebas dan terbuka tetapi bukan sebagai alternatif mewah adalah KiCAD (dipasangkan dengan FreeCAD). KiCAD yang saya rasakan adalah kurva belajar yang lebih curam juga.

Langkah 3: Dapatkan Terhubung

Persiapan:

Pintar membuat perangkat lunak dan fitur Anda sebelum berkomitmen mengembangkan perangkat keras khusus yang berdedikasi. Ini meminimalkan upaya yang dilakukan jika Anda menemukan ide Anda tidak bekerja, memungkinkan Anda untuk mengembangkannya secepat mungkin, dan memungkinkan Anda dengan mudah menambah dan menghapus perangkat keras sebelum desain akhir Anda. Jadi untuk memulainya kita hanya akan membuat model papan tempat memotong roti. Anda dapat menyimpang dari desain yang tepat ini jika Anda suka, tetapi jika Anda melakukannya, pastikan untuk membaca akhir dari langkah ini di mana saya menjelaskan pemikiran di balik setiap bagian.

Daftar Bagian:

Inilah gerobak belanjanya:

  • Bagian DigiKey (saya menggunakan digikey karena mereka dekat, jadi seolah-olah saya memiliki "DigiKey Prime")
    • GridConnect Parts (Jika membeli programmer JTAG untuk ESP32)
      • ESP32 DevKitC Development Board (dilengkapi dengan header wanita)
      • ESP Programming & Debugging Tool (lebih murah dari DigiKey, jika sudah membayar untuk pengiriman)
        • Ini opsional, dan benar-benar hanya membantu ketika Anda membuat PCB khusus.
  • Bagian Amazon
    • 20 AWG Hookup Wire kit (jika Anda belum memiliki 20 kawat pengukur)
    • Kawat Bungkus (opsional, pita listrik juga berfungsi)
    • Wadah / Kandang. Saya membeli tambang di toko dolar, sama untuk minyak mineral.
    • Minyak Mineral (Beli 2) Anda tidak perlu banyak untuk menutupi regulator, tetapi lebih banyak minyak = lebih banyak disipasi panas.
    • Liquid Tape, untuk menutup lubang di enklosur tempat kabel Anda keluar.

Majelis:

Tonton video untuk instruksi perakitan pada kabel harness, Anda dapat membisukannya jika Anda merasa audio super ngeri layak. Ketika sampai pada bagian di mana Anda menyolder sesuatu ke papan tempat memotong roti, lihat daftar ini untuk koordinat untuk menempatkan setiap koneksi.

Solder semua bagian ke papan tempat memotong roti seperti yang ditunjukkan dalam video. Saya telah memasukkan Model 3d dari papan proto (tidak 100% akurat secara estetika, tetapi idenya adalah bahwa model 3D memberi Anda sesuatu yang dapat Anda lihat sendiri jika bagian berikutnya membingungkan. Anda dapat mengunggah file di sini dan melihat saya t.

Papan tempat memotong roti memiliki huruf pada sumbu Y dan angka pada sumbu X. Kami akan menggunakan ini untuk menentukan di mana setiap koneksi mendarat. Untuk atas dan menurunkan bus listrik, biarkan U & L. tentukan yang mana yang kami maksud. Juga menentukan positif atau negatif bus, kami akan menambahkan P atau N ke U atau L. Sebagai contoh "UP3" akan merujuk ke lubang 3 daya positif atas (seperti bernomor). Selanjutnya, penambahan surat R, menunjukkan bahwa koneksi harus dilakukan pada membalikkan sisi papan.

  • Jumper

    • Hijau: J25R & J27R, H27R & B27R (solder Isolator sebelum pelompat ini)
    • Merah: H8 & H26
    • Kuning: LP24 & A24, LP19 & J19 (Lakukan pelompat ini terakhir)
    • Putih: D28R & G28R, D30R & G30R, UP30R & I30R, UP1 & J1
    • Hitam: UN6 & J6, LN19 & 19B
  • Resistor

    • R1 (680 Ohms) LP26R & G26R
    • R2 (120 Ohm) H7R & C25R
    • R3 (680 Ohms) B26 & B23
  • Kapasitor (Saya tidak punya uang untuk memesannya jadi tidak punya koordinat yang tepat)

    • C1(50V 39uF) UP # R & UN # R (Salah satu kolom, cukup tempatkan di dekat kolom angka lebih tinggi, lebih dekat ke regulator)
    • C2 (10V 680uF) LP # R & LN # R (Idealnya dalam kolom 20-23)
  • Isolator

    • Menggunakan LTV-826 dual isolator yang disarankan, pasang pin 1 (yang bertitik) E24, dan pin 4 (sisi yang sama dari isolator tetapi 3 pin ke bawah, aktif E27. Pin lainnya disolder di mana mereka mendarat di pcb.
  • Regulator (Semua pin input pada kolom 28, pin output pada kolom 30)

    • Satu regulator pada baris: A, C, E, F, H, J
    • Menggunakan konduktor tanpa isolasi, solder semua sirip atas bersama-sama, mulai dari baris SEBUAH, setelah Anda menghubungkan ke-6 regulator, solder ujung kabel ke UN30
  • MDB Wiring Harness
    • Hijau (MDB Baris 6) = H25
    • Merah (MDB Line 5) = A23
    • Biru (Garis MDB 4) = J24
    • Hitam (Garis MDB 2) = UN29
    • Putih (MDB Baris 1) = I28
  • Pin Header (saat memasukkan DevKitC, orientasikan sehingga pin 5V mendarat I1, dan pin 3v3 mendarat di I19.

    • I1R-I19R, A1R-A19R

Itulah akhir dari langkah ini! Anda sekarang harus memiliki papan pengembangan yang diaktifkan wifi / bluetooth yang dapat diaktifkan, dan berkomunikasi dengan mesin penjual otomatis.

Pemilihan bagian:

Bagian ini ditujukan bagi mereka yang ingin melakukan sesuatu yang sedikit berbeda. Mungkin Anda memiliki Arduino, atau pi raspberry, atau Anda memiliki komponen pengganti untuk setiap bagian yang terdaftar. Apa yang akan saya lakukan adalah memandu Anda melalui bagaimana / mengapa saya memilih setiap bagian / nilai.

Pertama, semuanya membutuhkan sumber daya.

  • Meskipun Anda bisa menyalakan daya perangkat melalui port USB papan pengembangan, itu menimbulkan beberapa masalah. Masalah terakhir adalah alasan saya tidak menggunakan catu daya eksternal seperti Wall Wart.
    1. Anda harus menjaga laptop terhubung ke kabel USB yang relatif pendek & stasioner.
    2. Anda tidak dapat benar-benar mematikan mesin, yang membuat pengujian menjadi lebih sulit.
    3. Setidaknya dalam kasus saya, idenya adalah perangkat nirkabel.
    4. Alternatif yang lebih baik bukanlah seluruh usaha.
  • Saya memilih untuk menggunakan regulator linier karena murah dan cepat. Namun, harus turun 34V ke 5V, menerima hingga 45V, dan mengeluarkan jumlah yang layak saat ini. Ini membatasi opsi sedikit (opsi terbatas membawa saya untuk memutuskan untuk memasukkan perangkat mount permukaan dalam model papan tempat memotong roti), selanjutnya, skenario 34V ke 5V kami untuk MDB, ini berarti kami mendapatkan efisiensi 15%, yang berarti BANYAK pembangkitan panas. Regulator sebenarnya memiliki begitu banyak panas yang dihasilkan, sehingga jumlah arus yang kita dapat keluar darinya sangat dibatasi oleh sifat termal. Yang mengatakan, saya tidak benar-benar membayangkan setiap orang memiliki komputer sampah yang tergeletak di sekitar mereka hanya dapat merobek heat sink yang cukup besar, juga ini hampir tidak cukup pendingin untuk perangkat yang hanya duduk di sana pada dasarnya diam. Daripada beralih ke catu daya eksternal, atau SMPS yang lebih kompleks, saya memutuskan untuk hanya menambahkan lebih banyak Regulator Linier secara paralel, dan merendam perangkat dalam Minyak Mineral.
    • Minyak mineral bersifat nonkonduktif dan dapat digunakan sebagai pendingin. Tidak ada bentuk yang lebih menarik dari ini, jika Anda mencoba menghubungi 3M tentang lini produk Novec mereka (konduktivitas termal yang lebih tinggi, tahan api, dll.), Anda akhirnya akan menemukan ada peraturan dan persyaratan lingkungan yang ketat yang membatasi akses ke produk tersebut. Sedangkan untuk pendinginan, ini bukan pendingin terbaik, tetapi memiliki konduktivitas termal 10x lebih baik daripada udara. Adapun wadah plastik yang menampung cairan, tergantung pada plastik yang terbuat dari, itu mungkin baik sebagai konduktif termal, atau lebih konduktif, jadi singkatnya satu-satunya hambatan untuk pendinginan adalah area permukaan isolator, mentransfer panas ke minyak mineral. Inilah sebabnya mengapa heatsink ditambahkan, terutama mengingat nilai lembar data (yang digunakan untuk memutuskan 6 Regulator = 1 Amp) mengacu pada regulator yang dipasang di permukaan ke PCB 4 layer dengan vias termal dan semacamnya. Kenapa 1 amp? Papan pengembangan harus membutuhkan maksimum 1 Amp di setiap titik waktu, dan jauh lebih sedikit selama sebagian besar operasi. Kemampuan 1 Amp hanya memastikan bahwa daya tidak menjadi penyebab tersembunyi dari perilaku yang tidak menentu di kemudian hari. Terakhir, pada minyak mineral, isolator diorientasikan sehingga konveksi terjadi secara alami, dan sisi-sisi dengan luas permukaan paling banyak adalah tempat semua minyak mengalir.

Selanjutnya, kita membutuhkan prosesor.

  • Saya awalnya menggunakan papan Photon Particle untuk proyek ini, disarankan kepada saya oleh seorang pria yang ingin menggunakan IDE web mereka dengan perangkat yang saya buat, dan pada saat itu saya tidak tahu apa-apa tentang arduino, jadi terkesan ada wifi DAN itu menawarkan 9 bit UART, jadi saya hanya setuju. Jika Anda memiliki alasan untuk melakukannya, Anda dapat menggunakan hampir semua arduino, semuanya sepertinya menawarkan UART 9 bit. Raspberry pi tampaknya tidak, tetapi ada satu atau dua perpustakaan bitbanging untuk itu. Bitbanging, bagi saya, sepertinya banyak bermain-main untuk hasil yang lebih rendah. Seperti yang mungkin telah Anda perhatikan, ESP32 tidak menawarkan 9 bit UART, namun, jika Anda menyelami lebih dalam dokumentasi, Anda mungkin atau mungkin tidak menemukan beberapa cara yang dapat Anda lakukan untuk mengatasinya, seperti memanipulasi bit paritas (mudah saat mengirim, sulit saat menerima). Jika Anda memiliki kabel / adaptor USB ke UART, mungkin atau tidak mungkin untuk menyesuaikannya dengan UART 9 bit. Saya telah mencari melalui semua lembar data dari setiap chip jembatan pada digikey, dan hanya dua chip yang menawarkan 9 bit uart, dan mereka dibuat oleh MaxLinear (bukan FTDI), dan saya tidak dapat menemukan kabel USB / adaptor yang menggunakan chip jembatan mereka di dalamnya, jadi, jika Anda punya adaptor USB ke UART, kemungkinan besar tidak mendukung UART 9 bit. Tapi seperti yang saya katakan, itu tidak berarti itu bisa atau tidak dapat digunakan dengan UART 9 bit, itu hanya lebih banyak pekerjaan dan membaca n hal. Ngomong-ngomong, ketika saya menemukan modul ESP32, saya berniat untuk menggunakannya dalam PCB kustom, dan itu menonjol sebagai perangkat keras yang sangat mampu yang menawarkan wifi dan bluetooth dengan harga yang tak tertandingi (kemudian saya menemukan itu juga hobi yang sangat populer).
  • Mengapa kita tidak menggunakan prosesor laptop saja? Itu hanya bukan pilihan paling sederhana / termudah / tercepat.

Terakhir, isolator

  • Isolator yang dipilih memiliki waktu naik / turun maksimum 18uS dan tipikal

    naik / turun masing-masing 3 & 4 aS. Ini adalah perbedaan 1uS, yang tidak mendistorsi komunikasi data dan jatuh cukup dekat dengan ketepatan waktu 1% yang ditentukan protokol (1uS error dari 104uS). 18uS waktu naik / turun, konsisten / identik (juga di bawah 104uS), hanya mengimbangi / menunda data sebanyak waktu tanpa mendistorsi itu. Rasio transfer saat ini kebetulan berada di puncaknya sekitar 15mA, dan masuk akal untuk berpikir itu akan tetap di atas 100% transfer dalam kebanyakan situasi, jadi untuk prototipe cepat saya memilih yang ini. Juga karena saya mengambilnya kembali ketika saya tidak tahu hal ini sangat berarti.

Pemilihan nilai bagian:

Formula adalah R1 = Vp / 5mA. 5mA adalah arus generik / default dan dapat disesuaikan. Papan Photon Partikel memungkinkan hingga 25mA per pin IO, jadi ini adalah nilai yang baik. Partikel beroperasi pada 3.3V, jadi Vp = 3.3V, oleh karena itu rumusnya adalah R1 = 3.3V / 5mA = 660 Ohm. Menyesuaikan ini untuk nilai resistor standar terdekat, kami mendapatkan 680 Ohm. Periksa ulang saat ini yang menghasilkan nilai resistansi yang lebih tinggi (I = 3.3V / 680Ohms), kami mendapatkan 4.9mA. Pin saat ini cukup tinggi sehingga kisaran nilai dalam akurasi / toleransi resistor tidak perlu diperiksa.

Formula untuk R2 = (Vp - Vf (maks)) / (Jika * RKT (min)). Bagian ke-2 (Jika * RKPT (min)) mewakili arus yang ditransfer, yang harus 15mA atau lebih. Dengan memilih isolator dengan rasio transfer minimum saat ini minimal 100% @ 10mA, kami menemukan bahwa RKT berada pada puncaknya sekitar 15mA. Ini berfungsi, tetapi sama sekali bukan solusi jangka panjang karena toleransi yang dekat, jadi kita harus mencari regulator baru dalam desain yang serius. Memasukkan nilai-nilai regulator ini kita dapatkan R2 = (3.3V - 1.4V) / (15mA * 1), rasio yang saya sebut 1 daripada mencoba mencari tahu apa yang ada di grafik, aman untuk naik ke 20mA, perlu diingat kami membatasi kelebihan arus di sisi lain. Memecahkan persamaan ini kita mendapatkan 127 ohm, yang jika kita membulatkan ke nilai resistor terendah berikutnya, kita mendapatkan 120 ohm. Pengecekan ganda, ini memberi kita minimal 15 miliamp di kedua sisi.

Formula untuk R3 = (5V - Vf) / 10mA. 10mA adalah nilai acak / umum, dan isolator yang digunakan bekerja dengan baik dengan 5mA, untuk menghasilkan 5mA di sisi lain. Kita bisa menggambar hingga 15mA, tetapi hanya akan menggambar 5mA. Untuk melakukan ini, sesederhana memasukkan nilai ke dalam persamaan. (5v - 1.4V) / 0,01A = 720. Namun ini sangat dekat dengan 680 ohm yang digunakan dalam R1, jadi mari kita kurangi jumlah bagian yang unik dan gunakan saja nilai yang sama. Pemeriksaan ganda tentu saja, kami hanya meningkatkan sekitar 0,2 mA jadi semuanya baik-baik saja.

Langkah 4: Dapatkan Kode Awal Dikonfigurasi dan Diunggah

Anda harus menginstal IDE Arduino, Arduino-Core untuk ESP32. Jika membuat perangkat komersial, saya sarankan beralih menggunakan IDE milik Espressif untuk ESP32. Ini akan kurang buggy, berkinerja lebih baik, dan pastikan untuk menawarkan semua fitur yang mungkin. Mereka masih bekerja menyelesaikan pelabuhan ke Arduino.

Sekarang Anda harus memasukkan kode MDB ke perangkat Anda, mengonfigurasinya untuk perangkat Anda, dan mulai menambahkan semua fitur mewah yang telah Anda pikirkan, menautkannya ke kode MDB. Bagi saya, ini berarti mengunduh Manual 313 Halaman MDB v4.2 dan menyalin semua halaman yang relevan ke dalam suatu program (Awalnya saya hanya melakukan ini dengan Alat Pembayaran Cashles tetapi saya sedang berusaha menambahkan sisanya). Alih-alih melakukan semua itu, Anda dapat melihat kode saya. Kode ini telah mengalami banyak perubahan sejak terakhir kali saya menggunakannya, dan saya tidak punya akses 24/7 ke mesin penjual otomatis, jadi mungkin ada beberapa bug untuk dikerjakan. Menyelesaikan perangkat lunak ini adalah prioritas saya berikutnya setelah menerbitkan instruksi ini, sehingga mungkin dapat diatasi pada saat Anda sampai pada titik ini, dan bahkan jika tidak, masih BANYAK lebih baik untuk menyelesaikan beberapa bug daripada menulis semuanya dari menggaruk. Pastikan untuk memeriksa apakah perangkat keras Anda berfungsi, sebelum menganggap kode tidak berfungsi. Sambungkan penganalisis logika ke pin dan bandingkan apa yang diterima perangkat Anda, dengan apa yang dibaca, dan apa yang harus dikirim perangkat Anda, dengan apa yang sebenarnya dikirim. Saya telah menyertakan beberapa gambar untuk membantu memperjelas apa yang harus Anda lihat pada penganalisa logika.

Ketika Anda mulai bekerja dengan kode saya, seharusnya mudah jika Anda mengikutinya dalam manual MDB juga. Jika Anda menggunakannya, pastikan untuk mengirimkan perbaikan / perubahan yang Anda buat. Ini adalah program pertama saya dan masih merupakan satu-satunya program yang pernah saya kerjakan. Juga ini pertama kalinya saya menggunakan github, jadi maaf jika agak tidak teratur. Apakah Anda menggunakan kode saya atau melakukannya sendiri (BANYAK, saya masih harus menyelam ke manual EVA-DTS yang lebih besar untuk menautkan ke kode MDB), ini adalah waktu untuk membuat perangkat Anda berkomunikasi secara cerdas dengan mesin., lalu buat aplikasi Anda dan tautkan ke kode MDB. Aktifkan fungsi utama perangkat Anda. Tambahkan mikrofon, motor, apa pun fitur yang Anda butuhkan dan dapatkan semua yang telah diatur juga. Pastikan fungsionalitas & desain perangkat Anda diselesaikan sebelum melanjutkan karena lebih sulit dan lebih mahal untuk melakukan perubahan pada sirkuit khusus.

Bagi mereka yang menggunakan perangkat keras berbeda yang tidak mendukung 9 bit UART:

Jika Anda memilih untuk menggunakan sesuatu seperti raspberry pi, atau kabel USB ke UART, ini mungkin menarik. MDB membutuhkan 9 bit komunikasi data. Banyak perangkat keras UART yang tidak mendukung ini. ESP32 adalah salah satu dari perangkat tersebut. Tidak didukung bukan berarti tidak mungkin, dan setelah melihat dokumentasi ESP32, saya melihat beberapa cara berbeda untuk mewujudkannya. Jika menggunakan perangkat keras yang berbeda, ini adalah beberapa opsi yang bisa Anda perhatikan.

  • Mengirim Data
    • Secara manual menghitung pengaturan paritas yang diinginkan untuk setiap bit sebelum pengiriman.
    • Memuat secara manual register dengan data, DAN paritasnya (tidak jelas apakah ini dapat dilakukan pada ESP32)
    • Bitbanging (dijamin tetapi intensif sumber daya)
  • Menerima data
    • Menerima Data, dan menggunakan parity error interrupt / flag (jika perangkat keras Anda memilikinya) untuk mengetahui apa bit data ke-9 itu. (Ini akan mengharuskan data dengan paritas buruk tidak hanya dibuang)
    • Membaca secara manual dari register sedikit demi sedikit saat setiap bit masuk. (Lebih padat karya)
    • Bitbanging (dijamin tetapi intensif sumber daya)

Tidak 100% jelas apa yang akan berfungsi hanya dengan melihat Manual Referensi Teknis (setidaknya pada ESP32), karena kami menggunakan paritas dengan cara yang tidak dimaksudkan untuk digunakan, sehingga tidak akan ada dokumentasi tentang cara menggunakannya dengan cara ini. Satu-satunya cara nyata untuk mengetahui apa yang terjadi adalah dengan menguji beberapa kode dan melihat apa yang berhasil. Satu catatan terakhir, adalah ESP32 memiliki register / interupsi "Edge Change", yang memberi kita cara untuk mendeteksi reset Hard / Bus dan memiliki kepatuhan MDB 100%. Hard / Bus reset, adalah ketika bus ditarik aktif sekitar 100mS atau lebih, sesuatu yang bukan bagian dari komunikasi UART, jadi bagus bahwa ESP32 kebetulan memiliki kemampuan ini. Namun, Hard / Bus reset, secara fungsional, tidak perlu didukung karena protokol menetapkan bahwa semua periferal yang tidak menanggapinya, cukup dapatkan perintah reset yang ditujukan (dapat dibaca UART) yang dikirimkan kepada mereka.

Langkah 5: Mulai Prototyping

Mulai sekarang, Anda harus tahu lebih banyak tentang elektronik. Proyek Anda kemungkinan akan menyimpang dari Instructable ini juga pada saat ini, jadi dokumentasi mulai sekarang akan berubah dari memberi tahu Anda bagaimana melakukan sesuatu (itu akan menjadi topik elektronik / SMT yang sama sekali berbeda), untuk menyebutkan hal-hal penting yang saya pelajari sebagai Saya sedang mengerjakan proyek saya sendiri. Semoga ada informasi yang bermanfaat di suatu tempat dalam langkah ini.

Prototyping bagi saya, sedang meneliti semua bagian dan menemukan biaya serendah mungkin, menggantikan bagian-bagian dalam skema yang sebelumnya akan Anda gunakan. Juga banyak trial and error saat Anda belajar tentang merancang dan memasang sirkuit khusus. Anda mencoba meningkatkan pada sudah bekerja desain dengan perubahan untuk menemukan keseimbangan optimal murah dan berkualitas (kemudian pastikan perubahan tidak merusak sistem). Setiap fraksi satu sen bertambah. Pastikan Anda membandingkan harga dari lebih dari satu sumber (Octopart melakukan pekerjaan yang baik dengan ini) dan menyeimbangkan apakah layak memesan dari satu sumber atau beberapa sumber. Saya menyimpan spreadsheet / BOM di kantor terbuka untuk mengatur bagian dan semua harganya. Saya akan menyertakan contoh / template yang dapat Anda gunakan. Dulu saya menyertakan tautan bit.ly ke setiap bagian tempat saya menemukannya pada harga itu, tetapi saya pikir saya berhenti melakukan itu karena menjadi membosankan karena tingkat saya akan menemukan bagian yang lebih baik. EagleCAD Saya percaya sekarang memiliki semacam program BOM juga. Saya yakin spreadsheet sederhana kurang kuat, tetapi pada awalnya tidak terlalu rumit.

Saat desain Anda semakin kecil, detail kecil memiliki dampak yang lebih besar. Ketebalan stensil solder Anda, bentuk / ukuran jejak kaki pasif Anda, tekanan mekanis (itu akan mulai retak keramik dan sambungan solder), dll. Dokumen ini berbicara tentang banyak itu, saya berharap saya tahu tentang hal-hal ini sebelum saya mulai. Saya mencoba menggunakan 0402 sebagai ukuran standar untuk semua pasif saya. Satu hal yang harus Anda ingat adalah perakitan, dapatkah Anda dengan andal merakit bagian-bagian yang berukuran dan yang berdekatan? Atau apakah Anda punya rencana CARA menyolder desain dua sisi?

  • Baca setiap kata di setiap lembar data, saya memiliki IC daya yang tidak berfungsi dengan benar karena saya melewatkan catatan kaki di tabel nilai.

  • Jangan mengambil jalan pintas, mereka tidak ada.

  • Cari fidusia untuk perakitan otomatis.
  • Cari panelisasi jika Anda ingin membuat beberapa salinannya.

Saya merekomendasikan ESP32 karena menawarkan daya yang layak, wifi, bluetooth, dan beberapa hal kecil lainnya semuanya seharga $ 3,75 per modul. Meskipun saya bukan penggemar menggunakan modul, itu perlu untuk proyek-proyek kecil di mana 10 ribu atau lebih dalam biaya lisensi FCC bukan pilihan. Anda dapat meningkatkan sertifikasi FCC dari ESP32 dalam desain Anda sendiri. Jika saya tidak salah, semua elektronik komersial harus disertifikasi oleh FCC, yang akan selalu memakan biaya setidaknya seribu atau dua untuk lulus atau gagal. Jadi pertimbangkan membeli penganalisis spektrum untuk melakukan beberapa pra-pengujian. Jangan membelinya sampai Anda membutuhkannya xD Saya membeli satu dan tidak pernah menggunakannya, hanya buang-buang uang sejauh ini.

Pertimbangkan untuk mengimplementasikan JTAG agar PCB Anda memeriksa sendiri secara digital setelah perakitan. Seperti disebutkan sebelumnya, ESP32 memiliki alat pemrograman sendiri.

Perhatikan kemampuan layanan fabrikasi PCB yang Anda pilih. Jika Anda melihat gambar di langkah ini, Anda akan melihat perbedaan antara OSHPark (layanan hobi umum / massal) dan beberapa perusahaan Cina.

Tarik kaliper atau sesuatu dan pastikan Anda tahu seberapa besar / kecil bagian yang Anda gunakan. Pada model yang diperlihatkan ini (Proto2, PCB pertama saya), saya mendapatkan resistor dan kapasitor, dan berpikir "mereka tampak BANYAK lebih besar di layar" xD

"Aku harap kamu gagal!" - Dave dari EEVBlog di salah satu videonya. Kegagalan, berarti Anda sedang belajar, dan anak laki-laki saya melakukan banyak pembelajaran mahal.

Saya kebetulan memiliki file Eagle untuk board ini (Proto2) masih (diunggah).

Ini OSH Park Order juga.

Langkah 6: Coba Lagi! dan lagi! dan lagi! (Lebih Banyak Prototipe, dan Banyak Belajar)

Anda akan gagal, dan Anda akan mencoba lagi! Dan Anda akan gagal lagi, dan Anda akan mencoba lagi! (File board tersedia di setiap tautan) Bit terakhir adalah yang penting, Anda akan coba lagi! Dengan setiap kesalahan / kegagalan Anda akan belajar sesuatu yang baru.

Prototipe ini (proto 3 dalam dua gambar pertama), saya beralih menggunakan pasif yang lebih mudah diletakan dengan tangan. Ini berjalan dengan baik, namun, saya lalai untuk melihat masalah ukuran potensial lainnya, dan sampai pada kesadaran bahwa saya tidak dapat benar-benar menyerahkan IC Daya, dan itu juga terlalu kecil untuk OSHPark untuk dapat membuat jejak kualitas untuk, dengan topeng solder di antara bantalan. Pada titik ini, bergegas untuk membuat MVP yang berfungsi (saya punya orang yang ingin menggunakannya, jadi ada sedikit tekanan), saya memutuskan untuk menyederhanakan sedikit.

Berikut adalah tautan OSHPark ke papan Proto3.

Proto-4, ditunjukkan pada gambar ke-3-ke-5, saya kembali menggunakan papan pengembangan, untuk menghindari waktu dan masalah yang terkait dengan mencoba memastikan bahwa modul disolder dengan benar, dan menghindari masalah dengan wifi yang saya harapkan. Saya juga beralih ke catu daya yang lebih sederhana / lebih besar. Sayangnya, saya lalai membaca catatan kaki di lembar data catu daya ini (sekarang saya mulai ingin terburu-buru melalui hal-hal) dan akhirnya tidak memberikan tegangan yang tepat 90% dari waktu. Saya percaya saya baru saja memutuskan untuk menyalakannya melalui port usb, dan komunikasi tidak berfungsi baik! Saya tidak begitu ingat penyebab pastinya, tetapi ingat berpikir saya benar-benar melebih-lebihkan isolator optik dan hanya berasumsi masing-masing cukup cepat, namun saya pikir saya mungkin baru saja mencampuradukkan nilai-nilai resistor yang terburu-buru dan kurang tidur. Saat itu, saya hidup dengan kucing, yang saya sangat alergi terhadapnya, saya akan bangun dan membunyikan nyquil (setiap hari) sehingga hari itu dapat ditanggung, dan seekor monster untuk menangkal nyquil itu, kemudian pergi bekerja sehari penuh, kemudian tinggal setelah itu untuk mengerjakan hal-hal ini (atau bekerja dari rumah), lewati tidur, hirup adrenalin agar aku bisa bernafas lebih baik (kucing memberiku asma yang funky setiap hari) dan tetap terjaga juga. Saya membuat banyak pilihan kesehatan yang buruk untuk dilakukan.Jangan lupa tidur, kurang tidur menyebabkan insomnia, yang menyebabkan penurunan produktivitas. Jangan lupa makan, jelas itu menurunkan produktivitas. Jangan lupa untuk memperlambat dan melakukan hal-hal yang benar, tidak ada jalan pintas, atau Anda membuang-buang waktu dan uang Anda (paling baik, Anda belajar apa yang tidak boleh dilakukan).

Berikut adalah tautan OSHPark ke papan Proto4.

Pada titik ini, saya sudah memilikinya dan memutuskan untuk kembali dan fokus pada membuat perangkat seperti seharusnya, lambat dan mantap. Tapi bukan tanpa satu usaha terakhir yang sulit untuk mendapatkan prototipe yang dapat direproduksi yang siap pakai yang bisa saya kirimkan kepada orang yang saya kenal, dan membuatnya bahagia. Memperkenalkan Proto-5, model "terlalu sederhana untuk gagal", pada dasarnya rangkaian yang sama dengan Proto-1, hanya sedikit lebih keren. Menggunakan pin header sehingga saya tidak akan membuang papan foton jika perangkat rusak atau tidak berfungsi, juga agar papan Elektron (sinyal sel) dapat ditukar dengan mudah di sana. Whelp, sedang terburu-buru, lupa koneksi atau dua, entah bagaimana itu tidak berhasil bahkan setelah menjembatani koneksi yang saya lupa buat, tampaknya menjadi masalah catu daya tetapi saya tidak dapat memperbaikinya dengan menyolder lebih banyak kapasitor. Daripada menyelidiki penyebabnya, karena terburu-buru, saya hanya menjatuhkannya dan pindah sekali saja. Melakukan semua tangisanku secara internal, dan terus bergerak maju.

Berikut adalah tautan OSHPark ke papan Proto5.

Langkah 7: Dapatkan Desain Akhir Anda dan Dapatkan Produksi Siap

Saya akhirnya kembali dan melakukan upaya yang layak dalam membuat perangkat menggunakan modul ESP32 Espressif. Papan itu dipanel untuk perakitan lebih cepat (dalam ukuran terbesar yang pas di oven pemanggang roti dan aplikator stensil solder), saya meneliti ulang opsi catu daya dan muncul dengan jawaban yang sama seperti Proto2 & 3, sehingga membuatnya menggunakan IC kecil itu sekarang bahwa saya memiliki mesin pick and speed untuk membantu perakitan (walaupun saya pikir itu tidak perlu lagi). Saya mengganti perakit PCB untuk kemampuan yang lebih tepat dan biaya yang lebih rendah, sesuai dengan perusahaan China (sesuatu yang tidak ingin saya lakukan lagi). Secara umum, saya mendapatkan tindakan saya bersama dan membuat papan yang layak dibuat. Begitu banyak kegagalan dan biaya pada suatu rangkaian yang pada dasarnya adalah dua isolator T-T.

Tautan OSHPark ke Proto6 ada di sini. << Meskipun, saya pikir saya membuat beberapa perubahan (kecil / tidak kritis) setelah mengirimkan file yang tepat ini. Perhatikan tanda-tanda oleh konektor MDB yang menunjukkan jenis konektor yang ada di sana, ini adalah cara mudah untuk menghindari menempatkan konektor di sisi yang salah. Saya tidak dapat melakukan perubahan karena saya tidak memiliki lisensi untuk menggunakan Eagle lagi (juga menganggur dan hal-hal buruk seperti itu), tetapi jika Anda melakukannya, saya sarankan mengganti isolator untuk menggunakan dua isolator TCP817 alih-alih LTV826S. Juga tambahkan JTag saat Anda menggunakannya pada ESP32 (halaman 14, dan temukan tajuk yang cocok dengan yang digunakan pada programmer ESP32 untuk menggunakannya. Jangan ragu untuk meningkatkan ukuran pasif yang digunakan, dan tentu saja tambahkan tambahan perangkat keras yang Anda butuhkan secara pribadi. Jika Anda tidak melakukan perubahan, saya sarankan setidaknya meninjau desain dan memastikan bagian-bagian BOM memang yang sesuai dengan PCB. Desain terakhir ini mengalami banyak perubahan menit terakhir dan Saya dapat memberitahu Anda bahwa, dioda dalam BOM adalah salah satu yang saya putuskan, dan yang saya gunakan sebenarnya ada di sini.

Jika saya belum menyebutkannya, tidak ada permukaan mount konektor Jr Minifit, jadi tepi pemasangan mereka seperti yang saya miliki adalah metode yang paling kompak untuk melakukannya. Ada satu konektor yang memiliki preloaded dengan pin di dalamnya yang dapat disesuaikan sebagai konektor yang dipasang di tepi. Untuk konektor lainnya, Anda harus memasukkan koneksi berkerut, dan ini sekompak yang didapatnya. Jika Anda mencocokkan ketebalan PCB, dan pengukur kawat, Anda harus memasangnya dengan cukup baik seperti itu. Perlu diingat bagaimana konektor ini memengaruhi proses perakitan dalam produksi massal. Saya telah menghubungi Molex tentang hal itu dan mereka mengatakan Anda perlu memesan jutaan unit dan hal-hal seperti itu untuk membuat konektor baru / kustom. Pertimbangkan untuk membuatnya sendiri jika Anda pikir Anda bisa mengetahuinya, dan itu juga masalah bagi Anda (tidak memiliki konektor SMT).

Video yang mereferensikan mesin CNC, berbicara tentang yang saya berencana menabung untuk (pocket nc), bukan Shapeoko 3. Video ini bertahun-tahun yang lalu.

Semoga berhasil dengan proyek penjual otomatis Anda, saya harap ini membantu & Anda berhasil.

Runner Up di menu

Kontes PCB