Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.63/91: Рейтинг темы: голосов - 91, средняя оценка - 4.63
raxp
10185 / 6568 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
1

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

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

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

Размер: 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
Просмотров: 2066

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

Размер: 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
Прошу помочь разобраться с установкой GSM модуля на Raspberry pi 3. Не могу...

SPI raspberry pi
Доброго времени суток. Разбираюсь с spi в raspberry. К сожалению ничего...

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

Raspberry Pi и потоковое видео
Подскажите подойдет ли Paspberry Pi второго поколения для обработки потокового...

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

40
animator404
97 / 97 / 12
Регистрация: 05.05.2013
Сообщений: 1,206
04.10.2013, 21:16 2
А на Java можно программировать?
0
raxp
10185 / 6568 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
04.10.2013, 21:19  [ТС] 3
...уже можно.

It’s therefore fantastic to be able to announce that we’ve added the official hard-float Oracle Java 7 JDK to our repository:
sudo apt-get update && sudo apt-get install oracle-java7-jdk
1
animator404
97 / 97 / 12
Регистрация: 05.05.2013
Сообщений: 1,206
04.10.2013, 21:51 4
raxp,
Oracle Java offers significant performance advantages over OpenJDK on ARM platforms, and will expand the range of Java applications that run well on the Pi.
значит и раньше можно было?

Добавлено через 2 минуты
raxp, я имел ввиду не писать код на пи(используя jdk), а кодить(программировать) саму пи.
0
raxp
10185 / 6568 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
04.10.2013, 22:19  [ТС] 5
Нет, раньше нельзя было, новость недельной давности.

не писать код на пи(используя jdk), а кодить(программировать) саму пи.
что значит программировать саму, а ОС зачем? Если вы интерфейсами платы играться хотите, то можно.
0
animator404
97 / 97 / 12
Регистрация: 05.05.2013
Сообщений: 1,206
04.10.2013, 22:23 6
Цитата Сообщение от raxp Посмотреть сообщение
Если вы интерфейсами платы играться хотите, то можно.
можно с ОС?

А если ОС припустим нету, только консоль. То как запустить откомпилированый код джава если jre на ОСи? Или можно указать как параметр путь к jre?
0
animator404
97 / 97 / 12
Регистрация: 05.05.2013
Сообщений: 1,206
05.10.2013, 02:39 7
Вы говорите об этом?
0
Миниатюры
Raspberry Pi FAQ. Теория и практика  
raxp
10185 / 6568 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
05.10.2013, 12:34  [ТС] 8
...консоль, а ОС нету , а откуда по-вашему консоль возьмется, с потолка? Повторяю еще раз, только неделю назад появилась поддержка JAVA-машины. Сама по себе она не работает. Как запустить, без понятия, надо читать HELP.
0
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 539
08.10.2013, 23:07 9
Непонятно почему так дешиво..
Или так - непонятно почему вот это дороже http://kosmodrom.ua/el.php?name=LPC1768DB
0
raxp
10185 / 6568 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
08.10.2013, 23:15  [ТС] 10
Вопросы ценообразования и сторонних контроллеров - не тема данного топика. На то и даны несколько источников по продаже, дабы не было привязки по региону.
0
raxp
10185 / 6568 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
16.11.2013, 23:44  [ТС] 11
Возможно кого-то данная информация заинтересует в свете использования ARM в малинке...

Есть такой .NET Micro Framework, реализация платформы Microsoft .NET для встраиваемого применения в 32- и 64-разрядных микроконтроллерах с архитектурой ARM7, ARM9 и Blackfin. Не требует наличия ОС. Текущая версия 4.3. В качестве среды разработки используется Microsoft Visual Studio на языке C#. Поддерживается единственный язык программирования.
1
rattrapper
foo();
864 / 568 / 221
Регистрация: 03.07.2013
Сообщений: 1,547
Записей в блоге: 2
25.11.2013, 22:00 12
raxp, может у Вас еще имеются статьи про кодинг C# на RPi?
0
rattrapper
foo();
864 / 568 / 221
Регистрация: 03.07.2013
Сообщений: 1,547
Записей в блоге: 2
05.12.2013, 23:26 13
ребят, возможно ли по портам gpio передавать информацию (биты). То-есть я понимаю, что наверняка можно: есть ток - 1, нету - 0, но как это реализовать и согласовать частоту передачи?
0
rattrapper
foo();
864 / 568 / 221
Регистрация: 03.07.2013
Сообщений: 1,547
Записей в блоге: 2
05.12.2013, 23:28 14
Костяныч, сорри за оффтоп, но может ты подскажешь, как реализовать именно подключение raspberry к роутеру? Малинка не видит мой d-link 140
0
raxp
10185 / 6568 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
06.12.2013, 09:50  [ТС] 15
...не вижу препятствий. Реализуется так же, как и любая программная реализация SOFT I2C, UART и пр. в любом МК по обычным I/O. См. закрепленные темы с литературой и примерами реализаций, отличий не будет.

согласовать частоту передачи?
согласовать с чем? Есть протокол обмена, есть формат передачи и длительность одного разряда в кодограмме, есть таймеры. Исходя из этого расчитываются длительности перепадов.
0
Ариелька
2 / 2 / 0
Регистрация: 21.04.2013
Сообщений: 71
16.12.2013, 01:08 16
Вот такая собственно проблема.
Начитавшись постов на Хабре, уж больно захотелось поиграть с такой штукой.
Но такая незадача, я хоть и закончил технический вуз, но увы специальность далекая от железа и потому крайне фигово разбираюсь в электронике, при том до такой степени что я смутно представляю разницу межу вольтом и ампером (ну думаю понятна степень моего нубизма).
Так вот - хочу узнать - подойдет ли такая игрушка для начала, и если да - посоветуйте, пожалуйста, где ее можно приобрести (на офф сайте я так и не нашел о ней ничего), на ебее есть целые наборы за 100 вечнозеленых, с кучей прибамбасов смысла в которых я не понимаю, но блин - любопытно же! хочется все и сразу и в полной комплектации.
ну и сайты посвященные данной тематике выглядят несколько захламленными или наоборот пустующими, что какие либо выводы сделать сложно.
а уж если есть какие либо сайты, с примерами для новичков - было бы просто великолепно!
Спасибо ;-)
0
raxp
10185 / 6568 / 492
Регистрация: 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
10185 / 6568 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
12.01.2014, 12:31  [ТС] 19
...вообще на пределе: по TTX потребление от полутора до 3.5 ватт. Посмотрите просадку напряжения тестером. С другой стороны, в другой USB порт - клавиатуру пробовали перетыкать? Не исключена и кривая сборка распиана.
0
Костяныч
17 / 17 / 4
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
12.01.2014, 12:32 20
Zauzolkov, нет, если работает, то все ок. Клаву пробуйте другую.
Если у вас не http://www.modmag.net/images/newspos...9-logitech.jpg
1
12.01.2014, 12:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2014, 12:32

Raspberry Pi отсутствие конденсатора C6
Доброго времени суток. Попалась в руки Raspberry Pi B, недавно заметил...

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

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


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

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

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