Форум программистов, компьютерный форум, киберфорум
Наши страницы

Микроконтроллеры

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 92, средняя оценка - 4.83
raxp
10166 / 6552 / 477
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
#1

Raspberry Pi FAQ. Теория и практика - Микроконтроллер

21.09.2013, 15:29. Просмотров 14528. Ответов 40
Метки нет (Все метки)

Название: front_view-300x186.jpg
Просмотров: 2916

Размер: 19.9 Кб

Raspberry Pi - одноплатный мини-компьютер «на ладони» (85x54 мм) на базе процессора ARM 11 (ARM1176JZF-S) c тактовой частотой 700 МГц с потребляемой мощностью от полутора до 3.5 Вт и RAM256/512. Для подключения монитора или телевизора на борту размещены композитный видеовыход и разъём HDMI. Кроме того, заводские OEM ЖК-экраны могут быть подключены через интерфейс DSI. GPU компьютера аппаратно поддерживает OpenGL ES 2.0, OpenVG, MPEG-2, VC-1, кодирование и воспроизведение 1080p30 H.264/MPEG-4. Видеопамять берётся из общего банка в 512 Мб. Выдаваемое разрешение можно варьировать от 640х350 (EGA) до 1920х1200 (WUXGA). На композитном выходе можно генерировать сигналы 576i или 480i в формате PAL или NTCS. Raspberry Pi Model B обладает двумя USB-портами, объединенными хабом. В качестве низкоуровневых интерфейсов доступны:
  • 8 портов ввода-вывода общего назначения
  • UART (Serial)
  • Шина I²C/TWI
  • Шина SPI с селектором между двумя устройствами

Raspberry Pi FAQ. Теория и практика

Пины питания: 3.3 В, 5 В и земля. Колонки или наушники могут быть подключены через стандартное гнездо для 3,5 мм джеков. Также звук может передаваться через интерфейс HDMI. На Raspberry Pi Model B установлен Ethernet-адаптер на 10/100 Мбит с выходом на стандартное гнездо 8P8C (RJ45). Поддержка Wi-Fi может быть добавлена с помощью обычного USB Wi-Fi «свистка».

ЛИТЕРАТУРА и ДОКУМЕНТАЦИЯ

В ЧЕМ ПРОГРАММИРОВАТЬ? КОНТРОЛЬ GPIO

Python
Скачиваем PIP:
sudo curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python

Устанавливаем RPi.GPIO модуль для Python:
sudo pip install rpi.gpio

И управляем GPIO:
Python
1
2
3
4
import RPi.GPIO as GPIO
 GPIO.setup(7, GPIO.OUT)
 GPIO.output(7, True)
 GPIO.output(7,False)

Lazarus
Страница помощи http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi.
Компоненты и библиотеки: http://wiki.freepascal.org/Components_and_Code_examples
Документация: http://wiki.freepascal.org/Lazarus_Documentation
Инсталляция: http://wiki.freepascal.org/Installing_Lazarus

Название: 1.png
Просмотров: 2039

Размер: 5.4 Кб Название: 2.png
Просмотров: 2046

Размер: 9.7 Кб

Пример контроля GPIO:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
unit Unit1;
 
{Demo application for GPIO on Raspberry Pi}
{Inspired by the Python input/output demo application by Gareth Halfacree}
{written for the Raspberry Pi User Guide, ISBN 978-1-118-46446-5}
 
{This application reads the status of a push-button}
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ButtonPanel, Unix, BaseUnix;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    ApplicationProperties1: TApplicationProperties;
    GPIO18CheckBox: TCheckBox;
    LogMemo: TMemo;
    procedure ApplicationProperties1Idle(Sender: TObject; var Done: Boolean);
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
const
  PIN_18: PChar = '18';
  IN_DIRECTION: PChar = 'in';
 
var
  Form1: TForm1;
  gReturnCode: longint; {stores the result of the IO operation}
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.FormActivate(Sender: TObject);
var
  fileDesc: integer;
