Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Устройства на ARM процессорах

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.04.2015, 20:00   #111
minamonra
Junior Member
 
Регистрация: 15.04.2015
Сообщений: 12
Вес репутации: 0
minamonra is an unknown quantity at this point
По умолчанию Re: Maple Mini

Да, порт появился.
Фото плат на всякий случай:


что-то не очень получились...
==
Следующий вопрос - вот такие OLED 0.96 I2C дисплеи можно подключить?

Последний раз редактировалось minamonra; 20.04.2015 в 20:04.
minamonra вне форума   Ответить с цитированием
Старый 20.04.2015, 23:09   #112
melsem
Moderator
 
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 600
melsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud of
По умолчанию Re: Maple Mini

Почитай здесь есть и примеры с библиотекой.
melsem вне форума   Ответить с цитированием
Старый 22.04.2015, 00:36   #113
minamonra
Junior Member
 
Регистрация: 15.04.2015
Сообщений: 12
Вес репутации: 0
minamonra is an unknown quantity at this point
По умолчанию Re: Maple Mini

Эмм... там не I2C дисплей, у меня вот такой.
А такой по твоей ссылке.
Я у китайцев скачал архив, завтра гляну.

Последний раз редактировалось minamonra; 22.04.2015 в 00:42.
minamonra вне форума   Ответить с цитированием
Старый 04.05.2015, 20:57   #114
minamonra
Junior Member
 
Регистрация: 15.04.2015
Сообщений: 12
Вес репутации: 0
minamonra is an unknown quantity at this point
По умолчанию Re: Maple Mini

Набрёл на новый форум Arduino for STM32.
Есть две библиотеки для Oled тут.
Мне подошла первая, также должна быть установлена Adafruit-GFX-Library.
minamonra вне форума   Ответить с цитированием
Старый 02.10.2015, 13:44   #115
kulverstukas
Junior Member
 
Регистрация: 27.10.2014
Сообщений: 26
Вес репутации: 0
kulverstukas is an unknown quantity at this point
По умолчанию Re: Maple Mini

Пробую сделать обычный скетч и адаптировать СЕБЯ к этой плате... Хотелось бы начать с HC-SR04 дабавил код его без библиотеки но в компиляторе МЭПЛ нет pulseIn чем его можно заменить? и вопрос №2 где достать перечень команд (наподобии справочника ардуино что выложен на каждом ардуино сайте) для этой платы чтобы каждый раз не тыкаться как котенку?

Последний раз редактировалось kulverstukas; 02.10.2015 в 15:42.
kulverstukas вне форума   Ответить с цитированием
Старый 15.10.2015, 21:02   #116
Sasha
Junior Member
 
Регистрация: 15.10.2015
Сообщений: 1
Вес репутации: 0
Sasha is an unknown quantity at this point
По умолчанию Re: Maple Mini

Здравствуйте .

Не работает Adafruit-PCD8544.

PHP код:
C:\Users\user\Documents\Arduino\libraries\Adafruit_PCD8544\Adafruit_PCD8544.cppIn member function 'void Adafruit_PCD8544::begin(uint8_t, uint8_t)':
C:\Users\user\Documents\Arduino\libraries\Adafruit_PCD8544\Adafruit_PCD8544.cpp:187:17errorcannot convert 'volatile uint32* {aka volatile long unsigned int*}' to 'PortReg* {aka volatile unsigned char*}' in assignment
     clkport     
portOutputRegister(digitalPinToPort(_sclk));
                 ^
C:\Users\user\Documents\Arduino\libraries\Adafruit_PCD8544\Adafruit_PCD8544.cpp:189:17errorcannot convert 'volatile uint32* {aka volatile long unsigned int*}' to 'PortReg* {aka volatile unsigned char*}' in assignment
     mosiport    
portOutputRegister(digitalPinToPort(_din));
                 ^
Ошибка компиляции
Хотя Здесь брал и там пишут что работает -http://www.stm32duino.com/viewtopic.php?f=13&t=424&sid=be55e31e8b9 b92c6553ef3f5c326d496&start=10


Компилю демку из библиотеки .

Подскажите, пожалуйста, куда смотреть?


Все переставил на другом компе все хорошо

Последний раз редактировалось Sasha; 15.10.2015 в 23:00. Причина: Заработало
Sasha вне форума   Ответить с цитированием
Старый 18.10.2015, 00:40   #117
Molchyn
Junior Member
 
Регистрация: 16.10.2015
Сообщений: 4
Вес репутации: 0
Molchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond repute
По умолчанию Re: Maple Mini

Цитата:
Сообщение от minamonra Посмотреть сообщение

==
Следующий вопрос - вот такие OLED 0.96 I2C дисплеи можно подключить?
Molchyn вне форума   Ответить с цитированием
Старый 18.10.2015, 01:08   #118
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Maple Mini

Поделитесь библиотекой
Admin вне форума   Ответить с цитированием
Старый 18.10.2015, 04:36   #119
Molchyn
Junior Member
 
Регистрация: 16.10.2015
Сообщений: 4
Вес репутации: 0
Molchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond repute
По умолчанию Re: Maple Mini

Роднная библиотека от Adafruit for STM32
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306_STM32.h>
Залито через Ардуино IDE 1.6.5
Библиотеки лучше брать из установленных через Arduino STM32. Hardware files to support STM32 boards

Последний раз редактировалось Molchyn; 18.10.2015 в 05:02.
Molchyn вне форума   Ответить с цитированием
Старый 18.10.2015, 04:41   #120
Molchyn
Junior Member
 
Регистрация: 16.10.2015
Сообщений: 4
Вес репутации: 0
Molchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond reputeMolchyn has a reputation beyond repute
По умолчанию Re: Maple Mini

Вот пример
PHP код:
/*
STM32 adaption by Matthias Diro, tested with maple mini and heltec OLED 12864 I2c; adress: 0x3C (SPI should work, but I didn't own one)
Things to know:
 This adaption uses hardware I2C (hardwire.h), Port: I2c2. SDA=0, SCL=1 on maple mini
 further details: STM32_README.txt
*/
/*********************************************************************
This is an example for our Monochrome OLEDs based on SSD1306 drivers

  Pick one up today in the adafruit shop!
  ------> http://www.adafruit.com/category/63_98

This example is for a 128x64 size display using I2C to communicate
3 pins are required to interface (2 I2C and one reset)

Adafruit invests time and resources providing this open source code, 
please support Adafruit and open-source hardware by purchasing 
products from Adafruit!

Written by Limor Fried/Ladyada  for Adafruit Industries.  
BSD license, check license.txt for more information
All text above, and the splash screen must be included in any redistribution
*********************************************************************/

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306_STM32.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2


#define LOGO16_GLCD_HEIGHT 16 
#define LOGO16_GLCD_WIDTH  16 
static const unsigned char PROGMEM logo16_glcd_bmp[] =
B00000000B11000000,
  
B00000001B11000000,
  
B00000001B11000000,
  
B00000011B11100000,
  
B11110011B11100000,
  
B11111110B11111000,
  
B01111110B11111111,
  
B00110011B10011111,
  
B00011111B11111100,
  
B00001101B01110000,
  
B00011011B10100000,
  
B00111111B11100000,
  
B00111111B11110000,
  
B01111100B11110000,
  
B01110000B01110000,
  
B00000000B00110000 };

#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

void setup()   {                
  
// initialize pins PC13, as an output.
  
pinMode(PB1OUTPUT); //This set PC13 port, written in the board, in Output
  
Serial.begin(115200); //This initialize serial at 9600 baud

  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  
display.begin(SSD1306_SWITCHCAPVCC0x3C);  // initialize with the I2C addr 0x3D (for the 128x64)
  // init done
  
  // Show image buffer on the display hardware.
  // Since the buffer is intialized with an Adafruit splashscreen
  // internally, this will display the splashscreen.
  
display.display();
  
delay(2000);

  
// Clear the buffer.
  
display.clearDisplay();

  
// draw a single pixel
  
display.drawPixel(1010WHITE);
  
// Show the display buffer on the hardware.
  // NOTE: You _must_ call display after making any drawing commands
  // to make them visible on the display hardware!
  
display.display();
  
delay(2000);
  
display.clearDisplay();

  
// draw many lines
  
testdrawline();
  
display.display();
  
delay(2000);
  
display.clearDisplay();

  
// draw rectangles
  
testdrawrect();
  
display.display();
  
delay(2000);
  
display.clearDisplay();

  
// draw multiple rectangles
  
testfillrect();
  
display.display();
  
delay(2000);
  
display.clearDisplay();

  
// draw mulitple circles
  
testdrawcircle();
  
display.display();
  
delay(2000);
  
display.clearDisplay();

  
// draw a white circle, 10 pixel radius
  
display.fillCircle(display.width()/2display.height()/210WHITE);
  
display.display();
  
delay(2000);
  
display.clearDisplay();

  
testdrawroundrect();
  
delay(2000);
  
display.clearDisplay();

  
testfillroundrect();
  
delay(2000);
  
display.clearDisplay();

  
testdrawtriangle();
  
delay(2000);
  
display.clearDisplay();
   
  
testfilltriangle();
  
delay(2000);
  
display.clearDisplay();

  
// draw the first ~12 characters in the font
  
testdrawchar();
  
display.display();
  
delay(2000);
  
display.clearDisplay();

  
// draw scrolling text
  
testscrolltext();
  
delay(2000);
  
display.clearDisplay();

  
// text display tests
  
display.setTextSize(1);
  
display.setTextColor(WHITE);
  
display.setCursor(0,0);
  
display.println("Hello, world!");
  
display.setTextColor(BLACKWHITE); // 'inverted' text
  
display.println(3.141592);
  
display.setTextSize(2);
  
display.setTextColor(WHITE);
  
display.print("0x"); display.println(0xDEADBEEFHEX);
  
display.display();
  
delay(2000);

  
// miniature bitmap display
  
display.clearDisplay();
  
display.drawBitmap(3016,  logo16_glcd_bmp16161);
  
display.display();

  
// invert the display
  
display.invertDisplay(true);
  
delay(1000); 
  
display.invertDisplay(false);
  
delay(1000); 

  
// draw a bitmap icon and 'animate' movement
  
testdrawbitmap(logo16_glcd_bmpLOGO16_GLCD_HEIGHTLOGO16_GLCD_WIDTH);
}


void loop() {
  
}


void testdrawbitmap(const uint8_t *bitmapuint8_t wuint8_t h) {
  
uint8_t icons[NUMFLAKES][3];
 
  
// initialize
  
for (uint8_t f=0fNUMFLAKESf++) {
    
icons[f][XPOS] = random(display.width());
    
icons[f][YPOS] = 0;
    
icons[f][DELTAY] = random(5) + 1;
    
    
Serial.print("x: ");
    
Serial.print(icons[f][XPOS], DEC);
    
Serial.print(" y: ");
    
Serial.print(icons[f][YPOS], DEC);
    
Serial.print(" dy: ");
    
Serial.println(icons[f][DELTAY], DEC);
  }

  while (
1) {
    
// draw each icon
    
for (uint8_t f=0fNUMFLAKESf++) {
      
display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmpwhWHITE);
    }
    
display.display();
    
delay(200);
    
    
// then erase it + move it
    
for (uint8_t f=0fNUMFLAKESf++) {
      
display.drawBitmap(icons[f][XPOS], icons[f][YPOS],  logo16_glcd_bmpwhBLACK);
      
// move it
      
icons[f][YPOS] += icons[f][DELTAY];
      
// if its gone, reinit
      
if (icons[f][YPOS] > display.height()) {
    
icons[f][XPOS] = random(display.width());
    
icons[f][YPOS] = 0;
    
icons[f][DELTAY] = random(5) + 1;
      }
    }
   }
}


void testdrawchar(void) {
  
display.setTextSize(1);
  
display.setTextColor(WHITE);
  
display.setCursor(0,0);

  for (
uint8_t i=0168i++) {
    if (
== '\n') continue;
    
display.write(i);
    if ((
0) && (21 == 0))
      
display.println();
  }    
  
display.display();
}

void testdrawcircle(void) {
  for (
int16_t i=0i<display.height(); i+=2) {
    
display.drawCircle(display.width()/2display.height()/2iWHITE);
    
display.display();
  }
}

void testfillrect(void) {
  
uint8_t color 1;
  for (
int16_t i=0i<display.height()/2i+=3) {
    
// alternate colors
    
display.fillRect(iidisplay.width()-i*2display.height()-i*2color%2);
    
display.display();
    
color++;
  }
}

void testdrawtriangle(void) {
  for (
int16_t i=0i<min(display.width(),display.height())/2i+=5) {
    
display.drawTriangle(display.width()/2display.height()/2-i,
                     
display.width()/2-idisplay.height()/2+i,
                     
display.width()/2+idisplay.height()/2+iWHITE);
    
display.display();
  }
}

void testfilltriangle(void) {
  
uint8_t color WHITE;
  for (
int16_t i=min(display.width(),display.height())/2i>0i-=5) {
    
display.fillTriangle(display.width()/2display.height()/2-i,
                     
display.width()/2-idisplay.height()/2+i,
                     
display.width()/2+idisplay.height()/2+iWHITE);
    if (
color == WHITEcolor BLACK;
    else 
color WHITE;
    
display.display();
  }
}

void testdrawroundrect(void) {
  for (
int16_t i=0i<display.height()/2-2i+=2) {
    
display.drawRoundRect(iidisplay.width()-2*idisplay.height()-2*idisplay.height()/4WHITE);
    
display.display();
  }
}

void testfillroundrect(void) {
  
uint8_t color WHITE;
  for (
int16_t i=0i<display.height()/2-2i+=2) {
    
display.fillRoundRect(iidisplay.width()-2*idisplay.height()-2*idisplay.height()/4color);
    if (
color == WHITEcolor BLACK;
    else 
color WHITE;
    
display.display();
  }
}
   
void testdrawrect(void) {
  for (
int16_t i=0i<display.height()/2i+=2) {
    
display.drawRect(iidisplay.width()-2*idisplay.height()-2*iWHITE);
    
display.display();
  }
}

void testdrawline() {  
  for (
int16_t i=0i<display.width(); i+=4) {
    
display.drawLine(00idisplay.height()-1WHITE);
    
display.display();
  }
  for (
int16_t i=0i<display.height(); i+=4) {
    
display.drawLine(00display.width()-1iWHITE);
    
display.display();
  }
  
delay(250);
  
  
display.clearDisplay();
  for (
int16_t i=0i<display.width(); i+=4) {
    
display.drawLine(0display.height()-1i0WHITE);
    
display.display();
  }
  for (
int16_t i=display.height()-1i>=0i-=4) {
    
display.drawLine(0display.height()-1display.width()-1iWHITE);
    
display.display();
  }
  
delay(250);
  
  
display.clearDisplay();
  for (
int16_t i=display.width()-1i>=0i-=4) {
    
display.drawLine(display.width()-1display.height()-1i0WHITE);
    
display.display();
  }
  for (
int16_t i=display.height()-1i>=0i-=4) {
    
display.drawLine(display.width()-1display.height()-10iWHITE);
    
display.display();
  }
  
delay(250);

  
display.clearDisplay();
  for (
int16_t i=0i<display.height(); i+=4) {
    
display.drawLine(display.width()-100iWHITE);
    
display.display();
  }
  for (
int16_t i=0i<display.width(); i+=4) {
    
display.drawLine(display.width()-10idisplay.height()-1WHITE); 
    
display.display();
  }
  
delay(250);
}

void testscrolltext(void) {
  
display.setTextSize(2);
  
display.setTextColor(WHITE);
  
display.setCursor(10,0);
  
display.clearDisplay();
  
display.println("scroll");
  
display.display();
 
  
display.startscrollright(0x000x0F);
  
delay(2000);
  
display.stopscroll();
  
delay(1000);
  
display.startscrollleft(0x000x0F);
  
delay(2000);
  
display.stopscroll();
  
delay(1000);    
  
display.startscrolldiagright(0x000x07);
  
delay(2000);
  
display.startscrolldiagleft(0x000x07);
  
delay(2000);
  
display.stopscroll();

Molchyn вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 15 (пользователей: 0 , гостей: 15)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:33. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика