پرش به محتویات

هت رزبری ®ProMake

معرفی

هت رزبری راهکاری منطعف برای استفاده از رنج وسیعی از ماژولهای ®Promake برای پلتفرم رزبری می باشد.

قابلیت ها

  • Easy Mounted Promake Modules , No need to Soldering.
  • compatible with all of Standard Arduino Boards
  • Supports two individual ProMake Modules
  • Each Slot Supports SPI,Serial,I2C and Analog Interfaces
  • Buzzer
  • Push button
  • Optional onboard ADC Chip
  • Two RGB Leds
  • QWIIC & Grove Expansion Connectors

مشخصات فنی

  • Board Dimensions : 64cm*54cm
  • POWER Options :
  • On board USB Type-C Connector
  • 5V Power From Arduino Board
  • 3.3V OnBoard LDO With Maximum Current of 600mA

منابع

شماتیک برد

نرم افزار

رزبری

کلید فشاری، بازر، دیود IR و LED

برای نمونه زیر باری استفاده از کلید فشاری و دیود IR و LED و بازر روی برد نوشته شده است.

import RPi.GPIO as GPIO 
from time import sleep 


GPIO.setwarnings(False)

#sets gpio to numerical pin assignments... 1-40 
GPIO.setmode(GPIO.BCM)
#sets pins as outputs

GPIO.setmode(GPIO.BCM) 
GPIO.setup(12, GPIO.OUT) # buzzer
GPIO.setup(17, GPIO.OUT) # LED
GPIO.setup(22, GPIO.IN) # key
GPIO.setup(23, GPIO.IN) # IR

GPIO.setup(12,GPIO.OUT)
f1 = 5000
p = GPIO.PWM(12,f1)


while True:

    GPIO.output(17, 1)


    if GPIO.input(22) == 0:
        GPIO.output(17, 0)
        p.start(10)
        sleep(0.01)
        p.start(0)

    if GPIO.input(23) == 0:
        #p = GPIO.PWM(12,2000)
        #f2 = 4000
        GPIO.output(17, 0)
        p.start(10)
        sleep(0.1)
        p.start(0)

 ```

 ### RGB LED
روی برد HAT رزبری پرومیک دو عدد RGB LED وجود دارد از سری WS2812 که می توان با ترکیب رنگها پروژه های بسیار جالب طراحی نمود و یا بطور مثال انواع وضعیت برد و ماژولهای متصل را با رنگهای متنوع مشخص نمود. برای اجرای این برنامه لازم  است که ماژول صدای خروجی برد رزبری در ابتدا غیر فعال شود که در ادامه توضیح داده می شود.

1- غیر فعال کردن پخش صدا در فایل کانفیگ

sudo nano /etc/modprobe.d/snd-blacklist.conf

 خط زیر اضافه شود.

 ```
 blacklist snd_bcm2835

سپس با زدن کلید های CTRL + O and CTRL + X ویرایشگر را ذخیره و ببندید. 2- ویرایش فایل کانفیگ

sudo nano /boot/config.txt

بخش زیر را بیابید:

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

و با قرار دادن # کامنت و غیر فعال نمائید.

#dtparam=audio=on

سپس رزبری را ریست نمائید.

sudo reboot

حال می توان برنامه را اجرا کرد. از آنجائیکه این برنامه به دسترسی ادمین برای در اختیار گیری بخش PWM صدا را نیاز دارد بصورت زیر و با فرض مسیر زیر (در برنامه خودتان تغییر دهید اجرا نمائید. )

sudo nano examples/RGB_LED.py

```

#!/usr/bin/env python3

import time from rpi_ws281x import PixelStrip, Color import argparse

LED strip configuration:

LED_COUNT = 2 # Number of LED pixels. LED_PIN = 18 # GPIO pin connected to the pixels (18 uses PWM!).

LED_PIN = 10 # GPIO pin connected to the pixels (10 uses SPI /dev/spidev0.0).

LED_FREQ_HZ = 800000 # LED signal frequency in hertz (usually 800khz) LED_DMA = 10 # DMA channel to use for generating signal (try 10) LED_BRIGHTNESS = 255 # Set to 0 for darkest and 255 for brightest LED_INVERT = False # True to invert the signal (when using NPN transistor level shift) LED_CHANNEL = 0 # set to '1' for GPIOs 13, 19, 41, 45 or 53

Define functions which animate LEDs in various ways.

def colorWipe(strip, color, wait_ms=50): """Wipe color across display a pixel at a time.""" for i in range(strip.numPixels()): strip.setPixelColor(i, color) strip.show() time.sleep(wait_ms / 1000.0)

def theaterChase(strip, color, wait_ms=50, iterations=10): """Movie theater light style chaser animation.""" for j in range(iterations): for q in range(3): for i in range(0, strip.numPixels(), 3): strip.setPixelColor(i + q, color) strip.show() time.sleep(wait_ms / 1000.0) for i in range(0, strip.numPixels(), 3): strip.setPixelColor(i + q, 0)

def wheel(pos): """Generate rainbow colors across 0-255 positions.""" if pos < 85: return Color(pos * 3, 255 - pos * 3, 0) elif pos < 170: pos -= 85 return Color(255 - pos * 3, 0, pos * 3) else: pos -= 170 return Color(0, pos * 3, 255 - pos * 3)

def rainbow(strip, wait_ms=20, iterations=1): """Draw rainbow that fades across all pixels at once.""" for j in range(256 * iterations): for i in range(strip.numPixels()): strip.setPixelColor(i, wheel((i + j) & 255)) strip.show() time.sleep(wait_ms / 1000.0)

def rainbowCycle(strip, wait_ms=20, iterations=5): """Draw rainbow that uniformly distributes itself across all pixels.""" for j in range(256 * iterations): for i in range(strip.numPixels()): strip.setPixelColor(i, wheel( (int(i * 256 / strip.numPixels()) + j) & 255)) strip.show() time.sleep(wait_ms / 1000.0)

def theaterChaseRainbow(strip, wait_ms=50): """Rainbow movie theater light style chaser animation.""" for j in range(256): for q in range(3): for i in range(0, strip.numPixels(), 3): strip.setPixelColor(i + q, wheel((i + j) % 255)) strip.show() time.sleep(wait_ms / 1000.0) for i in range(0, strip.numPixels(), 3): strip.setPixelColor(i + q, 0)

Main program logic follows:

if name == 'main': # Process arguments parser = argparse.ArgumentParser() parser.add_argument('-c', '--clear', action='store_true', help='clear the display on exit') args = parser.parse_args()

# Create NeoPixel object with appropriate configuration.
strip = PixelStrip(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)
# Intialize the library (must be called once before other functions).
strip.begin()

print('Press Ctrl-C to quit.')
if not args.clear:
    print('Use "-c" argument to clear LEDs on exit')

try:

    while True:
        print('Color wipe animations.')
        colorWipe(strip, Color(255, 0, 0))  # Red wipe
        colorWipe(strip, Color(0, 255, 0))  # Green wipe
        colorWipe(strip, Color(0, 0, 255))  # Blue wipe
        print('Theater chase animations.')
        theaterChase(strip, Color(127, 127, 127))  # White theater chase
        theaterChase(strip, Color(127, 0, 0))  # Red theater chase
        theaterChase(strip, Color(0, 0, 127))  # Blue theater chase
        print('Rainbow animations.')
        rainbow(strip)
        rainbowCycle(strip)
        theaterChaseRainbow(strip)

except KeyboardInterrupt:
    if args.clear:
        colorWipe(strip, Color(0, 0, 0), 10)

```