begin
  { Prepare SoC pin 18 (pin 12 on GPIO port) for access: }
  try
    fileDesc := fpopen('/sys/class/gpio/export', O_WrOnly);
    gReturnCode := fpwrite(fileDesc, PIN_18[0], 2);
    LogMemo.Lines.Add(IntToStr(gReturnCode));
  finally
    gReturnCode := fpclose(fileDesc);
    LogMemo.Lines.Add(IntToStr(gReturnCode));
  end;
  { Set SoC pin 18 as input: }
  try
    fileDesc := fpopen('/sys/class/gpio/gpio18/direction', O_WrOnly);
    gReturnCode := fpwrite(fileDesc, IN_DIRECTION[0], 2);
    LogMemo.Lines.Add(IntToStr(gReturnCode));
  finally
    gReturnCode := fpclose(fileDesc);
    LogMemo.Lines.Add(IntToStr(gReturnCode));
  end;
end;
 
procedure TForm1.ApplicationProperties1Idle(Sender: TObject; var Done: Boolean);
var
  fileDesc: integer;
  buttonStatus: string[1] = '1';
begin
  try
    { Open SoC pin 18 (pin 12 on GPIO port) in read-only mode: }
    fileDesc := fpopen('/sys/class/gpio/gpio18/value', O_RdOnly);
    if fileDesc > 0 then
    begin
      { Read status of this pin (0: button pressed, 1: button released): }
      gReturnCode := fpread(fileDesc, buttonStatus[1], 1);
      LogMemo.Lines.Add(IntToStr(gReturnCode) + ': ' + buttonStatus);
      LogMemo.SelStart := Length(LogMemo.Lines.Text) - 1;
      if buttonStatus = '0' then
        GPIO18CheckBox.Checked := true
      else
        GPIO18CheckBox.Checked := false;
    end;
  finally
    { Close SoC pin 18 (pin 12 on GPIO port) }
    gReturnCode := fpclose(fileDesc);
    LogMemo.Lines.Add(IntToStr(gReturnCode));
    LogMemo.SelStart := Length(LogMemo.Lines.Text) - 1;
  end;
end;
 
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
var
  fileDesc: integer;
begin
  { Free SoC pin 18: }
  try
    fileDesc := fpopen('/sys/class/gpio/unexport', O_WrOnly);
    gReturnCode := fpwrite(fileDesc, PIN_18[0], 2);
    LogMemo.Lines.Add(IntToStr(gReturnCode));
  finally
    gReturnCode := fpclose(fileDesc);
    LogMemo.Lines.Add(IntToStr(gReturnCode));
  end;
end;
 
end.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
unit PiGpio;
{
 BCM2835 GPIO Registry Driver, also can use to manipulate cpu other registry areas
 
 This code is tested only Broadcom bcm2835 cpu, different arm cpus may need different
 gpio driver implementation
 
 2013 Gabor Szollosi
}
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils;
 
const
  REG_GPIO = $20000;//bcm2835 gpio register 0x2000 0000. new fpMap uses page offset, one page is 4096bytes
  // hex 0x1000 so simply calculate 0x2000 0000 / 0x1000  = 0x2000 0
  PAGE_SIZE = 4096;
  BLOCK_SIZE = 4096;
    // The BCM2835 has 54 GPIO pins.
