1. Trang chủ
  2. » Giáo Dục - Đào Tạo

thiết kế xe tự tránh vật cản trên nền boardraspberry pi

47 728 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 47
Dung lượng 2,33 MB

Nội dung

Bên cạnh đó nhóm thực hiện đề tài còn hướng dẫn giúp người đọc có thể thực hành ngôn ngữ lập trình Python đểkhai thác những tài nguyên sẵn có trên Board Raspberry Pi qua hệ điều hành Ras

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA ĐIỆN – ĐIỆN TỬ

Trang 2

LỜI MỞ ĐẦU

Cùng với sự tiến bộ của khoa học và công nghệ, các thiết bị điện tử đang và sẽtiếp tục được ứng dụng ngày càng rộng rãi và mang lại hiệu quả cao trong hầu hết cáclĩnh vực kinh tế kỹ thuật cũng như đời sống xã hội

Raspberry Pi là cái máy tính giá 35USD kích cỡ như iPhone và chạy HĐHLinux Với mục tiêu chính của chương trình là giảng dạy máy tính cho trẻ em Đượcphát triển bởi Raspberry Pi Foundation – là tổ chức phi lợi nhuận với tiêu chí xây dựng

hệ thống mà nhiều người có thể sử dụng được trong những công việc tùy biến khácnhau Raspberry Pi sản xuất bởi 3 OEM: Sony, Qsida, Egoman Và được phân phốichính bởi Element14, RS Components và Egoman

Nhiệm vụ ban đầu của dự án Raspberry Pi là tạo ra máy tính rẻ tiền có khả nănglập trình cho những sinh viên, nhưng Pi đã được sự quan tầm từ nhiều đối tượng khácnhau Đặc tính của Raspberry Pi xây dựng xoay quanh bộ xử lí SoC BroadcomBCM2835 ( là chip xử lí mobile mạnh mẽ có kích thước nhỏ hay được dùng trong điệnthoại di động ) bao gồm CPU , GPU , bộ xử lí âm thanh /video , và các tính năng khác

… tất cả được tích hợp bên trong chip có điện năng thấp này Raspberry Pi là một thiết

bị đa năng đáng ngạc nhiên với nhiều phần cứng có giá thành rẻ nhưng rất hoàn hảocho những hệ thống điện tử, những dự án DIY, thiết lập hệ thống tính toán rẻ tiền chonhững bài học trải nghiệm lập trình

Quyển đồ án này giúp người đọc nắm bắt được phần cứng của Board Raspberry

Pi, có cái nhìn tổng quan về ngôn ngữ lập trình Python Bên cạnh đó nhóm thực hiện

đề tài còn hướng dẫn giúp người đọc có thể thực hành ngôn ngữ lập trình Python đểkhai thác những tài nguyên sẵn có trên Board Raspberry Pi qua hệ điều hành Raspbian

Quyển đồ án này bao gồm 3 phần:

 Phần I: Giới thiệu

 Phần II: Nội dung

 Phần III: Phụ lục

Trang 3

Mặc dù nhóm thực hiện đề tài đã hoàn thiện được quyển đồ án và mô hình xe tự tránhvật cản, nhưng do còn hạn chế về kiến thức nên chắc chắn còn thiếu sót Nhóm thựchiện đề tài mong nhận nhận được sự đóng góp ý kiến của quý thầy cô cùng các bạnsinh viên.

Nhóm thực hiện đề tài

Trang 3

Trang 4

LỜI CẢM ƠN

Nhóm thực hiện đề tài xin chân thành cảm ơn Thầy Phạm Văn Khoa đã tận

tình hướng dẫn, chỉ bảo, kinh nghiệm quý báu cũng như hỗ trợ phương tiện vật tưtrong suốt quá trình tìm hiểu, nghiên cứu đề tài

Đồng thời cũng chúng em xin cảm ơn các thầy cô trong Khoa Điện - Điện Tử

đã tạo điều kiện, cung cấp cho nhóm những kiến thức cơ bản, cần thiết để chúng em cóđiều kiện và đủ kiến thức để thực hiện quá trình nghiên cứu

Ngoài ra, nhóm cũng đã nhận được sự chỉ bảo của các anh (chị) đi trước Cácanh (chị) cũng đã hướng dẫn và giới thiệu tài liệu tham khảo thêm trong việc thực hiệnnghiên cứu

Trân trọng

Nhóm thực hiện đồ án

Trang 5

CHƯƠNG I: DẪN NHẬP

1.1 ĐẶT VẤN ĐỀ:

