Advertisement
  1. Business
  2. Templates

Mengontrol Motor DC Menggunakan Python Dengan Raspberry Pi

Scroll to top
Read Time: 9 min

() translation by (you can also view the original English article)

Dalam tutorial ini saya akan menunjukkan bagaimana caranya untuk menghubungkan beberapa motor ke Raspberry Pi Anda. Melakukan hal ini akan memungkinkan Raspberry Pi Anda bisa berinteraksi di dunia nyata, sehingga memungkinkan untuk membangun sebuah robot, menyalakan kipas angin di hari yang panas atau bahkan menemani kucing  atau anjing Anda saat Anda jauh.

Objektif

Rencana kita untuk melakukan dengan aman adalah menghubungkan satu atau dua motor ke Raspberry Pi dengan beberapa komponen adalah mungkin. Setelah komponen elektronik yang kita memiliki disatukan pada papan breadboard, saya akan menunjukkan cara untuk mengendalikan mereka dengan mudah menggunakan Python untuk pertama membuat spin bermotor, dan kemudian menambahkan beberapa kontrol untuk mengubah arah motor sehingga kita bisa berjalan berlawanan arah atau mundur.

Panduan ini akan membutuhkan ketelitian mata untuk menangkap beberapa kesalahan, dan sedikit keberanian, terutama jika Anda baru dengan konektor GPIO. Saya ingin menekankan Saya tidak bertanggung jawab atas kerusakan yang disebabkan oleh Raspberry Pi Anda dan / atau komponen .

PENTING: Jangan menghubungkan motor, tidak peduli seberapa kecil langsung ke Raspberry Pi, itu akan membahayakan Raspberry Pi Anda.

Prosesor utama hanya dapat menyediakan daya yang cukup untuk menyalakan LED, sekitar 20mA. Sebuah motor akan akan memakan arus setidaknya 400mA untuk bisa berjalan.

Persyaratan

Untuk bisa membuat motor berjalan, Anda perlu:

  • Sebuah Raspberry Pi dengan kartu SD yang sudah terinstal Raspbian
  • Sebuah Breadboard untuk menghubungkan semuanya
  • Sebuah chip motor driver L293 atau SN755410  (saya akan menggunakan L293D dalam tutorial ini)
  • Kabel jumper untuk menghubungkan semuanya (Male to male dan female to male)
  • Satu atau dua motor DC dengan rate 6V
  • Baterai AA 4x dan dudukannya

Pin GPIO

Jika Anda sebelumnya belum pernah mengamati lebih dekat Raspberry Pi Anda, sekarang mungkin waktu terbaik untuk melihatnya. Ada 26 pin dikelompokkan dalam dua baris dari 13, dan ini secara kolektif disebut General Purpose Input Output header atau disingkat GPIO. Ini adalah campuran dari empat pin daya, lima pin ground dan 17 pin data.


Gambar 1. Layout dari GPIO dengan penomomoran pin. Pin 1 berada di kiri atas berlabel 3V3

Beberapa pin data ini memiliki fungsi tambahan seperti i2c bus, SPI bus dan UART konektor serial, yang semuanya dapat terhubung ke perangkat keras lainnya untuk memungkinkan Raspberry Pi untuk terhubung dengan peralatan seperti Arduino, sebuah Analog ke Digital Converter (ADC ) atau papan tambahan seperti PiGlow atau PiFace.

TIP: Ketika bekerja dengan pin GPIO, selalu lakukan hal ini cabut sementara daya pada Pi, karena kecelakaan dengan menghubungkan (atau korslet) 2 pin bersama-sama dapat menyebabkan kerusakan pada Raspberry Pi.

Perakitan Sirkuit

Menambahkan Daya dan Ground

Ini penting untuk melakukan hal ini sementara daya untuk Raspberry Pi tidak ada, atau terputus, jika Anda ingin menghindari korslet dari konektor apapun karena kesalahan.

Hal pertama yang perlu Anda lakukan adalah menghubungkan kabel daya dan ground. Seperti proyek-proyek elektronik besar, segala sesuatu yang menghubungkan bersama-sama akan memerlukan kesamaan. Hal ini ditunjukkan dengan kabel hitam.


Gambar 2: Menyambungkan kabel daya dan ground

Ground pada Raspberry Pi secara fisik adalah pin 6. Mengacu pada Gambar satu ini bekerja dengan memulai di bagian atas kiri dengan pin 3V3, penghitungan kiri ke kanan sehingga 5V pin 2, GPIO 2 (berlabel 2) adalah pin 3 dan seterusnya.

Membaca nomor pin pada Integrated Circuit (IC) chip ini mudah dilakukan dengan catatan atau dot ke kiri kemudian dimulai dari kiri bawah kita akan menemukan pin 1.

Gambar 3. Pin 1 ada di bagian kiri bawah

Menambahkan Kabel untuk Data

Sekarang tambahkan tiga kabel dari pin GPIO ke L293D.

  • GPIO 25–Pin 22 > L293D–Pin 1
  • GPIO 24–Pin 18 > L293D–Pin 2
  • GPIO 23–Pin 16 > L293D–Pin 7

Gambar 4. Tambahkan tiga kabel GPIO untuk mengendalikan motor

Tambahkan motor:

  • Motor-kabel 1 > L293D-pin 3
  • Motor–kabel 2 > L293D–pin 6
Gambar 5. Terlampir baterai dan motor

Hal ini sangat penting Anda harus memeriksa setiap koneksi sebelum menambahkan baterai. Jangan terlena hanya karena Anda senang bahwa semuanya sudah terpasang, hubungkan kabel baterai untuk memberi daya listrik ke papan breadboard.

Tambahkan Motor Kedua (Opsional)

Salah satu fitur yang besar dari L293D adalah bahwa hal itu dapat menangani dua motor secara independen dan masing-masing motor dapat berjalan pada kecepatan atau arah yang berbeda. Menggunakan IC yang satu ini memungkinkan untuk membuat robot roda dua yang mampu berputar, maju dan mundur dengan mudah.

Menambahkan motor kedua hanya melibatkan tiga kabel tambahan dan motor lainnya.

  • GPIO 11–Pin 23 > L293D–Pin 9
  • GPIO 9–Pin 21 > L293D–Pin 10
  • GPIO 10–Pin 19 > L293D–Pin 15
Sebuah set lengkap sudah siap untuk robotika

Menghidupkan

Hal ini penting untuk memeriksa dan mengecek kabel apapun sebelum menambahkan sumber daya ke proyek Anda beberapa kabel bisa sedikit fiddly dengan mudah untuk kehilangan koneksi dan mengirim 5V ke 3.3V dari Raspberry Pi.

Selalu periksa kabel Anda dan kemudian periksa lagi!

Jika Anda belum membuat kartu SD untuk Pi Anda sebelum, akan lebih baik untuk memahami bagaimana untuk membuatnya dengan membaca tutorial ini terlebih dahulu, Cara Flash Kartu SD untuk Raspberry Pi.

Dengan kartu SD Raspbian yang baru dibuat, masukkan itu pada tempatnya di Raspberry Pi seperti biasa dan nyalakan.

Tambahkan baterai, pastikan bahwa Anda memperhatikan jalur yang benar (strip panjang di sepanjang bagian atas dan bawah, jika Anda memiliki), karena Anda hanya perlu kabel hitam untuk menghubungkan ke ground, dan kabel merah ke positif atau sumber chip saja.

Pekerjaan berikutnya adalah untuk memberitahu Raspberry Pi itu adalah satu motor, atau keduanya, telah terhubung. Untuk melakukan hal ini saya menggunakan bahasa yang disebut Python. Ini sudah terinstall pada Raspbian yang mana adalah bonus. Jika Anda menggunakan Sistem Operasi lain seperti Arch atau PiDora, periksa apakah RPi.GPIO tersedia.

Pengujian

Dalam rangka untuk membuat motor dapat bekerja, klik dua kali LXTerminal pada desktop Anda untuk membuka jendela terminal. Ini adalah di mana Anda akan menulis kode Python menggunakan sebuah program bernama Nano. Nano adalah editor teks, mirip dengan Notepad atau TextEdit tapi untuk command prompt, saya akan mengajarkan Anda beberapa perintah seperti yang kita lakukan bersama jika Anda baru tahu.

Untuk menghidupkan motor selama dua detik gunakan kode berikut:

1
import RPi.GPIO as GPIO
2
from time import sleep
3
4
GPIO.setmode(GPIO.BOARD)
5
6
Motor1A = 16
7
Motor1B = 18
8
Motor1E = 22
9
10
GPIO.setup(Motor1A,GPIO.OUT)
11
GPIO.setup(Motor1B,GPIO.OUT)
12
GPIO.setup(Motor1E,GPIO.OUT)
13
14
print "Turning motor on"
15
GPIO.output(Motor1A,GPIO.HIGH)
16
GPIO.output(Motor1B,GPIO.LOW)
17
GPIO.output(Motor1E,GPIO.HIGH)
18
19
sleep(2)
20
21
print "Stopping motor"
22
GPIO.output(Motor1E,GPIO.LOW)
23
24
GPIO.cleanup()

Dua baris pertama memberitahu Python apa yang dibutuhkan dalam program ini.

Baris pertama akan mengakses modul yang disebut RPi.GPIO. Modul ini menangani semua kerja keras yang terlibat ketika pin GPIO pada posisi on dan off di Raspberry Pi.

Baris kedua memberikan istirahat beberapa waktu dari modul untuk memungkinkan menghentikan script dan memberikan waktu untuk melakukan tindakan tertentu, dalam hal ini membiarkan motor selama beberapa detik.

Fungsi setmode memberitahu RPi.GPIO untuk menggunakan penomoran papan pada Raspberry Pi. Nomor 16, 18 dan 22 akan kita gunakan untuk memberitahu Python, ini adalah pin yang berhubungan dengan motor.

Bila menggunakan L293D Anda dapat memberikan arah, dengan memutar satu sisi untuk mengubah satu arah, yang disebut pin A dan sebaliknya pin B. Untuk mengaktifkan motor gunakan pin yang disebut Enable, berlabel E di Script-tes ini yaitu pin 22. saya akan membahas ini lebih banyak nanti.

Akhirnya, memberitahu Raspberry Pi, ini adalah semua output yang dilakukan dengan GPIO.OUT.

Dengan mengatur script, Raspberry Pi siap untuk menghidupkan motor. Ini akan mengaktifkan beberapa pin, tunggu dua detik kemudian mematikannya lagi, ditampilkan dalam sisa script.

Simpan dan keluar dengan menekan CTRL-X, di bagian bagian bawah pesan meminta Anda untuk mengkonfirmasi perubahan. Tekan Y dan Enter untuk mengkonfirmasi. Sekarang Anda kembali pada prompt perintah untuk menjalankan script dan melihat spin motor untuk hidup.

sudo python motor.py

Jika motor tidak berubah, periksa kabel atau baterai. Debugging dan cari tahu hal apa yang menganggu mengapa sesuatu tidak dapat bekerja, ini merupakan langkah yang berguna dalam mempelajari sesuatu yang baru!

Sekarang Waktunya Mundur

Sangat brilian memiliki spin bermotor, tetapi akan lebih baik untuk membuatnya berjalan mundur, jadi saya akan menunjukkan caranya untuk melakukan itu.

Tidak ada yang perlu dilakukan untuk kabel, ini adalah murni Python sekarang. Hal ini dicapai dengan membuat script baru, panggil motorback.py. Untuk membuat script di Nano, masukkan perintah:

nano motorback.py

Masukkan kode berikut:

1
import RPi.GPIO as GPIO
2
from time import sleep
3
4
GPIO.setmode(GPIO.BOARD)
5
6
Motor1A = 16
7
Motor1B = 18
8
Motor1E = 22
9
10
GPIO.setup(Motor1A,GPIO.OUT)
11
GPIO.setup(Motor1B,GPIO.OUT)
12
GPIO.setup(Motor1E,GPIO.OUT)
13
14
print "Going forwards"
15
GPIO.output(Motor1A,GPIO.HIGH)
16
GPIO.output(Motor1B,GPIO.LOW)
17
GPIO.output(Motor1E,GPIO.HIGH)
18
19
sleep(2)
20
21
print "Going backwards"
22
GPIO.output(Motor1A,GPIO.LOW)
23
GPIO.output(Motor1B,GPIO.HIGH)
24
GPIO.output(Motor1E,GPIO.HIGH)
25
26
sleep(2)
27
28
print "Now stop"
29
GPIO.output(Motor1E,GPIO.LOW)
30
31
GPIO.cleanup()

CTRL-X kemudian Y diikuti dengan Enter untuk menyimpan.

Script ini sangat mirip dengan yang sebelumnya, tetapi jika Anda melihat untuk mundur kami membuat Motor1A low dan Motor1B high.

High dan low adalah pemrograman untuk nama on dan off.

Untuk menghentikan motor Anda harus mematikannya, low, Motor1E.

Enable adalah saklar untuk menghidupkan motor on dan mematikan off, terlepas dari apa A dan B lakukan.

Jika Anda menemukan kebingungan, lihatlah pada Tabel Kebenaran untuk melihat apa yang terjadi.

Tabel kebenaran

Hanya ada dua bagian yang memungkinkan motor berbelok, ketika Enable mulai on atau tinggi, dan baik A atau B harus tinggi, tapi tidak bersamaan.

Untuk dua motor lihat script berikut. Hal yang berbeda adalah beberapa baris untuk mengatur motor kedua.

1
import RPi.GPIO as GPIO
2
from time import sleep
3
4
GPIO.setmode(GPIO.BOARD)
5
6
Motor1A = 16
7
Motor1B = 18
8
Motor1E = 22
9
10
Motor2A = 23
11
Motor2B = 21
12
Motor2E = 19
13
14
GPIO.setup(Motor1A,GPIO.OUT)
15
GPIO.setup(Motor1B,GPIO.OUT)
16
GPIO.setup(Motor1E,GPIO.OUT)
17
18
GPIO.setup(Motor2A,GPIO.OUT)
19
GPIO.setup(Motor2B,GPIO.OUT)
20
GPIO.setup(Motor2E,GPIO.OUT)
21
22
print "Going forwards"
23
GPIO.output(Motor1A,GPIO.HIGH)
24
GPIO.output(Motor1B,GPIO.LOW)
25
GPIO.output(Motor1E,GPIO.HIGH)
26
27
GPIO.output(Motor2A,GPIO.HIGH)
28
GPIO.output(Motor2B,GPIO.LOW)
29
GPIO.output(Motor2E,GPIO.HIGH)
30
31
sleep(2)
32
33
print "Going backwards"
34
GPIO.output(Motor1A,GPIO.LOW)
35
GPIO.output(Motor1B,GPIO.HIGH)
36
GPIO.output(Motor1E,GPIO.HIGH)
37
38
GPIO.output(Motor2A,GPIO.LOW)
39
GPIO.output(Motor2B,GPIO.HIGH)
40
GPIO.output(Motor2E,GPIO.HIGH)
41
42
sleep(2)
43
44
print "Now stop"
45
GPIO.output(Motor1E,GPIO.LOW)
46
GPIO.output(Motor2E,GPIO.LOW)
47
48
GPIO.cleanup()

Kesimpulan

Dalam tutorial ini saya telah menunjukkan Anda dasar-dasar bagaimana menghubungkan motor dan Raspberry Pi Anda. Ini mungkin mengambil napas dalam-dalam dan anda dapat melakukan untuk menghubungkan apa saja ke Pi baru Anda, tetapi Anda akan segera menyadari bahwa setelah mulai bermain dengan pin GPIO Anda akan sulit untuk berhenti.

Tutorial ini membuka pintu untuk membuat sesuatu seperti robot dengan lampu LED berkedip dan sensor ultrasonik untuk merasakan sekitarnya.

Cari sasis yang bisa memuat semuanya saat menggunakan USB ponsel baterai charger untuk membuat Anda Raspberry Pi sepenuhnya mobile atau lebih praktis.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Business tutorials. Never miss out on learning about the next big thing.
Advertisement
One subscription. Unlimited Downloads.
Get unlimited downloads