//  BCM2835 data sheet, Page 90 onwards.
//  There are 6 control registers, each control the functions of a block
//  of 10 pins.
 
  CLOCK_BASE = (REG_GPIO + $101);
  GPIO_BASE =  (REG_GPIO + $200);
  GPIO_PWM =   (REG_GPIO + $20C);
 
     INPUT = 0;
     OUTPUT = 1;
     PWM_OUTPUT = 2;
     LOW = False;
     HIGH = True;
     PUD_OFF = 0;
     PUD_DOWN = 1;
     PUD_UP = 2;
 
   // PWM
 
  PWM_CONTROL = 0;
  PWM_STATUS  = 4;
  PWM0_RANGE  = 16;
  PWM0_DATA   = 20;
  PWM1_RANGE  = 32;
  PWM1_DATA   = 36;
 
  PWMCLK_CNTL = 160;
  PWMCLK_DIV  = 164;
 
  PWM1_MS_MODE    = $8000;  // Run in MS mode
  PWM1_USEFIFO    = $2000; // Data from FIFO
  PWM1_REVPOLAR   = $1000;  // Reverse polarity
  PWM1_OFFSTATE   = $0800;  // Ouput Off state
  PWM1_REPEATFF   = $0400;  // Repeat last value if FIFO empty
  PWM1_SERIAL     = $0200;  // Run in serial mode
  PWM1_ENABLE     = $0100;  // Channel Enable
 
  PWM0_MS_MODE    = $0080;  // Run in MS mode
  PWM0_USEFIFO    = $0020;  // Data from FIFO
  PWM0_REVPOLAR   = $0010;  // Reverse polarity
  PWM0_OFFSTATE   = $0008;  // Ouput Off state
  PWM0_REPEATFF   = $0004;  // Repeat last value if FIFO empty
  PWM0_SERIAL     = $0002;  // Run in serial mode
  PWM0_ENABLE     = $0001;  // Channel Enable
 
 
type
 
  { TIoPort }
 
  TIoPort = class // IO bank object
  private         //
 
    //function get_pinDirection(aPin: TGpIoPin): TGpioPinConf;
 
  public
   FGpio: ^LongWord;
   FClk: ^LongWord;
   FPwm: ^LongWord;
   procedure SetPinMode(gpin, mode: byte);
   function GetBit(gpin : byte):boolean;inline; // gets pin bit}
   procedure ClearBit(gpin : byte);inline;// write pin to 0
   procedure SetBit(gpin : byte);inline;// write pin to 1
   procedure SetPullMode(gpin, mode: byte);
   procedure PwmWrite(gpin : byte; value : LongWord);inline;// write pin to pwm value
  end;
 
  { TIoDriver }
 
  TIoDriver = class
  private
 
  public
    destructor Destroy;override;
    function MapIo:boolean;// creates io memory mapping
    procedure UnmapIoRegisrty(FMap: TIoPort);// close io memory mapping
    function CreatePort(PortGpio, PortClk, PortPwm: LongWord):TIoPort; // create new IO port
  end;
 
var
 
    fd: integer;// /dev/mem file handle
procedure delayNanoseconds (howLong : LongWord);
 
 
implementation
 
uses
  baseUnix, Unix;
 
procedure delayNanoseconds (howLong : LongWord);
var
  sleeper, dummy : timespec;
begin
  sleeper.tv_sec  := 0 ;
  sleeper.tv_nsec := howLong ;
  fpnanosleep (@sleeper,@dummy) ;
end;
{ TIoDriver }
//*******************************************************************************
destructor TIoDriver.Destroy;
begin
  inherited Destroy;
end;
//*******************************************************************************
function TIoDriver.MapIo: boolean;
begin
 Result := True;
 fd := fpopen('/dev/mem', O_RdWr or O_Sync); // Open the master /dev/memory device
  if fd < 0 then
  begin
    Result := False; // unsuccessful memory mapping
  end;
 //
end;
//*******************************************************************************
procedure TIoDriver.UnmapIoRegisrty(FMap:TIoPort);
begin
  if FMap.FGpio <> nil then
 begin
   fpMUnmap(FMap.FGpio,PAGE_SIZE);
   FMap.FGpio := Nil;
 end;
 if FMap.FClk <> nil then
 begin
   fpMUnmap(FMap.FClk,PAGE_SIZE);
   FMap.FClk := Nil;
 end;
 if FMap.FPwm <> nil then
 begin
   fpMUnmap(FMap.FPwm ,PAGE_SIZE);
   FMap.FPwm := Nil;
 end;