Tự tránh vật cản là một khoa học dẫn hướng xe di chuyển trong không gian làmviệc của nó (đất, nước, không khí ) Trong vấn đề tránh vật cản, bài toán được quantâm nhiều nhất là tìm đường về đích mà không chạm vật cản trên đường đi Môitrường làm việc của xe hoàn toàn không được biết trước hoặc chỉ biết được một phần,

xe hoàn toàn phải nhờ vào sự cảm nhận môi trường thông qua cảm biến gắn trên nó để

dò đường và tìm ra hướng đi thích hợp nhất để đi Tuy vậy nó có hạn chế là đòi hỏinhiều lệnh tính toán và bộ nhớ, và đặc biệt tình huống xấu có thể xảy ra nếu bản đồmôi trường làm việc không thích hợp đối với cảm biến gây ra nhiễu cảm biến Trongkhi đó, xe tự dò đường chỉ biết được thông tin xung quanh qua sensor cảm nhận môitrường gắn cùng

Vì thế, xe tự dò đường có thể không hoàn thành việc tới đích (mặc dù thực tế cóđường đi tới đích), khái niệm tối ưu không có ý nghĩa trong bài toán này Tuy nhiên,yêu cầu tính toán, dung lượng nhớ thấp cùng tính linh hoạt cao (như tránh được vậtcản ngay cả khi vật đó di động) khiến vấn đề tự động né tránh và tìm kiếm hướng đithích hợp là cấp thiết hơn bao giờ hết

1.2 LÝ DO CHỌN ĐỀ TÀI

Ngày nay với sự phát triển của Khoa Học Kỹ Thuật các thiết bị ngày càng đượcthu nhỏ về kích thước nhưng vẫn đáp ứng tốt được các yêu cầu cần có Raspberry Pi làmột ví dụ điển hình, với kích thước chỉ bằng một chiếc Iphone nhưng nó có quá nhiềutính năng cực kỳ hấp dẫn hơn thế nữa nó là một chiếc máy tính Raspberry Pi khác vớicác máy tính ở chổ là nó có tích hợp thêm một hệ thống IO giúp cho người sử dụng cóthể thỏa sức sáng tạo và phát triển các ứng dụng trên nền Raspberry Pi này BoardRaspberry Pi có giá thành cực kỳ rẽ ( khoảng 35 USD) với bộ vi xử lý SoC Broadcom

Trang 5

Trang 6

BCM2835 ( là chip xử lí mobile mạnh mẽ có kích thước nhỏ hay được dùng trong điệnthoại di động ) bao gồm CPU, GPU, bộ xử lí âm thanh /video , và các tính năng khác

… tất cả được tích hợp bên trong chip có điện năng thấp này

Với một kích thước cực kỳ nhỏ bé so với các máy tính khác và những tính năngcực kỳ nỗi trội Board Raspberry Pi là lựa chọn hàng đầu để nhóm nghiên cứu và pháttriển đồ án “ THIẾT KẾ XE TỰ TRÁNH VẬT CẢN TRÊN NỀN BOARDRASPBERRY PI”

1.3 ĐỐI TƯỢNG NGHIÊN CỨU

Board Raspberry Pi

1.5 DÀN Ý NGHIÊN CỨU

1.5.1 Board Raspberry Pi

 Tổng quan về Board Raspberry Pi

 Thông số kỹ thuật của Board Raspberry Pi

 So sánh đặc tính của Board Raspberry Pi so với các Board nhúng khác

 Các kết nối của Raspberry Pi

1.5.2 Thiết kế XE TỰ TRÁNH VẬT CẢN TRÊN NỀN BOARD RASPBERRY PI

 Tìm hiểu thiết kế các “xe tự tránh vật cản”

 Giới thiệu các linh kiện được sử dụng

 Phân tích thiết kế cho các Module

Trang 7

 Tổng hợp các Module riêng biệt thành một hệ thống “xe tự tránh vật cản” hoànchỉnh.

 Lập trình ứng dụng cho một số module được thiết kế

1.6 TÌNH HÌNH NGHIÊN CỨU

Vào thời điểm hiện nay các board linux đã trở nên phổ biến và được sản xuấtnhiều hơn Có thể kể đến các board: BeagleBone, Arduino Yún, DigiX, UDOO,pcDuino Sử dụng nhiều loại chip khác nhau và tất nhiên đều có thể chạy được linux

Có những sản phẩm được hậu thuẫn và PR tốt như BeagleBone (của TexasInstruments) với cấu hình mạnh hơn (on-board Flash lưu trữ hệ điều hành, chip ARMCortex-A8) nhưng vẫn chưa có sức lan toả như RPi

Để Rasberry hoạt động được bạn chỉ cần cắm nguồn, bàn phím, màn hình Thực

sự rất đơn giản.Sức mạnh của Linux không đến từ cấu hình mà đến từ phần mềm và cộng đồng của nó.

Để hệ điều hành chạy được trên 1 (hoặc nhiều) nền tảng phần cứng khác nhau,lập trình viên cần phải biên dịch nhân hệ điều hành (kernel) tương thích cho phần cứng

Điều này giúp việc sửa lỗi nhanh hơn, cũng như việc tìm kiếm giải pháp choviệc cài đặt gói của người dùng dễ dàng hơn Người dùng mới dùng Raspian, Pidora;người dùng có kinh nghiệm hơn có thể dùng Arch Linux Họ thực hiện các ý tưởngcủa mình với 1 board mạch giá rẻ, chỉ có 35USD Hàng loạt sản phẩm DIY dùngRaspberry Pi ra đời, và nhờ đó Raspberry lại càng phổ biến hơn

Trang 7

Trang 8

1.7 Ý NGHĨA THỰC TIỄN

Xe tự tránh vật cản là một chiếc xe thông minh Nó sẽ tự phát hiện vật cản và tựđộng né tránh vật cản trước nó và đưa ra hướng đi thích hợp (thông thoáng không cóvật cản) mà không cần một tác động vật lý hay tác động khác nào Giúp xe đi đếnnhững nơi nguy hiểm để thực hiện một tác vụ quan trọng nào đó mà con người khôngthể đi đến đó được nhằm mục đích bảo vệ con người an toàn, nâng cao chất lượng củacông việc

Ngoài ra xe còn có tác dụng phòng tránh những hiểm họa xảy ra trong việcngười điều khiển nhất thời không thể điều khiển xe đến một vị trí an toàn thì hệ thống

sẽ tự động điền khiển xe đến vị trí an toàn đó

Trang 9

CHƯƠNG II: RASPBERRY PI

2.1 Giới thiệu về Board Raspberry Pi:

Raspberry Pi là một chiếc máy tính tí hon giá chỉ từ 35$ chạy hệ điều hànhLinux ra mắt vào tháng 2 năm 2012 Ban đầu Raspberry Pi được phát triển dựa trên ýtưởng tiến sĩ Eben Upton tại đại học Cambridge muốn tạo ra một chiếc máy tính giá rẻ

để học sinh có thể dễ dàng tiếp cận và khám phá thế giới tin học Dự định khiêm tốncủa ông đến cuối đời là có thể bán được tổng cộng 1000 bo mạch cho các trường học.Vậy thì điều gì đã làm nên thành công ngoài sức tưởng tượng của Raspberry Pi khi đãbán được hơn một triệu bo mạch chỉ trong vòng chưa đầy một năm

Raspberry Pi (RPi) là một máy tính siêu nhỏ, chỉ có kích thước như 1 chiếc thẻATM rút tiền Bạn chỉ cần 1 bàn phím, 1 tivi hoặc 1 màn hình có cổng HDMI/DVI, 1nguồn USB 5V và 1 dây micro USB là đã có thể sử dụng RPi như 1 máy tính bìnhthường Với RPi, bạn có thể sử dụng các ứng dụng văn phòng, nghe nhạc, xem phim

độ nét cao (tới 1024p)

Trang 9

Hình 2.1: Board Raspberry Pi

Trang 10

2.2 Cấu hình của Raspberry Pi:

Trái tim của Pi là vi xử lý Broadcom BCM2835 chạy ở tốc độ 700mHz Đây là

vi xử lý SoC (system-on-chip) tức là hầu hết mọi thành phần của hệ thống gồm CPU,GPU cũng như audio, communication chip đều được tích hợp trong một Chip SoCnày nằm ngay bên dưới chip memory Hynix 512 MB màu đen ở giữa board

Tùy theo model mà Raspberry sử dụng chip khác nhau:

Raspberry Pi model B v1: Broadcom BCM2835 với 256MB RAM.

Raspberry Pi model B v2: Broadcom BCM2835 với 512MB RAM.

Raspberry Pi model A: Broadcom BCM2835 với 256MB RAM.

Bởi vì RAM được tích hợp sẵn trong đế chip nên bạn không thể nâng cấp RAMcho Pi CPU BMC2835 sử dụng nhân ARM1176JZFS (ARM11) cho hiệu năng cao vàgiá thành thấp SoC này khác với CPU ở trong PC thông thường ở chỗ nó được chế tạodựa trên kiến trúc tập lệnh (Instruction Set Architect – ISA) là ARM chứ không phảikiến trúc x86 như của Intel ARM có ISA dạng rút gọn RISC và tiêu thụ điện năng rất

thấp nên phù hợp với thiết bị di động.

ARM dẫn đầu trong mảng thiết bị di động Lấy ví dụ như chip ARM trênRaspberry Pi: toàn bộ mạch hoạt động với nguồn 5V, 700mA tức là chỉ tiêu hao 3.5Wmỗi giờ trong khi một laptop cũng ngốn ít nhất vài chục Watt Thiết kế này bảo đảm

Hình 2.1Những thông số sơ lược về Raspberry Pi B v2.

Trang 11

gọn do không cần quạt tản nhiệt và do đó, ARM có mặt trong hầu hết điện thoại diđộng thời nay.

Ngoài ra chip BCM2835 dùng thế hệ ARM11 thuộc phiên bản ARMv6.ARMv6 hoạt động hiệu quả và tiết kiệm năng lượng nhưng mặc định lại không tương

thích phần mềm với thế hệ ARMv7 Tuy nhiên, điều này có thể giải quyết bằng cách

convert phần mềm để đạt sự tương thích Nói như vậy không có nghĩa là lập trình

Raspberry Pi sẽ gặp nhiều khó khăn Ngược lại, cộng đồng Raspberry Pi phát triển rất

nhanh trên thế giới là nguồn tài nguyên còn phong phú hơn nhiều: hàng loạt dự án,phần mềm được phát triển cho Pi sẽ làm bạn hài lòng

Cắm RPi vào cổng USB của máy tính có thể cấp nguồn cho pi hoạt động ở mứcbình thường, không sử dụng các kết nối internet như LAN và wifi

Raspberry là một máy tính, để máy tính này hoạt động bạn cần cài đặt hệ điềuhành Trong thế giới nguồn mở linux, có rất nhiều phiên bản hệ điều hành tùy biến(distro) khác nhau Tùy theo nhu cầu và mục đích, cũng như khả năng học hỏi mà bạn

sẽ sử dụng distro phù hợp với mình

Ứng dụng của Rpi: Có nhiều ứng dụng từ đơn giản đến phức tạp có thể kể đến như:dùng RPI làm trung tâm giải trí đa phương tiện, internet tv, ổ đĩa sao lưu dự phòng trênmạng nội bộ, kết hợp với webcam làm hệ thống phát hiện chuyển động, nhận diệnkhuôn mặt, điều khiển robot, nhận và gửi tin nhắn gsm với usb 3g, điều khiển tắt/mởđèn trong nhà, và còn rất nhiều ứng dụng khác

2.3 Kết nối của Raspberry Pi:

Khe cắm thẻ nhớ: sử dụng loại thẻ SD Card, đây là nơi lưu trữ hệ điều hành vàtất cả các dữ liệu hoạt động của Raspberry Pi Dung lượng của thẻ nhớ phải từ 2GB trởlên để đảm bảo cho hệ thống hoạt động tốt

Micro USB Power: RPi có thể sử dụng đến 700mA tại mức áp 5V khi bạn sửdụng nhiều thiết bị USB và cổng LAN Do đó để RPi hoạt động ổn định, chúng tôi

khuyến cáo bạn sử dụng bộ nguồn USB 5V 1A Ngoài việc cấp nguồn cho Pi thông

qua cổng micro USB, bạn có thể cấp nguồn trực tiếp vào cổng GPIO (5V và Gnd)

Trang 11

Trang 12

Nếu bạn không am hiểu về điện tử thì cách này không được khuyến cáo Điện áp quámức 5V cấp trực tiếp vào GPIO có thể gây hư hỏng các thiết bị cắm vào cổng USB,chip quản lý USB và LAN Tốt nhất nên sử dụng 1 nguồn switching chuyển về 5Vhoặc sử dụng IC LM7805.

TFT Touch Screen: nơi đây sẽ giúp cho bạn có thể kết nối Raspberry Pi vớimàn hình cảm ứng để hiển thị và sử dụng Raspberry một cách trực quan nhất Chúng

ta có thể thực hiện các tác vụ tương đương như khi sử dụng chuột và bàn phím

Camera expansion: khe cắm này là để cắm modem camera vào Raspberry Pi.Khi sản xuất Raspberry Pi thì nhà sản xuất còn sản xuất thêm một modem camera5MP nhưng người mua không được hỗ trợ mà phải mua thêm Chúng ta có thể chụphình, quay phim, làm việc tất cả các tác vụ như trên một camera bình thường

Cổng HDMI: cổng này dùng để kết nối với các thiết bị có hổ trợ chuẩn kết nốiHDMI, nếu thiết bị của chúng ta không hổ trợ HDMI mà chỉ hổ trợ VGA thì chúng taphải sử dụng một dây cáp chuyển đổi từ HDMI sang VGA Thường thì cổng này dùng

để kết nối ra màn hình, tivi, máy chiếu, để hiển thị giao diện của hệ điều hành

Cổng kết nối Ethenet: dùng để kết nối internet, mạng Lan, truy cập SSH,

2 cổng USB: dùng để kết nối với chuột, bàn phím, usb, usb 3g, usb wifi và cácthiết bị có hổ trợ cổng USB

STEREO AUDIO: dùng để kết nối với tai nghe, loa, và các thiết bị ân thanh cócổng Jack 3.5mm

TV: dùng để kết nôi và phát tín hiệu hình ảnh lên Tivi

GPIO:Raspberry Pi cung cấp nhiều cổng GPIO, giao tiếp SPI, I2C, Serial.Cáccổng GPIO được sử dụng để xuất/nhận giá trị 0/1 ra/vào từ bên ngoài Giao tiếpSPI,I2C, Serial có thể được dùng để kết nối trực tiếp với các vi điều khiển khác Đặcbiệt phù hợp cho những ai cần điều khiển các thiết bị điện tử ngoại vi

Trang 13

Hình 2.3:Sơ đồ chân GPIO của Raspberry Pi Model B+

Trang 13

Hình 2.2 Raspberry Pi và các thiết bị kết nối với

nó.

Trang 14

2.4 Giới thiệu hệ điều hành cho Raspberry Pi:

Sau phần giới thiệu Raspberry Pi và cấu tạo của nó, ta sang phần thực hành với Pi.Khác với vi điều khiển có thể chạy ngay sau khi load chương trình điều khiển, Pi cần

có hệ điều hành để hoạt động Đây cũng là ưu điểm của Pi vì nó cho phép người dùngtận dụng rất nhiều phần mềm và thiết bị ngoại vi để lập trình ứng dụng phức tạp mộtcách nhanh chóng

Các hệ điều hành hiện tại mà Raspberry Pi hổ trợ:

- NOOBS (New Out Of Box Software): đây là hệ điều hành cơ bản nhất của

R-Pi, không hổ trợ giao diện mà chỉ dùng giao diện dòng lệnh

- Raspbian: được tạo nên từ hệ điều hành Debian của linux chuyên dùng cho các

dòng máy tính, có giao diện như 1 máy tính, hổ trợ cả về mạng, và giao tiếpvào ra

- Pidora: tạo nên từ phiên bản hệ điều hành Fedora của linux, cũng hổ trợ tốt về

giao diện, mạng và giao tiếp vào ra

- RaspBMC: tạo ra để chuyên dùng giải trí, sử dụng giao diện XBMC media

center, giao diện thường thấy trong các TIVI internet hiện nay

- OpenELEC: một phiên bản dùng giao diện XBMC Mediacenter khác, hổ trợ

nhanh và thân thiện cho người sử dụng

- RISC OS: phiên bản hệ điều hành rút gọn với tính năng hoạt động nhanh nhất

trong các hệ điều hành

- Arch: phiên bản hệ điều hành phát triển riêng cho các dòng kít dùng chip

ARM

Trang 15

Theo đánh giá của Eric S Raymond, Python là ngôn ngữ có hình thức rất sángsủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình Cấu trúc của Python còncho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu, như nhận định củachính Guido van Rossumtrong một bài phỏng vấn ông.

Ban đầu, Python được phát triển để chạy trên nền Unix Nhưng rồi theo thờigian, nó đã “bành trướng” sang mọi hệ điều hành từ MS-DOS đến Mac OS,OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix Mặc dù sự phát triểncủa Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nayvẫn là tác giả chủ yếu của Python Ông giữ vai trò chủ chốt trong việc quyết địnhhướng phát triển của Python

3.2 Đặc điểm của ngôn ngữ lập trình Python:

Python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục trựcquan, dễ hiểu, thể hiện qua các điểm sau:

Trang 16

Như C/C++, các từ khóa của Python đều ở dạng chữ thường.

Khối lệnh:

Trong các ngôn ngữ khác, khối lệnh thường được đánh dấu bằng cặp kí hiệuhoặc từ khóa Ví dụ, trong C/C++, cặp ngoặc nhọn { } được dùng để bao bọc mộtkhối lệnh Python, trái lại, có một cách rất đặc biệt để tạo khối lệnh, đó là thụt cáccâu lệnh trong khối vào sâu hơn (về bên phải) so với các câu lệnh của khối lệnh chachứa nó Ta có thể sử dụng dấu tab hoặc khoảng trống để thụt các câu lệnh vào

Khả năng mở rộng:

Python có thể được mở rộng: nếu ta biết sử dụng C, ta có thể dễ dàngviết và tích hợp vào Python nhiều hàm tùy theo nhu cầu Các hàm này sẽ trở thànhhàm xây dựng sẵn (built-in) của Python Ta cũng có thể mở rộng chức năng củatrình thông dịch, hoặc liên kết các chương trình Python với các thư viện chỉ ở dạngnhị phân (như các thư viện đồ họa do nhà sản xuất thiết bị cung cấp) Hơn thế nữa,

ta cũng có thể liên kết trình thông dịch của Python với các ứng dụng viết từ C và sửdụng nó như là một mở rộng hoặc một ngôn ngữ dòng lệnh phụ trợ cho ứng dụngđó

Trình thông dịch:

Python là một ngôn ngữ lập trình dạng thông dịch, do đó có ưu điểm tiếtkiệm thời gian phát triển ứng dụng vì không cần phải thực hiện biên dịch và liênkết Trình thông dịch có thể được sử dụng để chạy file script, hoặc cũng có thểđược sử dụng theo cách tương tác Ở chế độ tương tác, trình thông dịch Pythontương tự shell của các hệ điều hành họ Unix, tại đó, ta có thể nhập vào từng biểuthức rồi gõ Enter , và kết quả thực thi sẽ được hiển thị ngay lập tức Đặc điểm nàyrất hữu ích cho người mới học, giúp họ nghiên cứu tính năng của ngôn ngữ; hoặc

để các lập trình viên chạy thử mã lệnh trong suốt quá trình phát triển phần mềm.Ngoài ra, cũng có thể tận dụng đặc điểm này để thực hiện các phép tính nhưvới máy tính bỏ túi

Lệnh và cấu trúc điều khiển:

Trang 17

Mỗi câu lệnh trong Python nằm trên một dòng mã nguồn Ta không cầnphải kết thúc câu lệnh bằng bất kì kí tự gì Cũng như các ngôn ngữ khác, Pythoncũng có các cấu trúc điều khiển Chúng bao gồm:

Cấu trúc rẽ nhánh: cấu trúc if (có thể sử dụng thêm elif hoặc else ), dùng để

thực thi có điều kiện một khối mã cụ thể

Cấu trúc lặp, bao gồm: Lệnh while: chạy một khối mã cụ thể cho đến khi điều

kiện lặp có giá trị false Vòng lặp for: lặp qua từng phần tử của một dãy, mỗiphần tử sẽ được đưa vào biến cục bộ để sử dụng với khối mã trong vòng lặp

Lớp, đối tượng: Python cũng có từ khóa class dùng để khai báo lớp (sử dụng

trong lập trình hướng đối tượng) và lệnh def dùng để định nghĩa hàm

Hệ thống kiểu dữ liệu:

Python sử dụng hệ thống kiểu duck typing, còn gọi là latent typing (tựđộng xác định kiểu) Có nghĩa là, Python không kiểm tra các ràng buộc về kiểu dữliệu tại thời điểm dịch, mà là tại thời điểm thực thi Khi thực thi, nếu một thao táctrên một đối tượng bị thất bại, thì có nghĩa là đối tượng đó không sử dụng một kiểuthích hợp Python cũng là một ngôn ngữ định kiểu mạnh Nó cấm mọi thao táckhông hợp lệ, ví dụ cộng một con số vào chuỗi kí tự

Sử dụng Python, ta không cần phải khai báo biến Biến được xem là đãkhai báo nếu nó được gán một giá trị lần đầu tiên Căn cứ vào mỗi lần gán, Python

sẽ tự động xác định kiểu dữ liệu của biến Python có một số kiểu dữ liệu thôngdụng sau:

Int, long: số nguyên (trong phiên bản 3.x long được nhập vào trong kiểu int).

Độ dài của kiểu số nguyên là tùy ý, chỉ bị giới hạn bởi bộ nhớ máy tính

Float: số thực

complex: số phức, chẳng hạn 5+4j

list: dãy trong đó các phần tử của nó có thể được thay đổi, chẳng hạn [8, 2, 'b',

-1.5] Kiểu dãy khác với kiểu mảng (array) thường gặp trong các ngôn ngữ lập

Trang 17

Trang 18

trình ở chỗ các phần tử của dãy không nhất thiết có kiểu giống nhau Ngoài raphần tử của dãy còn có thể là một dãy khác.

tuple: dãy trong đó các phần tử của nó không thể thay đổi.

str: chuỗi kí tự Từng kí tự trong chuỗi không thể thay đổi Chuỗi kí tự được đặt

trong dấu nháy đơn, hoặc nháy kép

dict: từ điển, còn gọi là "hashtable": là một cặp các dữ liệu được gắn theo kiểu

{từ khóa: giá trị}, trong đó các từ khóa trong một từ điển nhất thiết phải khác nhau Chẳng hạn {1: "Python", 2: "Pascal"}

set: một tập không xếp theo thứ tự, ở đó, mỗi phần tử chỉ xuất hiện một lần.

Ngoài ra, Python còn có nhiều kiểu dữ liệu khác

Module:

Python cho phép chia chương trình thành các module để có thể sử dụnglại trong các chương trình khác Nó cũng cung cấp sẵn một tập hợp các moduleschuẩn mà lập trình viên có thể sử dụng lại trong chương trình của họ Cácmodule này cung cấp nhiều chức năng hữu ích, như các hàm truy xuất tập tin,các lời gọi hệ thống, trợ giúp lập trình mạng (socket),…

Đa năng:

Python là một ngôn ngữ lập trình đơn giản nhưng rất hiệu quả

So với Unix shell, Python hỗ trợ các chương trình lớn hơn và cung cấp nhiềucấu trúc hơn

So với C, Python cung cấp nhiều cơ chế kiểm tra lỗi hơn Nó cũng có sẵnnhiều kiểu dữ liệu cấp cao, ví dụ như các mảng (array) linh hoạt và từđiển (dictionary) mà ta sẽ phải mất nhiều thời gian nếu viết bằng C

Python là một ngôn ngữ lập trình cấp cao có thể đáp ứng phần lớn yêu cầu củalập trình viên:

Python thích hợp với các chương trình lớn hơn cả AWK và Perl

Python được sử dụng để lập trình Web Nó có thể được sử dụng nhưmột ngôn ngữ kịch bản

Trang 19

Python được thiết kế để có thể nhúng và phục vụ như một ngôn ngữ kịchbản để tuỳ biến và mở rộng các ứng dụng lớn hơn.

Python được tích hợp sẵn nhiều công cụ và có một thư viện chuẩn phongphú, Python cho phép người dùng dễ dàng tạo ra các dịch vụ Web, sử dụng cácthành phần COM hay CORBA, hỗ trợ các loại định dạng dữliệu Internet như email, HTML, XML và các ngôn ngữ đánh dấu khác.Pythoncũng được cung cấp các thư viện xử lý các giao thức Internet thông dụngnhư HTTP,FTP,…

Python có khả năng giao tiếp đến hầu hết các loại cơ sở dữ liệu, có khảnăng xử lí văn bản, tài liệu hiệu quả, và có thể làm việc tốt với các công nghệWeb khác

Python đặc biệt hiệu quả trong lập trình tính toán khoa học nhờ các công

cụ như Python Imaging Library, pyVTK, MayaVi 3D VisualizationToolkits,Numeric Python,ScientificPython,…

Python có thể được sử dụng để phát triển các ứng dụng Desktop Lậptrình viên có thể dùng wxPython, PyQt, PyGtk để phát triển các ứng dụng giaodiện đồ họa (GUI) chất lượng cao

Python cũng có sẵn một unit testing framework để tạo ra các các bộ test(test suites)

Trang 19

Trang 20

CHƯƠNG IV

CẢM BIẾN SRF05 - L298 - PIN LIPO

I Cảm biến siêu âm:

1 Cảm biến siêu âm SRF05 và đặc điểm kỹ thuật:

a Giới thiệu:

Hình 2.1: Cảm biến siêu âm SRF05

Cảm biến SRF05 là một bước phát triển từ SRF04, được thiết kế để làm tăngtính linh hoạt, tăng phạm vi, ngoài ra còn giảm bớt chi phí SRF05 là hoàn toàn tươngthích với SRF04 Khoảng cách được tăng từ 3 mét đến 4 mét

Trang 21

SRF05 cho phép sử dụng một chân duy nhất cho cả kích hoạt và phản hồi, do

đó tiết kiệm giá trị trên chân điều khiển Khi chân chế độ không kết nối thì SRF05 hoạtđộng riêng biệt chân kích hoạt và chân hồi tiếp như SRF04 SRF05 bao gồm một thờigian trễ trước khi phản hồi để mang lại điều khiển chậm hơn chẳng hạn như bộ điềukhiển thời gian cơ bản Stamps và Picaxe để thực hiện các xung lệnh

Cảm biến siêu âm SFR05 có giá tương đối rẻ và dễ giao tiếp nên nhóm chọn sửdụng cảm biến siêu âm SRF05, SRF05 như đôi mắt của xe robot, giúp thu hồi tín hiệuxem trên đường đi có vật cản hay không để có xe xử lý phù hợp

b Các chế độ của SRF05:

- Chế độ 1: tương ứng SRF04 – tách biệt kích hoạt và phản hồi:

Chế độ này sử dụng riêng biệt chân kích hoạt và chân phản hồi, và là chế độđơn giản nhất để sử dụng Tất cả các chương trình điển hình cho SRF04 sẽ làm việccho SRF05 ở chế độ này Để sử dụng chế độ này, chỉ cần chân chế độ không kết nối –SRF05 có một nội dung trên chân này

Hình 2.2: Giãn đồ định thời SRF05

- Chế độ 2: Dùng một chân cho cả kích hoạt và phản hồi:

Trang 21

Trang 22

Chế độ này sử dụng một chân duy nhất cho cả tín hiệu kích hoạt và phản hồi, vàđược thiết kế để lưu các giả trị trên chân lên bộ điều khiển nhúng Để sử dụng chế độnày chân chế độ kết nối vào chân mass Tín hiệu hồi tiếp sẽ xuất hiện trên cùng mộtchân với tín hiệu kích hoạt SRF05 sẽ không tăng dòng phản hồi cho đến 700uS saukhi kết thúc các tín hiệu kích hoạt.

Hình 2.3: Kết nối chung của cảm biến siêu âm

Để sử dụng chế độ 2 với các Stamps BS2 cơ bản, ta chỉ cần sử dụng PULSOUT

và PULSIN trên cùng 1 chân như sau:

SRF05 PIN 15 sử dụng pin cho cả 2 và kích hoạt echo

Range VAR Word xác định phạm vi biến 16 bit

PULSOUT SRF05, 5 đưa ra kích hoạt pulse 10uS

PULSIN SRF05,11Range echo đo thời gian

Range = Range/29 để chuyển đổi sang cm(chia 74 cho inch)

Trang 23

Giản đồ định thời SRF05 thể hiện ở 2 chế độ trên, chỉ cần cung cấp một đoạnxung ngắn 10uS kích hoạt đầu vào để bắt đầu đo khoảng cách Các SRF05 sẽ cho ramột chu kỳ 8 burst của siêu âm ở 40Khz và tăng cao dòng phản hồi của nó (hoặc kíchhoạt chế độ dòng 2) Sau đó chờ phản hồi, và ngay sau khi phát hiện nó giảm các dòngphản hồi lại Dòng phản hồi là một xung có chiều rộng tỷ lệ với khoảng cách đến đốitượng Bằng cách đo xung ta hoàn toàn có thể tính toán khoảng cách theoinch/centimet.

c Kết nối cảm biến siêu âm với Raspberry

Hình 2.4 Sơ đồ kết nối cảm biến siêu âm với Raspberry

Các giá trị R TR B tuân thủ theo tỷ lệ là 2:3 nên có thể chọnR TR B có giá trị theo

tỷ lệ tương ứng là 330:470 Ω

Cảm biến diêu âm kết nối với Raspberry như sau:

 Chân Vcc kết nối với chân 5V DC của Raspberry ( chân số 2 hoặc 4 đều được)

 Chân phát xung Trig kết nối với chân thứ tự 15 của Raspberry tức là chân GPIO22

 Chân nhận xung Echo kết nối với chân thứ tự 7 của Raspberry tức là chân GPIO 4

 Chân GND kết nối với chân GND của Raspberry (chân 6, 9, 14, 20, 25, 30, 34, 39)

d Giải thuật xử lý và thu nhận khoảng cách trả về

Trang 23

Ngày đăng: 28/08/2017, 18:14

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w