2022年5月3日火曜日

Raspberry Pi Pico プログラミング事始め。UART編 出力PINを変える。

 UART0は色々なPINから出力できるようだ。

今回は16,17ピンからFT232Cに出力させたい。

こんな感じでできました。

GPIOの番号で出力ピンを設定するのね。。。


/**
 * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include <stdio.h>
#include "pico/stdlib.h"

int main() {
    stdio_init_all();
    int i;
    i=0;

    const uint LED_PIN = PICO_DEFAULT_LED_PIN;
    gpio_init(LED_PIN);
    gpio_set_dir(LED_PIN, GPIO_OUT);
    uart_init(uart0, 115200);
    gpio_set_function(12, GPIO_FUNC_UART);
    gpio_set_function(13, GPIO_FUNC_UART);
    uart_set_translate_crlf(uart0, true);

    while (true) {
        //printf("%d",i);
       
        sleep_ms(1000);
        if(i==0) {
            uart_puts(uart0, "Hello world!\n");
            gpio_put(LED_PIN, 1);
            i=i+1;
        }
        else {
            i=0;
            uart_puts(uart0, "GPIO Change!\n");
            gpio_put(LED_PIN, 0);
        }
       
    }
    return 0;
}


2022年4月30日土曜日

Raspberry Pi Pico HWについて

 USBケーブルの抜き差しが面倒臭い。

リセットボタンを追加してリセットしながらBOOTボタンを押して、リセットを話してからBOOTボタンを離せば。

USBケーブルを抜き差ししないでも、書き込めれるらしい。



2022年4月29日金曜日

RPI Pico テストプログラムを作る。

 無事ビルドできたので、サンプルプログラムを実行してみた。

こちらも開発環境を参考したページから

https://shinog.jp/computer/raspberry-pi/pico-windowsvisual-studio-code%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e8%a8%ad%e5%ae%9ac-c%e8%a8%80%e8%aa%9e%e3%81%9d%e3%81%ae%ef%bc%92/

同じように実施。

Makefileを作らないとならないのね~

めんどうくせ~

ベースのMakefileを一括でファイル名を置換して使い回すんだね。。。

あと良くわからないけど、pico_sdk_import.cmakeもサンプルからとってきて使い回すとの事、

なんだかな~

これだと、人気でないな~ と思いながらも、できた。

Picoに書き込むときに一悩み。。。

Picoのプッシュボタンを押しながらUSBを刺すと。

エクスプローラーで見えた。

そしたら事項ファイル XXX.uf2 ファイルをドラッグアンドドロップで書き込み終了!


Raspi pico 事始め Windows10で環境立ち上げ。

 色々マイコンを見ていたら、昨今の半導体不足でなかなか安い良いマイコンが無い。

ふと、見るとRPI picoが600円で在庫も結構ある。

この先の供給もよさそうなので、こちらをメインのマイコンにしようと環境立ち上げを始めた。

基本的にはWindows環境でプログラミングをする。

基本的にはこのページ通りに立ち上げた。

https://shinog.jp/computer/raspberry-pi/pico-windowsvisual-studio-code%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9Ac-c%E8%A8%80%E8%AA%9E%E3%81%9D%E3%81%AE%EF%BC%91/

その通りに実施したが、しっかりハマった。

Visual Studio codeを普通に今までのPython開発環境のショートカットから立ち上げたら、うまくBuildできない。

picoの開発環境を入れた所にできるショートカットから立ち上げないとエラーになる。

数時間悩みました。。。



2022年3月4日金曜日

Raspberry PI 4 Wifi つながりが弱い

 私の家の環境だと、2階から1階にあるアクセスポイントに接続するのが、必須です。

しかし、ラズパイだとアンテナが弱くほとんど1位の強さしかない。。。

ググってみると、
① ラズパイを優先でAPの中継器に繋げて、無線は中継器次第。

② USBドングルの外付けWifiを使用。

うーん なんか変なんだよな。

こういうアンテナパターンらしいが、コンデンサをカットして外付けアンテナに接続すれば強くなるのかしら? 電波法違反なので、やっちゃいけないですが、、、




2021年9月5日日曜日

Python 書評 Pythonではじめるプログラミング

 改めてPythonを学びなおすために、リファレンスとなる本が欲しくなった。

このコロナのご時世で大きな書店に行って探すのも、正直怖い。

図書館ですぐ借りれそうな本を片っ端から借りてみた。

1冊め


Pythonではじめるプログランミング

何故か画像が回転。

インプレス社 が出版 2000円との事。

高いな~

内容:

結構良い。

斜め読みで半分位呼んだが、結構そんな事を知りたいんだよね。という内容がありました。

CSVファイルを読み込む時のSplit の使い方など。

何故かUNIXで使うことを前提にしているので、超初心者はこの本買っても駄目でしょうね。

書いている内容は良いので、初心者に売れないのが残念ですね。

でも、Pythonの概要を掴みたい、おっさんエンジニアには良いと思います。

私は買うかもしれません。




2021年9月4日土曜日

学び直しのPython 1日目 UARTでArudinoと通信

 今日からPythonの学び直しをすることにしました。

成果:

1)UARTでArduino(Teensy3.6だけど、、)とUARTで通信できるようになりました。

①WindowsからArduinoのLEDをON/OFF

<Windows>

import serial
import time
 
ser = serial.Serial('com3', baudrate=115200, parity=serial.PARITY_NONE)

for i in range(10):
        ser.write(b'a')
        print("LED ON")
        time.sleep(0.5)
        ser.write(b'0')
        print("LED OFF")
        time.sleep(0.5)

ser.close()
print("bbb")

<Arduino>

byte val=0;

#define LED_PIN 13

void setup() { 

   pinMode(LED_PIN, OUTPUT); 

   Serial.begin(115200);

}

void loop() {

   if(Serial.available() > 0){ 

      val = Serial.read();

   }

   if(val == 'a') digitalWrite(LED_PIN, HIGH);

   else if(val == '0') digitalWrite(LED_PIN, LOW);

}

// https://shizenkarasuzon.hatenablog.com/entry/2019/03/04/004048

// TeensyのLEDが a で点灯 0 で消灯 プログラム

②ArduinoからWindowsへデータ送信

<Windows>

import serial
ser = serial.Serial('COM3', 115200)
while True:
    String_data = ser.readline()
    print(String_data.strip().decode('utf-8'))
ser.close()

<Arduino>

void setup(){

  Serial.begin(115200);

  pinMode(13, OUTPUT);

}

void loop(){

  Serial.println("LED ON");

  digitalWrite(13, HIGH);

  delay(500);

  Serial.println("LED OFF");

  digitalWrite(13, LOW);

  delay(500); 

}

③その他Topics

3-1 PythonでStripを身に着けた。

これは使える。

data1 = "123.4 5423.2 162.10 1.0 0.9 20.3 0.01"
split_data = data1.split(" ")
print (split_data)
data1="123.0,456.5,0.8,1.0,9"
split_data = data1.split(",")
print (split_data[0])
add_0 = float(split_data[0]) + float(split_data[1])
print (add_0) 

3-2 Arduionのコメントは// Cと一緒