end;
//*******************************************************************************
function TIoDriver.CreatePort(PortGpio, PortClk, PortPwm: LongWord): TIoPort;
begin
  Result := TIoPort.Create;// new io port, pascal calls new fpMap, where offst is page sized 4096 bytes!!!
  Result.FGpio := FpMmap(Nil, PAGE_SIZE, PROT_READ or PROT_WRITE, MAP_SHARED, fd, PortGpio); // port config gpio memory
  Result.FClk:= FpMmap(Nil, PAGE_SIZE, PROT_READ or PROT_WRITE, MAP_SHARED, fd, PortClk);; // port clk
  Result.FPwm:= FpMmap(Nil, PAGE_SIZE, PROT_READ or PROT_WRITE, MAP_SHARED, fd, PortPwm);; // port pwm
end;
//*******************************************************************************
procedure TIoPort.SetPinMode(gpin, mode: byte);
var
  fSel, shift, alt : byte;
  gpiof, clkf, pwmf : ^LongWord;
begin
  fSel := (gpin div 10)*4 ;  //Select Gpfsel 0 to 5 register
  shift := (gpin mod 10)*3 ;  //0-9 pin shift
  gpiof := Pointer(LongWord(Self.FGpio)+fSel);
  if (mode = INPUT) then
    gpiof^ := gpiof^ and ($FFFFFFFF - (7 shl shift))  //7 shl shift komplemens - Sets bits to zero = input
  else if (mode = OUTPUT) then
  begin
    gpiof^ := gpiof^ and ($FFFFFFFF - (7 shl shift)) or (1 shl shift);
  end
  else if (mode = PWM_OUTPUT) then
  begin
    Case gpin of
      12,13,40,41,45 : alt:= 4 ;
      18,19          : alt:= 2 ;
      else alt:= 0 ;
    end;
    If alt > 0 then
    begin
      gpiof^ := gpiof^ and ($FFFFFFFF - (7 shl shift)) or (alt shl shift);
      clkf := Pointer(LongWord(Self.FClk)+PWMCLK_CNTL);
      clkf^ := $5A000011 or (1 shl 5) ;                  //stop clock
      delayNanoseconds(200);
      clkf := Pointer(LongWord(Self.FClk)+PWMCLK_DIV);
      clkf^ := $5A000000 or (32 shl 12) ;   // set pwm clock div to 32 (19.2/3 = 600KHz)
      clkf := Pointer(LongWord(Self.FClk)+PWMCLK_CNTL);
      clkf^ := $5A000011 ;                               //start clock
      Self.ClearBit(gpin);
      pwmf := Pointer(LongWord(Self.FPwm)+PWM_CONTROL);
      pwmf^ := 0 ;                  // Disable PWM
      delayNanoseconds(200);
      pwmf := Pointer(LongWord(Self.FPwm)+PWM0_RANGE);
      pwmf^ := $400 ;                             //max: 1023
      delayNanoseconds(200);
      pwmf := Pointer(LongWord(Self.FPwm)+PWM1_RANGE);
      pwmf^ := $400 ;                             //max: 1023
      delayNanoseconds(200);
      // Enable PWMs
      pwmf := Pointer(LongWord(Self.FPwm)+PWM0_DATA);
      pwmf^ := 0 ;                                //start value
      pwmf := Pointer(LongWord(Self.FPwm)+PWM1_DATA);
      pwmf^ := 0 ;                                //start value
      pwmf := Pointer(LongWord(Self.FPwm)+PWM_CONTROL);
      pwmf^ := PWM0_ENABLE or PWM1_ENABLE ;
    end;
  end;
end;
//*******************************************************************************
procedure TIoPort.SetBit(gpin : byte);
var
   gpiof : ^LongWord;
begin
  gpiof := Pointer(LongWord(Self.FGpio) + 28 + (gpin shr 5) shl 2);
  gpiof^ := 1 shl gpin;
end;
//*******************************************************************************
procedure TIoPort.ClearBit(gpin : byte);
var
   gpiof : ^LongWord;
begin
  gpiof := Pointer(LongWord(Self.FGpio) + 40 + (gpin shr 5) shl 2);
  gpiof^ := 1 shl gpin;
end;
//*******************************************************************************
function TIoPort.GetBit(gpin : byte):boolean;
var
   gpiof : ^LongWord;
begin
  gpiof := Pointer(LongWord(Self.FGpio) + 52 + (gpin shr 5) shl 2);
  if (gpiof^ and (1 shl gpin)) = 0 then Result := False else Result := True;
end;
//*******************************************************************************
procedure TIoPort.SetPullMode(gpin, mode: byte);
var
   pudf, pudclkf : ^LongWord;
begin
  pudf := Pointer(LongWord(Self.FGpio) + 148 );
  pudf^ := mode;   //mode = 0, 1, 2 :Off, Down, Up
  delayNanoseconds(200);
  pudclkf := Pointer(LongWord(Self.FGpio) + 152 + (gpin shr 5) shl 2);
  pudclkf^ := 1 shl gpin ;
  delayNanoseconds(200);
  pudf^ := 0 ;
  pudclkf^ := 0 ;
end;
//*******************************************************************************
procedure TIoPort.PwmWrite(gpin : byte; value : Longword);
var
   pwmf : ^LongWord;
   port : byte;
begin
  Case gpin of
      12,18,40 : port:= PWM0_DATA ;
      13,19,41,45 : port:= PWM1_DATA ;
      else exit;
  end;
  pwmf := Pointer(LongWord(Self.FPwm) + port);
  pwmf^ := value and $FFFFFBFF; // $400 complemens
end;
//*******************************************************************************
end.

Bash
GPIO контакты Raspberry Pi являются файлами, а значит:
Код
sudo su -
 echo "4" > /sys/class/gpio/export
 echo "4" > /sys/class/gpio/export
 echo "out" > /sys/class/gpio/gpio4/direction
 echo "1" > /sys/class/gpio/gpio4/value
 echo "0" > /sys/class/gpio/gpio4/value
Для чтения входов:
Код
echo "0" > /sys/class/gpio/export
 echo "in" > /sys/class/gpio/gpio0/direction
 cat /sys/class/gpio/gpio0/value

на Си под GCC
...для управления GPIO потребуется библиотека bcm2835-1.17 http://www.open.com.au/mikem/bcm2835/bcm2835-1.17.tar.gz

Контроль над светодиодом:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//GPIO-test.c
// Программа включает на 1 секунду светодиод,
// подключённый к порту Р1_03
// Компиляция командой gcc -o GPIO-test GPIO-test.c -lrt -lbcm2835
 
#include <bcm2835.h>
  
#define PIN RPI_GPIO_P1_03      // Для RPi ревизии v1
//#define PIN RPI_V2_GPIO_P1_03 // Для RPi ревизии v2
 
int main()
{
    if (!bcm2835_init())        // Инициализация GPIO
        return 1;               //Завершение программы, если инициализация не удалась
 
    bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);          //Устанавливаем порт Р1_03 на вывод
    bcm2835_gpio_write(PIN, LOW);                            // Устанавливаем порт в 0, светодиод горит
    bcm2835_delay(1000);                                             // Ждём 1000 милисекунд
    bcm2835_gpio_write(PIN, HIGH);                           // Устанавливаем порт в 1, светодиод не горит
    return 0;                                                // Выход из программы
}

Scratch Design Studio
Scratch (правильно читать - скретч) - среда разработки под расперри от группы Lifelong Kindergarten MIT Media Lab для детей от 8 до 16 лет и предназначена для создания своих собственных интерактивных историй, игр и мультфильмов дома, школе и библиотеке. Скретч помогает детям учиться думать творчески и критически, работать вместе. Продукт и среда открыты и бесплатны.


Руководство для начинающих: 1 | 2
Видеоуроки: http://scratch.mit.edu/help/videos
Официальный сайт проекта: http://scratch.mit.edu
Скачать: Mac OS X | Windows | Debian + Ubuntu



ОБРАЗЫ ОС

ПРОЕКТЫ

ГДЕ ПРИОБРЕСТИ? (Интернет-магазины)

Украина:
Россия:
Еще (есть с бесплатной доставкой в страны СНГ):
6
Миниатюры
Raspberry Pi FAQ. Теория и практика   Raspberry Pi FAQ. Теория и практика   Raspberry Pi FAQ. Теория и практика  

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2013, 15:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Raspberry Pi FAQ. Теория и практика (Микроконтроллер):

Raspberry pi - Микроконтроллер
Прошу помочь разобраться с установкой GSM модуля на Raspberry pi 3. Не могу найти нормальный мануал под конкретный модуль &quot;sim800 gsm gprs...

Hello World на Raspberry Pi - Микроконтроллер
Здраствуйте, уважаемые форумчане. Хочу мигнуть светодиодом на малиновой плате, но не могу найти нужный даташит со схемой выводов. До этого...

SPI raspberry pi - Микроконтроллер
Доброго времени суток. Разбираюсь с spi в raspberry. К сожалению ничего spi`ного под рукой нет. Гоняю в холостую и смотрю...

Стоит ли брать Raspberry Pi ? - Микроконтроллер
В общем решил, собрать/спаять усилок (УЗЧ). Пока не определился с числом каналов 5.1/7.1, но требования конечно не малые ))) И так...

Подключения дисплея к Raspberry - Микроконтроллер
Имеются Raspberry Pi и 50-пиновы дисплей. Какие есть способы соединения этих устройств? Сам дисплей....

Raspberry Pi отсутствие конденсатора C6 - Микроконтроллер
Доброго времени суток. Попалась в руки Raspberry Pi B, недавно заметил отсутствие на ней конденсатора C6 (выдран), вопрос в следующем: как...

40
Ариелька
2 / 2 / 0
Регистрация: 21.04.2013
Сообщений: 71
16.12.2013, 01:08 #16
Вот такая собственно проблема.
Начитавшись постов на Хабре, уж больно захотелось поиграть с такой штукой.
Но такая незадача, я хоть и закончил технический вуз, но увы специальность далекая от железа и потому крайне фигово разбираюсь в электронике, при том до такой степени что я смутно представляю разницу межу вольтом и ампером (ну думаю понятна степень моего нубизма).
Так вот - хочу узнать - подойдет ли такая игрушка для начала, и если да - посоветуйте, пожалуйста, где ее можно приобрести (на офф сайте я так и не нашел о ней ничего), на ебее есть целые наборы за 100 вечнозеленых, с кучей прибамбасов смысла в которых я не понимаю, но блин - любопытно же! хочется все и сразу и в полной комплектации.
ну и сайты посвященные данной тематике выглядят несколько захламленными или наоборот пустующими, что какие либо выводы сделать сложно.
а уж если есть какие либо сайты, с примерами для новичков - было бы просто великолепно!
Спасибо ;-)
0
raxp
10166 / 6552 / 477
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
16.12.2013, 10:38  [ТС] #17
Специально и персонально для вас присовокупил вашу тему к закрепленной, дабы вы не трудились в поисках.
1
Zauzolkov
Программистер
354 / 92 / 0
Регистрация: 01.07.2013
Сообщений: 340
Записей в блоге: 1
12.01.2014, 08:35 #18
Здрасьте
У меня проблемка. Приобрёл RPi. Залил на SD карту Raspbian. Подключаю к телеку, подключаю клаву, включаю питание. Бегут "буковки", и выводится сообщение "due to keyboard entry". Так понимаю не видит клаву. Что можно сделать? Может адаптер не тот, там написано 5.5v, 500mA. Насколько помню должно быть 1A. Может из-за этого?
1
raxp
10166 / 6552 / 477
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
12.01.2014, 12:31  [ТС] #19
...вообще на пределе: по TTX потребление от полутора до 3.5 ватт. Посмотрите просадку напряжения тестером. С другой стороны, в другой USB порт - клавиатуру пробовали перетыкать? Не исключена и кривая сборка распиана.
0
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
12.01.2014, 12:32 #20
Zauzolkov, нет, если работает, то все ок. Клаву пробуйте другую.
Если у вас не http://www.modmag.net/images/newspos...9-logitech.jpg
1
Zauzolkov
Программистер
354 / 92 / 0
Регистрация: 01.07.2013
Сообщений: 340
Записей в блоге: 1
12.01.2014, 12:34 #21
Цитата Сообщение от raxp Посмотреть сообщение
распиан
В смысле Raspbian? Качал Whezzy вроде, с официального сайта.
Пробовал в оба порта втыкать. Не помогает. Клавиатура рабочая, к компу подключал, всё нормально. Сами USB порты на малине вроде нормальные. Если подключить флешку, то лампочка на ней (флешке) загорается.
0
raxp
10166 / 6552 / 477
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
12.01.2014, 12:37  [ТС] #22
...лампочке все равно, она светодиод и подключена к шине питания, либо к порту иницициализации контроллера флешки (по-разному). Другую клавиатуру пробовали, какая у вас модель?
1
Zauzolkov
Программистер
354 / 92 / 0
Регистрация: 01.07.2013
Сообщений: 340
Записей в блоге: 1
12.01.2014, 12:41 #23
Костяныч, нет не такая. Самая обычная старая клава. Другой клавы нет. Покупать не хочется, вдруг проблема не в этом

Добавлено через 3 минуты
Вот инфа с наклейки на клаве:
ВТС
Input: +5V 100mA
Model: 5109C
0
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
12.01.2014, 12:44 #24
Zauzolkov, тогда все нормально. Лично я использую зарядку для телефона. Она выдает 5V - 0,7A и все прекрасно работает и с камерой...
1
Zauzolkov
Программистер
354 / 92 / 0
Регистрация: 01.07.2013
Сообщений: 340
Записей в блоге: 1
12.01.2014, 12:45 #25
Цитата Сообщение от Костяныч Посмотреть сообщение
тогда все нормально
Как же всё может быть нормально?

Добавлено через 15 секунд
Если проблема осталась
0
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
12.01.2014, 12:49 #26
Zauzolkov, я по цифрам имел ввиду сходится все)
А с практической стороны решать надо.
1
Zauzolkov
Программистер
354 / 92 / 0
Регистрация: 01.07.2013
Сообщений: 340
Записей в блоге: 1
12.01.2014, 12:52 #27
Может дров нету?

Добавлено через 2 минуты

Не по теме:

нафиг блин покупал эту желизяку, знал бы что она так фигова не брал бы

0
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
12.01.2014, 13:02 #28
Zauzolkov, за дрова не берусь отвечать, все и так работало
P/s: Ох сколько я раз задавался таким же вопросом про покупки железки. Но мало помалу назодил в интернете решения проблем (а их было много!).
0
raxp
10166 / 6552 / 477
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
12.01.2014, 13:02  [ТС] #29
...почитайте.

Как и ожидалось, Raspberry Pi очень придирчив к питанию. Я пробовал использовать свое китайское зарядное устройство, которое выдает 0.7А. В итоге о подключении периферии пришлось забыть. Забегая вперед хочу сказать, что сейчас малинка у меня работает именно от этого зарядника, позже я объясню как так получилось.
0
Zauzolkov
Программистер
354 / 92 / 0
Регистрация: 01.07.2013
Сообщений: 340
Записей в блоге: 1
12.01.2014, 13:19 #30
Щас изучаю это

Добавлено через 9 минут
А может проблема не в клаве? Выше сообщения о клаве написано:
unable to mount root fs on unknown block
Может это SD карта подводит?
У меня MicroSD карта воткнутая в переходник.
16 Гб, 6 класс
0
12.01.2014, 13:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2014, 13:19
Привет! Вот еще темы с ответами:

Удаленное отключение электроприборов (Raspberry Pi B+) - Микроконтроллер
Помогите решить проблему, нужно написать программу и настроить малину на удаленное отключение электроприборов. на железе стоит RASPBIAN...

Прием данных по UART (Raspberry Pi) - Микроконтроллер
День добрый. Я пишу программу под Raspberry на C++. Мне необходимо принимать данные по UART пакетами, условие конца пакета это...

Проблема Подключения Raspberry К Arduine Через Uart - Atmega AVR микроконтроллер
Всем привет. Возникла задача подключить raspberry к ардуине, для управления нею через serial порт все работает как часы кроме...

Arduino FAQ. Теория и практика - Arduino
Солнечный трекер


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru