Всем привет. Решил рассказать про "проект выходного дня", который на меня напал после праздников. Сижу я, значит, за рабочим столом, смотрю вокруг на всякие, разбросанные по столу, шилды. И на Raspberry, и думаю: а почему бы их не соединить? Напомню: Нет, конечно, существует масса проектов под это дело, например, вот — люди на кикстартер похожее выкладывают http://blog.amperka.ru/389#more-389...ign=2014-01-17-arduberry&utm_medium=vkontakte (честное слово — я только потом узнал)). В итоге за выходные получилось вот что: Не очень конечно вау-вещь, но иначе за выходные не успеть) Резисторы на пинах 3, 5 — на 10 кОм. Это для I2C, который у Raspberry на этих пинах. Да, надо было сделать их опцианальными, и воткнуть туда джемпер. Но так уж сложилось) У raspberry pi два spi-порта. Первый я вывел на ICSP и пины 10 11 12 13. А на второй посадил аналогово-цифровой преобразователь MCP3008 http://ww1.microchip.com/downloads/en/DeviceDoc/21295d.pdf . Он будет у нас вместо пинов arduino A0-A5. Два оказались лишними. Подумал, что можно будет на них потом температурные датчики повесить — температуру проца малины измерять, и интернет-микрухи. Уж очень они горячие у неё). Без перемычек не обошлось, и без косяков — тоже. Перемычки — это эти вот smd нуль-резисторы (1206, с чёрточкой которые). На Vcc в ICSP вообще дорожку кинуть забыл*. Зато успел за выходные*) (эта фраза далее просто будет помечаться звёздочкой)). Все smd-конденсаторы — на 0,1 мкФ. Электролитические - какие попались. Что-то вроде 4,7 мкФ. Добавил регулятор напряжения http://files.amperka.ru/datasheets/l78xx.pdf . Теперь можно от 9 вольт её питать) Правда нагрузка на него такая, что он превращается в печку*) Ну ничего, тянет потихоньку. Далее. На плате 5 вольт и 3,3 вольта занесены как надо. Но надо помнить следующее — для напряжения 3,3 вольта используется регулятор малины*. И везде пишут, что нагрузка на 3,3-вольтовые пины малины не должна превышать 50 мА. Поэтому лучше всего питать периферию от 5 вольт. И поэтому что-то делать с logic level current. Потому что порты gpio малины имеют логический 3,3 и при этом никак не защищены от 5-вольтовых шилдов. И, в случае чего, малина может умереть*. Я на это пока забил, и не нагружал её особо. Там на питании только АЦП сидит. Хотя, зря я не подал питание на Vref*, так бы с шилдами, которые ref слушают, проще было бы. Или нет? В итоге: контакты паять было неудобно. Пайка получилась некрасивой*) На малине сидит немного громоздко*. Но в итоге получился довольно функциональный переходничёк. Завтра выложу фоточки). С АЦП уже игрался - всё работает. Питоний код тоже завтра, если вам интересно будет и успею. Пока на этом всё, скоро продолжение
Продолжаем. Подумал что "Мальвино" лучше подходит для названия) Итак фотки девайса: Да, пайка так себе) Можно накрыть её красивеньким шилдом, и тогда ничего не видно Здесь просто моторчик и просто датчик освещения - хотелось задействовать и АЦП и крутой шилд одновременно, с минимальным кодом. Код (Text): #!//usr/bin/python import RPi.GPIO as GPIO import spidev import time GPIO.setmode(GPIO.BOARD) GPIO.setup(7, GPIO.OUT) spi = spidev.SpiDev() spi.open(0, 1) count = 0 def readadc(adcnum): # read SPI data from MCP3008 chip, 8 possible adc's (0 thru 7) if adcnum > 7 or adcnum < 0: return -1 r = spi.xfer2([1, 8 + adcnum << 4, 0]) adcout = ((r[1] & 3) << 8) + r[2] return adcout while True: if readadc(0)>500: GPIO.output(7,True) else: GPIO.output(7,False) Код взял у старика Джереми) http://jeremyblythe.blogspot.ru/2012/09/raspberry-pi-hardware-spi-analog-inputs.html Там же расписано, как разрешить работу SPI на Raspberry Pi, и установка библиотек для работы с ним. Если что-то непонятно — объясню) Ну и видео работы: Прикладываю .lay файлик, если кто захочет повторить. Ну или как основу для творчества.