(四)GPIO驅動小車

2021-10-07 11:45:41 字數 1649 閱讀 5870

## (四)gpio驅動小車

gpio,上圖

樹莓派實物四個usb口對著自己的時候,40個引腳就是如圖的順序

![在這裡插入描述](

gpio有兩套編碼。

我用的是bcm編碼

python**寫法:

四個引腳自己選吧,我選的是最下面幾個。

```python

import rpi.gpio as gpio

gpio.setmode(gpio.bcm)

in1 = 26

in2 = 19

in3 = 13

in4 = 21

```這四個引腳都是可以設定為輸出的引腳

```python

def init():

gpio.setwarnings(false)

gpio.setup(in1, gpio.out)

gpio.setup(in2, gpio.out)

gpio.setup(in3, gpio.out)

gpio.setup(in4, gpio.out)

```這樣就設定成了輸出引腳

```python

def stop():

gpio.output(in1, gpio.low)

gpio.output(in2, gpio.low)

gpio.output(in3, gpio.low)

gpio.output(in4, gpio.low)

```這樣設定成了四個低電平,high代替low是高電平。

所有的小車控制都是由高低電平控制的。

這四個gpio引腳的訊號對應的是l298n的四個預留的線。in1對應in1接線就好了。

我的前進是這樣控制的

```python

def up():

gpio.output(in1, gpio.high)

gpio.output(in2, gpio.low)

gpio.output(in3, gpio.high)

gpio.output(in4, gpio.low)

```兩高兩低。

同樣你可以寫出後退。

左右轉彎是利用左右的差速來完成。

```python

def turn_right():

gpio.output(in1, gpio.low)

gpio.output(in2, gpio.high)

gpio.output(in3, gpio.high)

gpio.output(in4, gpio.low)

```我是選擇兩側反向來完成轉向。(我發現一側不轉的時候真的費地板,蹭來蹭去的)

總結:一高一低就轉。

我的電機最高速度都沒多快,我就不要求調速了。

**注意!**

還有乙個叫做地線,樹莓派要與l298n共地。由於我的l298n在兩層之間,不好接線,我選擇放在了電池盒負極上。

(一)我買了什麼配件

(二)最簡單的組裝

(三)樹莓派系統配置

(四)gpio驅動小車

(五)android安卓控制

GPIO驅動框架

一 前言 作為乙個工作多年的系統工程師,免不了做兩件事情 培訓新員工和給新員工分配任務。對於那些剛剛從學校出來的學生,一般在開始的時候總是分配一些非常簡單的任務,例如gpio driver led driver。往往cpu datasheet的關於gpio或者io ports的章節都是比較簡單的,非...

用DMA直接驅動GPIO,實現GPIO最高輸出速率

先上圖 stm32f303晶元,72m的主頻 可以看到gpio的達到了14.4m的翻轉速率,再來上 rcc ahbperiphclockcmd rcc ahbperiph gpioc,enable gpioc moder 0x55555555 gpioc ospeedr 0xfffffff gpio...

用DMA直接驅動GPIO,實現GPIO最高輸出速率

用dma直接驅動gpio,實現gpio最高輸出速率 先上圖 stm32f303晶元,72m的主頻 可以看到gpio的達到了14.4m的翻轉速率,再來上 rcc ahbperiphclockcmd rcc ahbperiph gpioc,enable gpioc moder 0x55555555 gp...